SQL syntax-log2

--------------------------------查詢部分------------------------------------
-->全部查詢
SELECT * FROM stuInfo;

-->條件查詢
SELECT * FROM stuInfo WHERE stuNO=10001;

-->統計函數查詢
SELECT COUNT(*) AS '行數' ,AVG(labExam) AS '平均數',
MIN(labExam) AS '最小值' ,MAX(labExam) AS '最大值'
FROM stuMark;

-->TOP 應用
SELECT TOP 3 * FROM stuInfo;

-->表間查詢
SELECT * FROM stuInfo AS info,stuMark AS mark   -- 常用形式
WHERE info.stuNO = mark.stuNO;
SELECT * FROM stuInfo AS info INNER JOIN stuMark AS mark -- 內連接
ON info.stuNO = mark.stuNO;
SELECT * FROM stuInfo AS info RIGHT JOIN stuMark AS mark -- 右連接
ON info.stuNO = mark.stuNO;
SELECT * FROM stuInfo AS info LEFT JOIN stuMark AS mark  -- 左連接
ON info.stuNO = mark.stuNO; 
SELECT * FROM stuInfo AS info FULL JOIN stuMark AS mark  -- 全連接
ON info.stuNO = mark.stuNO;

-->分組統計
SELECT COUNT(*) FROM stuInfo GROUP BY stuSex;

-->排序查詢
SELECT * FROM stuInfo ORDER BY stuNO DESC;
SELECT * FROM stuInfo ORDER BY stuNO ASC;

-->嵌套查詢
SELECT * FROM stuInfo AS info INNER JOIN stuMark AS mark
ON info.stuNO = mark.stuNO
WHERE mark.labExam > (SELECT AVG(labExam) FROM stuMark)

-->獲取兩個表中同種類型所有數值 ,
SELECT stuNO FROM stuInfo UNION SELECT stuNO FROM stuMark  -- 去重複
SELECT stuNO FROM stuInfo UNION ALL SELECT stuNO FROM stuMark  -- 不去重複
SELECT stuAge FROM stuInfo UNION SELECT stuNO FROM stuMark  -- 相同類型羅列
SELECT * FROM stuMark WHERE stuNO IN(SELECT stuNO FROM stuInfo UNION SELECT stuNO FROM stuMark)

-->獲取一個表中數據不在另一個表中的所有值
SELECT stuNO FROM stuInfo EXCEPT SELECT stuNO FROM stuMark  -- 在信息表中而不再成績表中學生的學號

-->獲取兩張表中共有的數據
SELECT stuNO FROM stuInfo INTERSECT SELECT stuNO FROM stuMark  -- 成績表中和信息表中共有的學生學號


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章