一、函数定义:MySQL中内置了函数,我们子啊使用MySQL的时候可以直接调用程序和代码x
二、函数分类:1、字符串函数 2、数值函数 3、日期函数 4、流程函数
1、字符串函数
常用字符串函数: concat lower upper Lpad? Rpad trim substring????
应用:
注:
Lpad注意依次顺序为(1、对什么字符串进行填充 2、填充长度是多少-用数字表示 3、用什么字符串来填充)?
substring注意(1、对什么字符串切割 2、对第几个进行切割,算上空格,一个空格算一个? 3、切割几个 如下实例
2、数值函数
ceil:向上取整????
floor:向下取整
mod:除以,看余数
rand:算出来0~1之间的随机数
round:四舍五入
应用:
注:若 select mod(5,4);余数为1 核心看余数
练习:
通过数据库函数,生成一个六位数随机验证码
3、日期函数
curdate():返回当前日期(年月日)
curtime(): 返回当前时间(时分秒)
now(): 当前日期和时间(年月日时分秒)
year(date): 获取指定date年份
month(date):获取指定date月份
day(date):获取指定date的日期
date_add:当前时间往后间隔的时间
datediff:两个指定时间之间相差的天数
应用:
练习:查询所有员工入职天数,并且根据入职天数倒叙排序
注意点:
1)当前时间函数:curdate() ,注意有括号
2)嵌套datediff(curdate(),entrydate)
3)把 curdate(),entrydate 起别名 entrydays
4)order by entrydays desc
4、流程控制函数
查询emp工作表中员工姓名和工作地址,北京上海一线城市,其他为二线城市
注:
第一步 select name, workaddress from emp
第二步 根据需求把工作地址北京上海----一线城市 其他二线城市 即case workaddress when '上海' then '一线城市' ....
第三步起别名,如下图
注意:这段写了很多遍,总是报错,核心问题点在于
1)每列之间没有写逗号
2)括号写成中文符合---sql需要英文符号
3)记得流程函数 case when then else end 最后需要有end
4)第三列四列五列需要有逗号,每列由复杂函数组成