MySQL——常見函數(shù)
函數(shù)
調(diào)用:SELECT 函數(shù)名(實(shí)參列表)
單行函數(shù)
- 字符函數(shù)
concat() 連接 substr() 截取子串 upper() 變大寫 lower() 變小寫 repalce() 替換 length() 獲取字節(jié)長度 trim('a' from 'aa前后的a都會(huì)去掉aa') 去前后 lpad(str,len,str) 左填充 rpad(str,len,str) 右填充 instr(str,str) 獲取子串第一次出現(xiàn)的索引
- 數(shù)學(xué)函數(shù)
ceil() 向上取整 round() 四舍五入 mod() 取模 floor() 向下取整 truncate() 截?cái)?rand() 獲取隨機(jī)數(shù),返回[0,1)之間的小數(shù)
- 日期函數(shù)
now() 返回當(dāng)前日期+時(shí)間 year() 返回年 month() 返回月 day() 返回日 date_format() 將日期轉(zhuǎn)換成字符 curdate() 返回當(dāng)前日期 str_to_date() 將字符轉(zhuǎn)換成日期 curtime() 返回當(dāng)前時(shí)間 hour() 小時(shí) minute() 分鐘 second() 秒 datediff() 返回兩個(gè)日期相差的天數(shù) monthname() 以英文形式返回月
- 其他函數(shù)
version() 當(dāng)前數(shù)據(jù)庫服務(wù)器的版本 datebase() 當(dāng)前打開的數(shù)據(jù)庫 user() 當(dāng)前用戶 password('字符') 返回該字符的密碼形式 mysql8.0版本中已刪除 md5()
- 流程控制函數(shù)
// if if (條件表達(dá)式, 表達(dá)式1, 表達(dá)式2): 如果條件表達(dá)式成立,返回表達(dá)式1,否則返回表達(dá)式2 // case case 變量 或 表達(dá)式 或 字段 when 常量1 then 值1 when 常量2 then 值2 ... else 值n end
分組函數(shù)
max() 最大值 min() 最小值 sum() 和 avg() 平均值 count() 計(jì)算個(gè)數(shù)
注意點(diǎn):
① 語法
select max(字段) from 表名
② 支持的類型
sum和avg用于處理數(shù)值型
max、min、count可以處理任何數(shù)據(jù)類型
③ 以上分組函數(shù)都忽略null
④ 都可以搭配distinct使用,實(shí)現(xiàn)去重的統(tǒng)計(jì)
select count(distinct 字段) from 表名
⑤ count函數(shù)
count(字段) 統(tǒng)計(jì)該字段非null值的個(gè)數(shù)
count(*) 統(tǒng)計(jì)結(jié)果集的行數(shù)
count(1) 統(tǒng)計(jì)結(jié)果集的行數(shù)
⑥ 和分組函數(shù)一同查詢的字段,要求是group by后出現(xiàn)的字段