一、函數(shù)定義:MySQL中內(nèi)置了函數(shù),我們子啊使用MySQL的時(shí)候可以直接調(diào)用程序和代碼x
二、函數(shù)分類:1、字符串函數(shù) 2、數(shù)值函數(shù) 3、日期函數(shù) 4、流程函數(shù)
1、字符串函數(shù)
常用字符串函數(shù): concat lower upper Lpad? Rpad trim substring????

應(yīng)用:

注:
Lpad注意依次順序?yàn)椋?、對什么字符串進(jìn)行填充 2、填充長度是多少-用數(shù)字表示 3、用什么字符串來填充)?
substring注意(1、對什么字符串切割 2、對第幾個(gè)進(jìn)行切割,算上空格,一個(gè)空格算一個(gè)? 3、切割幾個(gè) 如下實(shí)例

2、數(shù)值函數(shù)
ceil:向上取整????
floor:向下取整
mod:除以,看余數(shù)
rand:算出來0~1之間的隨機(jī)數(shù)
round:四舍五入
應(yīng)用:



注:若 select mod(5,4);余數(shù)為1 核心看余數(shù)



練習(xí):
通過數(shù)據(jù)庫函數(shù),生成一個(gè)六位數(shù)隨機(jī)驗(yàn)證碼

3、日期函數(shù)
curdate():返回當(dāng)前日期(年月日)
curtime(): 返回當(dāng)前時(shí)間(時(shí)分秒)
now(): 當(dāng)前日期和時(shí)間(年月日時(shí)分秒)
year(date): 獲取指定date年份
month(date):獲取指定date月份
day(date):獲取指定date的日期
date_add:當(dāng)前時(shí)間往后間隔的時(shí)間
datediff:兩個(gè)指定時(shí)間之間相差的天數(shù)
應(yīng)用:







練習(xí):查詢所有員工入職天數(shù),并且根據(jù)入職天數(shù)倒敘排序

注意點(diǎn):
1)當(dāng)前時(shí)間函數(shù):curdate() ,注意有括號
2)嵌套datediff(curdate(),entrydate)
3)把 curdate(),entrydate 起別名 entrydays
4)order by entrydays desc
4、流程控制函數(shù)





查詢emp工作表中員工姓名和工作地址,北京上海一線城市,其他為二線城市

注:
第一步 select name, workaddress from emp
第二步 根據(jù)需求把工作地址北京上海----一線城市 其他二線城市 即case workaddress when '上海' then '一線城市' ....
第三步起別名,如下圖





注意:這段寫了很多遍,總是報(bào)錯(cuò),核心問題點(diǎn)在于
1)每列之間沒有寫逗號
2)括號寫成中文符合---sql需要英文符號
3)記得流程函數(shù) case when then else end 最后需要有end
4)第三列四列五列需要有逗號,每列由復(fù)雜函數(shù)組成
5、四類函數(shù)總結(jié)===理解每個(gè)函數(shù)的意義
