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 join tableName as b on 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
