字符串拼接
select concat('Hello','MySQL')
小写转换
select lower('Hello')
大写转换
select upper('Hello')
左填充,填充到5个长度
select lpad('01',5,'-')
右填充
select rpad('01',5,'-')
去除字符串左右空格
select trim(' Hello MySQL ')
截取字符串,从第2个开始截8个
select substring('Hello MySQL',2,8)
把sii表的workno(工号)设置为5位,不够的左边补0
update sii set workno =lpad(workno,5,'0')
向上取整(比原来大)
select ceil(1.1)
向下取整(比原来小)
select floor(-2.3)
取余
select mod(7,4)
生成0-1的随机数
select rand()
四舍五入,保留两个小数位
select round(2.345,2)
生成6位数的码,不够的左边补0
select lpad(round(rand()*1000000,0),6,'0')
当前日期,年月日
select curdate()
当前时间,时分秒
select curtime()
当前时间,年月日,时分秒
select now()
指定日期的年
select year(now())
指定日期的月
select month(now())
指定日期的日
select day(now())
现在时间70天后的时间,也可为其他五个单位
select date_add(now(),interval 70 day)
两个日期的相差天数,第一个减第二个
select datediff('2023-06-08','2023-12-24')
把员工按入职日期倒叙排列
select name,datediff(now(),entrydate) as a from sii order by a desc
如果第一个参数true,则返回ok,否则返回第三个参数字符串no
select if (false,'ok','no')
第一个参数为null则返回第二个参数,否则返回第一个参数
select ifnull('OK','default')
select ifnull('','default')
select ifnull(null,'default')
把员工的姓名,workaddress返回,如果是北京或上海则返回一线城市,否则返回二线城市
select name,case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end a from sii
把学生的name,id,三个成绩返回,成绩>=85返回优秀,>=60返回及格,否则返回不及格
select name,id,case when math>=85 then'优秀'when math>=60 then '及格' else '不及格' end '数学等级',
case when english>=85 then'优秀'when english>=60 then '及格' else '不及格' end '英语等级',
case when chinese>=85 then'优秀'when chinese>=60 then '及格' else '不及格' end '语文等级'
from score