MySQL數(shù)據(jù)庫基礎(chǔ)——高級查詢

?MySQL數(shù)據(jù)庫入門——day08

?高級查詢

一、聚合函數(shù):

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


聚合函數(shù)

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á)式才能查詢出來。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容