函数:
是指一段可以直接被另一段程序调用的程序或代码。
字符串函数:
//字符串拼接
select concat('Hello' , 'MySQL');
//将字符串全部转换为小写
select lower('Hello');
//将字符串全部转换为大写
select upper ('Hello');
//左填充
select lpad('01',5,'-'); 用字符串 '-' 对 '01' 的左边进行填充,达到5个字符串长度
//右填充
select rpad('01',5,'-'); 用字符串 '-' 对 '01' 的右边进行填充,达到5个字符串长度
//去掉字符串头部和尾部的空格
select trim(' Hello MySQL');
//返回字符串 'Hello MySQL' 从1位置起的5个长度的字符串
select substring('Hello MySQL',1,5);
注意:
空格问题
根据需求完成以下SQL编写
由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0。
update emp set empno = lpad(empno,5,'0');
数值函数
//向上取整
select ceil(1.5); 2
//向下取整
select floor(1.1); 1
//返回 x/y 的值
select mod(5,4); 1 取模
//返回 0~1 之间的随机数
select rand(); 随机值
//求参数 2.3646 四舍五入的值,保留 2 位小数
select ROUND(2.3646,2); 2.36
根据需求完成以下SQL编写
通过数据库的函数,生成一个六位数的随机验证码。
select lpad(round(rand()*1000000,0),6,'0');
日期函数
//返回当前日期
select curdate();
//返回当前日期
select curdate();
//返回当前时间
select curtime();
//返回当前日期和时间
select now();
//获取指定date的年份
select year(now());
//获取指定date的月份
select month(now());
//获取指定date的日期
select day(now());
//返回一个日期/时间值加上一个时间间隔 70 day 后的时间值
select date_add(now(),INTERVAL 70 day);
//返回起始时间date1(2023-12-01)和结束时间date2 (2021-03-02)之间的天数
select datediff('2023-12-01','2021-03-02');
根据需求完成以下SQL编写
查询所有员工的入职天数,并根据入职天数倒序排序。
select name,datediff(curdate(),hiredate) as 'entrydays' from emp order by entrydays;
流程控制函数
select if(false,'ok','error');
select ifnull('ok','default');
select ifnull('','default');
select ifnull(null,'default');