1. 程式人生 > 其它 >乾貨!常見的SQL面試題:經典50例!

乾貨!常見的SQL面試題:經典50例!

SQL基礎知識整理

  • select 查詢結果,如:[學號,平均成績:組函式avg(成績)]
  • from 從哪張表中查詢資料,如:[涉及到成績:成績表score]
  • where 查詢條件,如:[b.課程號='0003' and b.成績>80]
  • group by 分組,如:[每個學生的平均:按學號分組](oracle,SQL server中出現在select子句後的非分組函式,必須出現在group by子句後出現),MySQL中可以不用
  • having 對分組結果指定條件,如:[大於60分]
  • order by 對查詢結果排序,如:[增序: 成績 ASC / 降序: 成績 DESC];
  • limit使用limt子句返回topN(對應這個問題返回的成績前兩名),如:[ limit 2 ==>從0索引開始讀取2個]
    limit==>從0索引開始[0,N-1]
select * from table limit 2,1;                
 
-- 含義是跳過2條取出1條資料,limit後面是從第2條開始讀,讀取1條資訊,即讀取第3條資料
 
select * from table limit 2 offset 1;     
 
-- 含義是從第1條(不包括)資料開始取出2條資料,limit後面跟的是2條資料,offset後面是從第1條開始讀取,即讀取第2,3條

組函式:去重 distinct()統計總數sum() 計算個數count() 平均數avg() 最大值max() 最小數min()

多表連線:內連線(省略預設inner) join...on..左連線left jointableName as bon a.key ==b.key右連線right join 連線union(無重複(過濾去重))和union all(有重複[不過濾去重])

  • union 並集
  • union all(有重複)

oracle(SQL server)資料庫

  • intersect 交集
  • minus(except) 相減(差集)

https://mp.weixin.qq.com/s/CJSxzq262tuz8ANW93Lbyg

故鄉明