【面試】數據庫相關

1.有以下數據,怎麼查詢顯示結果爲 張三, 北京 河北, 12:00數據庫

name      address     arrive_time 
張三       北京        10:00  
張三       河北        12:00  

SELECT name, GROUP_CONCAT(DISTINCT address SEPARATOR ' ') AS address, max(arrive_time) AS arrive_time
FROM mytable
GROUP BY name;

2.如何查詢重複數據?函數

SELECT * FROM student GROUP BY name HAVING count(name ) > 1

3.查詢結果如何去重?優化

distinct關鍵字或者group by

4.Oracle數據庫分頁查詢code

select a1.* 
from (select student.*,rownum rn from student where rownum <=5) a1 
where rn >=3;

5.delete、truncate、drop都是刪除語句,他們的區別是什麼索引

在速度上,通常來講,drop> truncate > delete
delete用於刪除部分數據
truncate 刪除整個表而後從新建立這個表(至關於清空了表數據)
drop 摧毀整個表

6.數據庫主鍵和外鍵做用事務

主鍵是表格裏的(一個或多個)字段,只有一個,用來定義表格裏的行值
外鍵是一個用來創建兩個表格之間關係的約束,能夠有多個

7.where和having的區別ci

Where子句中不能使用聚合函數 而Having子句中能夠 
having位於where後面

8.union和union all的區別數學

兩者都是合併查詢結果集,UNION用的比較多
union all是直接鏈接,取到得是全部值,記錄可能有重複   
union 是取惟一值,記錄沒有重複

9.數據庫事務正確執行的四個基本要素是什麼it

原子性(Atomicity)
一致性(Consistency)
隔離性(Isolation)
持久性(Durability)

10.有以下數據,查詢出每門課都大於80分的學生姓名io

name    class    score
蔡徐坤    語文    80
蔡徐坤    英語    55
吳亦凡    語文    100
吳亦凡    英語    90
鄧紫棋    英語    85
鄧紫棋    數學    70
鄧紫棋    語文    95

select name from table group by name having min(score)>80

11.數據庫優化策略

a.多條件查詢時將更精準的條件放在前面
b.儘可能用in代替or
c.儘可能查具體字段而不是無腦查*
d.當只須要一條結果時能夠在查詢語句後面加一句rownum = 1或者limit 1
e.選用合適的數據庫引擎
f.建立合適的索引
相關文章
相關標籤/搜索