高級查詢
- 聚合函數
(一)COUNT()函數:用來統計記錄的條數
語法格式如下所示:
SELECT COUNT(*) FROM 表名;
例如:(1)查詢student表中一共有多少條記錄,SQL語句及其執行結果如下所示:
(二) SUM()函數:用於求出表中某個字段所有值的總和
語法格式如下所示:
SELECT SUM(字段名) FROM 表名;
例如:(1)求出student表中grade字段的總和,SQL語句及其執行結果如下所示:
(三) AVG()函數:用於求出某個字段所有值的平均值
語法格式如下所示:
SELECT AVG(字段名) FROM student;
例如:(1)求出student表中grade字段的平均值,SQL語句及其執行結果如下所示:
(四)MAX()函數:用於求出某個字段的最大值
語法格式如下所示:
SELECT MAX(grade) FROM student;
例如:(1)求出student表中所有學生grade字段的最大值,SQL語句及其執行結果如下所示:
(五)MIN()函數:用於求出某個字段的最小值
語法格式如下所示:
SELECT MIN(grade) FROM student;
例如:(1)求出student表中grade字段的最小值,SQL語句如下所示:
2. 對查詢結果排序
(一) 使用ORDER BY對查詢結果進行排序。
語法格式如下所示:
SELECT 字段名1,字段名2,……
FROM 表名
ORDER BY 字段名1 [ASC | DESC],字段名2 [ASC | DESC]……
例如:(1)查出student表中的所有記錄,並按照grade字段進行排序,SQL語句及其執行結果如下所示:
(2)查詢student表中的所有記錄,按照gender字段的升序和grade字段的降序進行排列,SQL語句及其執行結果如下所示:
3. 分組查詢
使用GROUP BY按某個字段或者多個字段中的值進行分組,字段中值相同的為一組。
語法格式如下所示:
SELECT 字段名1,字段名2,……
FROM 表名
GROUP BY 字段名1 ,字段名2 ……
(一) 單獨使用GROUP BY 分組:單獨使用group by關鍵字,查詢的是每個分組中的一條記錄。
例如:(1)查詢student表中的記錄,按照gender字段值進行分組,SQL語句及其執行結果如下所示:
(二)GROUP BY和聚合函數一起使用:可以統計出某個或者某些字段在一個分組中的最大值、最小值、平均值等等。
例如(1)將student表按照gender字段值進行分組查詢,計算出每個分組中各有多少名學生,SQL語句及其執行結果如下所示:
(二) GROUP BY和HAVING關鍵字一起使用: 用於設置條件表達式對查詢結果進行過濾。
例如(1)將student表按照gender字段進行分組查詢,查詢出grade字段值之和小於300的分組,SQL語句及其執行結果如下所示:
4.使用LIMIT限制查詢結果的數量
LIMIT,可以指定查詢結果從哪一條記錄開始以及一共查詢多少條信息。
語法格式如下所示:
SELECT 字段名1,字段名2,……
FROM 表名
LIMIT [OFFSET,] 記錄數
例如(1)查詢student表中的前4條記錄,SQL語句及其執行結果如下所示:
5.函數(列表)
例如(1)查詢student表中的id和gender字段值,如果gender字段的值為“男”則返回1,如果不為“男”則返回0, SQL語句及其執行結果如下所示:
6.為表取別名
為表起別名的格式如下所示:
SELECT * FROM 表名 [AS] 別名;
7.為字段取別名
為字段起別名的格式如下所示:
SELECT 字段名 [AS] 別名[,字段名 [AS] 別名,……] FROM 表名;