企业面试题库_数据库部分
生活随笔
收集整理的這篇文章主要介紹了
企业面试题库_数据库部分
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
| 使用存儲(chǔ)過(guò)程進(jìn)行分頁(yè),頁(yè)面使用javascript分頁(yè) | Java或Dotnet題 | |
| 如有城市表和蔬菜表,用SQL語(yǔ)句查詢城市表,刪除編號(hào)為2號(hào)的蔬菜,?為蔬菜表的蔬菜名稱字段中添加土豆 | 題不全,無(wú)法做 | |
| sql查詢:查詢出一個(gè)表中四川省和湖南省所有姓李的人的姓名 | select * from table where Province in('sichuan','hunan') and name like ('li%') | 子查詢 |
| 左聯(lián)接在什么時(shí)候應(yīng)用 | 需要顯示左表中所有數(shù)據(jù),右表中對(duì)應(yīng)數(shù)據(jù). | 查詢語(yǔ)句 |
| sql查詢:找出張三的同鄉(xiāng) | select * from people where hometown=(select hometown from people where name='張三') | 子查詢 |
| 查詢學(xué)員表中英語(yǔ)一門成績(jī)最高的人 | select * from students where score in ( ?????????????????????? select max(score)? from students where object='英語(yǔ)' )? and? object='英語(yǔ)' | 子查詢 |
| 查詢學(xué)員表中有兩門以上不及格的人 | select *? from students?? where score in ( ?????????????????????? select max(score)? from students where object='英語(yǔ)')? and? object='英語(yǔ)' | 子查詢 |
| 查詢出各年級(jí)中男女的人數(shù) | select? classid,sex,count(*) 人數(shù) from? table? group by classid,sex? | 分組查詢 |
| 寫一條SQL語(yǔ)句 篩選出不重復(fù)的數(shù)據(jù)? | select * from table where id in(select id? from table group by id? having count(id)=1) | 分組子查詢 |
| 取oracle數(shù)據(jù)庫(kù)TEST表(name,age(出生日期))中年齡大于10周歲的 姓名? | select name from test where? months_between(sysdate,age)>10*12 | 數(shù)據(jù)庫(kù)常用函數(shù) |
| 寫一個(gè)得到查詢orcle數(shù)據(jù)庫(kù)里面的記錄的方法? | Java或Dotnet題 | |
| 寫一個(gè)存儲(chǔ)過(guò)程或觸發(fā)器? | oracle存儲(chǔ)過(guò)程CREATE OR REPLACE PROCEDURE query_employee (eno NUMBer,name OUT VARCHAR2,salary? OUT NUMBER) IS BEGIN ?select ename,sal into name,salary FROM emp WHERE empno=eno; EXCEPTION ?WHEN NO_DATA_FOUND THEN ? RAISE_APPLICATION_ERROR(-20000,'雇員不存在'); END; oracle觸發(fā)器: create or replace trigger tr_sec_emp ? after insert or update or delete on emp? declare ?v_count number; begin ?select count(*) into v_count from emp where sal=0; ?dbms_output.put_line(v_count); end tr_sec_emp; | 存儲(chǔ)過(guò)程觸發(fā)器 |
| 什么是數(shù)據(jù)庫(kù)的內(nèi)連接,有幾種形式 | 內(nèi)連接:若連接的結(jié)果集中只保留了符合連接條件的元組,而排除了兩個(gè)表中沒(méi)有對(duì)應(yīng)的或匹配的元組情況,這種連接稱為內(nèi)連接。 兩種形式:一個(gè)表做內(nèi)連接;兩個(gè)表做內(nèi)連接. | 表連接查詢 |
| 編寫SQL語(yǔ)句,刪除一個(gè)表中的重復(fù)記錄,假如表中有一個(gè)name字段,name重復(fù)即為重復(fù)記錄 | delete from table where name in( ??????????????? select name? from table? group by name? having count(name)>1) | 分組子查詢 |
| delete from tableA與truncate table tableA的區(qū)別 | 1.delete是數(shù)據(jù)操作語(yǔ)言,操作會(huì)寫入日志,在未提交之前可以回滾;truncate是數(shù)據(jù)定義語(yǔ)言,不寫入日志,不可回滾 2.truncate執(zhí)行效率比delete高 3.delete可以根據(jù)條件刪除數(shù)據(jù);truncate會(huì)刪除表中所有的記錄 | 數(shù)據(jù)庫(kù)基礎(chǔ) |
| 查詢出Test表中重復(fù)三次以上的記錄 | 1.創(chuàng)建表:create table test (id int,col1 varchar(3),col2 varchar(3)) 2.假設(shè)所有字段都重復(fù),包括3次select * from test where id in (select id from test? group by id,col1,col2 having count(*)>=3) | 分組子查詢 |
| 查詢出user表中用戶名和密碼相同的記錄,并查詢出重復(fù)出現(xiàn)的次數(shù)。User(UserName,password,description) | select userName,password,count(*) from test group by userName,password having count(*)>1 | 分組查詢 |
| 索引列 product? SQL語(yǔ)句 :select * from product where sal*12<5000; 優(yōu)化此語(yǔ)句,簡(jiǎn)述原因 | select * from product where sal<5000/12計(jì)算和函數(shù)會(huì)使索引列失效,因此改為不對(duì)索引列進(jìn)行計(jì)算,就可以利用到索引列,提高查詢效率 | SQL調(diào)優(yōu) |
| 查詢出表中salary最高的前三位。Test(user,salary) | 1.不考慮并列情況?? select top 3 * from test order by salary desc 2.考慮并列的情況?? SELECT * FROM? (SELECT user,salary,dense_rank() over(order by salary desc) as drank from test ) ?? where rank<4 | 查詢語(yǔ)句 |
| 查詢ID重復(fù)三條以上的記錄 | 與17題雷同 select * from test where id in (select id from test? group by id having count(*)>=3) | 分組子查詢 |
| 在SQL查詢語(yǔ)句中的關(guān)鍵字like對(duì)查詢有影響嗎?如果有,有什么影響? | 有影響,會(huì)降低查詢效率 | SQL調(diào)優(yōu) |
| 在SQL中都有哪些類型?試寫出至少3個(gè) | 字符型:char varchar 數(shù)字型:int numeric 日期型:datetime | 數(shù)據(jù)庫(kù)基礎(chǔ) |
| Oracle中是物理組件有哪些? | 數(shù)據(jù)文件:用于存儲(chǔ)數(shù)據(jù)庫(kù)數(shù)據(jù),如表、索引數(shù)據(jù)等 控制文件:記錄數(shù)據(jù)庫(kù)物理結(jié)構(gòu)的二進(jìn)制文件 日志文件:記錄對(duì)數(shù)據(jù)庫(kù)的所有修改信息,用于故障恢復(fù) | Oracle基礎(chǔ)知識(shí) |
| 重寫日志文件對(duì)數(shù)據(jù)有什么用? | 記錄對(duì)數(shù)據(jù)庫(kù)的所有修改信息,用于故障恢復(fù) | Oracle基礎(chǔ)知識(shí) |
| 控制文件有什么用? | 記錄數(shù)據(jù)庫(kù)物理結(jié)構(gòu),如數(shù)據(jù)庫(kù)名,文件存放位置等等。啟動(dòng)數(shù)據(jù)庫(kù)時(shí)需要讀取該文件信息 | Oracle基礎(chǔ)知識(shí) |
| ORACLE中的邏輯組件有那些 | 表空間、段、區(qū)、數(shù)據(jù)塊 | Oracle基礎(chǔ)知識(shí) |
| 表空間與模式的關(guān)系 | 表空間不屬于任何模式,可以為多個(gè)模式所共有 | Oracle基礎(chǔ)知識(shí) |
| 用SQL語(yǔ)句創(chuàng)建用戶,并賦權(quán) | 1.創(chuàng)建用戶,使用默認(rèn)表空間 CREATE USER user1 IDENTIFIED BY user1 DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP; 2.賦與dba的權(quán)限 grant? dba to user1 | Oracle基礎(chǔ)知識(shí) |
| 什么函數(shù)用于獲取時(shí)間,怎么獲取 日,月, 年 | 1.獲取時(shí)間? select getdate() from tabName 2.獲取日月年SELECT DATEPART(day,GETDATE()) AS '日',datepart(month,getdate()) as '月',datepart(year,getdate()) as '年' | 數(shù)據(jù)庫(kù)常用函數(shù) |
| 怎樣使用通配符%,_ | %是模糊查詢,_匹配單個(gè)字符 例如:select * from test where name like 'a%';SELECT *??? FROM test? WHERE name LIKE 'j___s'; | 數(shù)據(jù)庫(kù)常用運(yùn)算符 |
| 怎么在數(shù)據(jù)庫(kù)中插入單引號(hào) | 1.利用數(shù)據(jù)庫(kù)本身提供的轉(zhuǎn)義字符,如oracle中''''則可插入' 2.借助ASCII碼轉(zhuǎn)換函數(shù)插入 | 數(shù)據(jù)庫(kù)常用函數(shù) |
| not in 和 NOT exists的區(qū)別 | 1.not in 后面跟著結(jié)果集,not exists后返回的是true或者false 2.not in一般需要進(jìn)行全表掃描,大部分情況下效率比not exists要低 3.形如select * from t1 where f1 not in (select f1 from t2 where t2.fx= 'x '), 其中子查詢的where里的條件不受外層查詢的影響,這類查詢一般情況下,自動(dòng)優(yōu)化會(huì)轉(zhuǎn)成exist語(yǔ)句, 也就是效率和not exist一樣。? 4.形如select * from t1 where f1 not in(select f1 from t2 where? t2.fx=t1.fx), 其中子查詢的where里的條件受外層查詢的影響,這類查詢的效率要看相關(guān)條件涉及的字段的索引情況 和數(shù)據(jù)量多少,一般認(rèn)為效率不如not exists。???? | SQL調(diào)優(yōu) |
| 用一條語(yǔ)句將第一和第二張表連接成第三張表 | select?? *?? from?? A???? union?? all???? select?? *?? from?? B???? ----2個(gè)表的全部記錄(包括重復(fù)的,不排序)?? ? or?????? select?? *?? from?? A???? union????? select?? *?? from?? B???? -----排序并去掉重復(fù)的記錄?? |
總結(jié)
以上是生活随笔為你收集整理的企业面试题库_数据库部分的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 企业面试题库1
- 下一篇: SQL重复记录查询(常用)