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