1. 程式人生 > >SQL 查詢語句總結

SQL 查詢語句總結

SQL 查詢語句總結

1. 列名

Select Sname AS 姓名 from Student;

·這裡AS可以省略。

 

2. 去重:distinct

Select distinctSno from sc;

 

3.  WHERE條件查詢

比較               =/>/</>=/<=

確定範圍        between … and …/notbetween … and …

確定集合        IN/NOT IN

字元匹配        LIKE/NOT LIKE

空值               IS NULL/IS NOTNULL

多重條件        AND/OR

 

4. LIKE匹配

_下劃線:匹配任意一個字元

%百分號:匹配0個或多個字元;

[]:匹配[]中的任意一個字元。如[acgd]表示匹配a/c/g/d中的任何一個,對於連續的,可以寫成[a-d];

[^]:不匹配[]中的任何一個字元。寫成[^abgd]。

 

5. SQL Server中的庫函式

如:RTRIM,去掉尾隨空格的干擾(預設儲存時,多餘位補充空格。)

Select Sname from Student WHERE RTRIM(Sname)LIKE ‘王__’

 

6.  涉及空值NULL的查詢

這裡注意不能使用=/!=等符號,需要使用 ISNULL/IS NOT NULL。

 

7. 多重查詢條件,使用AND、OR

Select Snamefrom Student WHERE Sdept=’計算機系’ AND Sage<20;

 

8.  查詢結果排序

·ASC從小到大、DESC從大到小

·預設按照升序

·可以按多個列進行排序,首先按前面的列排序,遇到相同記錄再按照第二列排序。

 

9. 聚合函式

·COUNT(*):統計表中元素的個數;

·COUNT(DISTINCT 列名):統計本列中非空列值的個數;(DISTINCT表示不包括列重複值)

·SUM:計算列值的和;

·AVG:平均值

·MAX:最大值

·MIN:最小值

上述函式中除了COUNT(*)外,其他函式在計算過程中均忽略NULL值。

 

10. 分組GROUP BY

比如需要統計每個學生的考試成績,而不是全體學生的考試平均成績時,就需要現將學生進行分組。(按每個人)

       GROUPBY 分組依據

       HAVING組條件

 

要求:

(1)查詢表中的每個列必須要麼是分組依據列(在GROUP BY後邊的列),要麼是聚合函式;

(2)GROUP BY後不能使用別名;

 

11. 帶WHERE分組的子句

過程:先執行WHERE子句,再對篩選出的滿足條件的資料執行GROUP BY操作。

 

12. 按多列分組

GROUP BYSdept,Ssex

多列分組,多列值合在一起唯一的分組。

 

13. 使用HAVING子句

用於對分組後的結果進行再篩選。

如:

SelectSno,COUNT(*) 選課門數 FROM SC

GROUP BY Sno

HAVINGCOUNT(*)>3

最後篩選出統計結果滿足大於3的組。

 

14. 分組總結:

·WHERE子句用來篩選FROM子句中指定的資料來源所產生的行資料;

·GROUP BY子句用來對經WHERE子句篩選後的結果資料進行分組;

·HAVING子句用來對分組後的結果資料再進行篩選。

 

普通多表連線查詢

如:

SelectSname,Cno,Grade FROM Student S

JOIN SC

ON S.Sno =SC.Sno

WHERE Sdep = ‘計算機系’

注意:當為表指定了表名,在查詢語句中的其他地方,所有用到表名的地方都要使用別名,而不能再使用原表名。

 

15. 自連線

一種特殊的內連線,指互相連線的表在物理上為同一張表。

 

16. 外連線

如:查詢學生的選課情況,包括選了課程的學生和沒有選課程的學生。

SelectStudent.Sno,Sname,Cno,Grade

From StudentLeft OUTER JOIN SC

ON Student.Sno =SC.Sno

有部分不滿足表連線條件,但進行左外連線時也將它們顯示出來,並將不滿足連線條件的結果在相應列上放置NULL值。

 

17.  子查詢一個Select巢狀在另一個Select中。

常用到IN、NOT IN。
--------------------- 
轉載:https://blog.csdn.net/Songjs19931206/article/details/47300853