?MySQL數(shù)據(jù)庫入門——day08
?高級查詢
一、聚合函數(shù):
在實(shí)際開發(fā)過程中經(jīng)常需要對數(shù)據(jù)進(jìn)行統(tǒng)計,為此MySQL中提供了一些函數(shù)來實(shí)現(xiàn)某些功能如下表所示:

1.COUNT()函數(shù):
COUNT()函數(shù)用于統(tǒng)計記錄的條數(shù),語法格式如下:
SELECT COUNT(*) FROM 表名;
2.SUM()函數(shù):
SUN()函數(shù)是求和函數(shù),用于統(tǒng)計某個字段所有值的總和,語法格式如下:
SELECT SUM(字段名) FROM 表名;
3.AVG()函數(shù):
AVG()函數(shù)用于求出某個字段所有值的平均值,語法格式如下:
SELECT AVG(字段名) FROM 表名;
4.MAX()函數(shù):
MAX()函數(shù)用于求出某個字段所有值中的最大值,語法格式如下:
SELECT MAX(字段名) FROM 表名;
5.MIN()函數(shù):
MIN()函數(shù)用于求出某個字段所有值中的最小值,語法格式如下:
SELECT MIN(字段名) FROM 表名;
二、對查詢結(jié)果進(jìn)行排序:
我們在查詢數(shù)據(jù)時,查詢的結(jié)果是無序的,或不是用戶所期望的。此時,可是使用ORDER BY 對結(jié)果進(jìn)行排序,語法格式如下:
SELECT 字段名1,字段名2,...
FROM 表名
ORDER BY 字段名1 [ASC | DESC],字段名2 [ASC | DESC],...;
ASC關(guān)鍵字表示按照升序進(jìn)行排序,DESC關(guān)鍵字表示按照降序進(jìn)行排序。在默認(rèn)情況下按照ASC方式進(jìn)行排序。
三、分組查詢:
在MySQL中可以使用GROUP BY 被某個字段或者多個字段中的值進(jìn)行分組,字段值相同的為一組,其語法格式如下:
SELECT 字段名1,字段名2,...
FROM 表名
GROUP BY 字段名1,字段名2,...[HAVING];
1.單獨(dú)使用GROUP BY分組:
單獨(dú)使用DROUP BY關(guān)鍵字進(jìn)行分組,查詢的是每個分組中的第一條記錄。
2.GROUP BY和聚合函數(shù)一起使用:
GROUP BY與聚合函數(shù)一起使用,可以統(tǒng)計出某個或者某些字段在一個分組中的最大值、最小值、平均值等。語法格式如下:
SELECT COUNT(*),字段名 FROM 表名 GROUP BY 字段名;
上述語法格式表示,對“表名”表按照“字段名”字段中的不同值進(jìn)行分組,并通過COUNT()函數(shù)統(tǒng)計出“字段名”不同分組的個數(shù)。
3.CROUP BY和HAVING關(guān)鍵字一起使用:
HAVING關(guān)鍵字 與 WHERE關(guān)鍵字作用相同,都可用于設(shè)置條件表達(dá)式對查詢結(jié)果進(jìn)行過濾。但HAVING關(guān)鍵字后可以使用聚合函數(shù),而WHERE關(guān)鍵字不能。
SELECT COUNT(*),字段名 FROM 表名 GROUP BY 字段名 HAVING 條件表達(dá)式;
上述語法格式表示,對“表名”表按照“字段名”字段中的不同值進(jìn)行分組,并通過COUNT()函數(shù)統(tǒng)計出“字段名”不同分組的個數(shù),且需要滿足條件表達(dá)式才能查詢出來。