一、函数定义: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:四舍五入
应用:
ceil 向上取整 floor向下取整 MOD 为3/4取余 这里余3注:若 select mod(5,4);余数为1 核心看余数
0~1随机取数 round四舍五入,包括(2.548,2),2指的保留两位小数 这里保留三位小数,四舍五入练习:
通过数据库函数,生成一个六位数随机验证码
注意:这里rand*100w,用round函数取整(0位小数),用lpad补足到6位数(如需)3、日期函数
curdate():返回当前日期(年月日)
curtime(): 返回当前时间(时分秒)
now(): 当前日期和时间(年月日时分秒)
year(date): 获取指定date年份
month(date):获取指定date月份
day(date):获取指定date的日期
date_add:当前时间往后间隔的时间
datediff:两个指定时间之间相差的天数
应用:
curdate curtime now year (指定date的年份) year(指定date的年份) 当前时间年月日add往后间隔70天/年... 两个时间之间间隔时间,这里是730天练习:查询所有员工入职天数,并且根据入职天数倒叙排序
这里核心思路:当前时间-入职时间注意点:
1)当前时间函数:curdate() ,注意有括号
2)嵌套datediff(curdate(),entrydate)
3)把 curdate(),entrydate 起别名 entrydays
4)order by entrydays desc
4、流程控制函数
流程函数常见的四种函数 if函数三个参数(值1:是true,则返回值二,否则返回值三)注意值1是个条件表达式 ifnull函数两个参数(若值1不是空值,则返回值1,否则返回值2 null 和'null'不一样查询emp工作表中员工姓名和工作地址,北京上海一线城市,其他为二线城市
case when then when then...else end注:
第一步 select name, workaddress from emp
第二步 根据需求把工作地址北京上海----一线城市 其他二线城市 即case workaddress when '上海' then '一线城市' ....
第三步起别名,如下图
练习注意:这段写了很多遍,总是报错,核心问题点在于
1)每列之间没有写逗号
2)括号写成中文符合---sql需要英文符号
3)记得流程函数 case when then else end 最后需要有end
4)第三列四列五列需要有逗号,每列由复杂函数组成
网友评论