SQL 規(guī)范中定義了很多的函數(shù)方法,它們按照應(yīng)用場(chǎng)景不同可以劃分為以下類別,聚合函數(shù)、日期時(shí)間函數(shù)、字符串函數(shù),邏輯函數(shù)等等,我們抽取幾個(gè)較為頻繁使用的方法介紹下,其余的留待大家自行研究。
聚合函數(shù):
AVG(column_name):求取結(jié)果集某一列的平均值,如果某條記錄行該字段NULL,將不參與平均值計(jì)算

COUNT(column_name):統(tǒng)計(jì)結(jié)果集中數(shù)據(jù)記錄行數(shù),即統(tǒng)計(jì)有多少條數(shù)據(jù)

MAX(column_name):返回結(jié)果集中某列的最大值

SUM(colunmn_name):求和結(jié)果集某列

MIN(column_name):返回結(jié)果集中某列的最小值

除此之外,還有一些求標(biāo)準(zhǔn)差,方差
聚合函數(shù)的一個(gè)特點(diǎn)是,它往往是對(duì)整個(gè)結(jié)果集進(jìn)行了某種數(shù)學(xué)運(yùn)算并返回一個(gè)常量數(shù)值而非集合。
日期時(shí)間函數(shù):
由于日期函數(shù)在不同的數(shù)據(jù)實(shí)現(xiàn)來(lái)說(shuō),很多相同功能的函數(shù)具有不同的函數(shù)名稱,我們這里僅以 MySql 來(lái)介紹這些函數(shù),給你一個(gè)宏觀印象,不同的數(shù)據(jù)庫(kù)之間只不過(guò)語(yǔ)法差異,搜索引擎就可以解決。
NOW():返回當(dāng)前日期時(shí)間,精確到時(shí)分秒
CURDATE():返回當(dāng)前的日期
CURTIME():返回當(dāng)前的時(shí)間
DATA(日期時(shí)間/日期表達(dá)式):該函數(shù)用于提取參數(shù)中的日期部分,參數(shù)可為一個(gè)時(shí)分秒的日期對(duì)象,或字符串表達(dá)式
EXTRACT(unit FROM date):取出日期時(shí)間中指定部分,unit 可取值年、月、日、時(shí)分秒等等
DATE_ADD(date,INTERVAL expr type):為指定參數(shù)的時(shí)間日期添加一個(gè)時(shí)間間隔
DATEDIFF(date1,date2):返回兩個(gè)日期時(shí)間之間相隔的天數(shù)
DATE_FORMAT(date,format):按照指定格式輸出指定的日期時(shí)間
我們?cè)敿?xì)說(shuō)一下最后一個(gè)函數(shù),這個(gè)函數(shù)用于格式化輸出一個(gè)日期時(shí)間對(duì)象,format 為指定的格式,取值如下:


舉個(gè)例子:
select date_format(now(),'年:%Y-月:%m-日:%d');
執(zhí)行 SQL,將輸出:

雖然很奇怪的輸出格式,但我要說(shuō)明的是這種可定制化的日期格式輸出函數(shù)。
數(shù)學(xué)函數(shù):
ABS(column_name):求絕對(duì)值
PI():返回常量 3.141593
還有一些正弦、余弦,正切,平方根等函數(shù)
除此之外,還有很多函數(shù),例如一些操作字符串、文本等等函數(shù),這里不一一贅述了,用到的時(shí)候嘗試性的搜一搜,看有沒(méi)有預(yù)定義的函數(shù)能夠解決你的當(dāng)下需求。