MySQL基础篇(二):常用内置函数

104 阅读2分钟

本文只介绍四种常用内置函数:

  1. 字符串函数
  • concat(s1,s2...):字符串拼接
  • lower(str):str全部变小写
  • upper(str):str全部变大写
  • lpad(str,n,pad):左填充,用pad对str的左边进行填充,达到n个字符串
  • rpad(str,n,pad):右填充,用pad对str的右边进行填充,达到n个字符串
  • trim(str):去除头部和尾部的空格(注:中间的空格不处理)
  • substring(str,start,len):str从start开始截取len个(注:str下标从1开始算起)
  1. 数值函数
  • ceil(x):向上取整
  • floor(x):向下取整
  • mod(x,y):返回x/y的模
  • rand():返回0~1的随机数
  • round(x,y):对x四舍五入并保留y个小数位
  1. 日期函数
  • curdata():返回当前日期
  • curtime():返回当前时间
  • now():返回当前日期和时间
  • year(date):返回指定date的年份
  • month(date):返回指定date的月份
  • day(date):返回指定date的日期
  • date_add(date,interval expr type):返回一个日期/时间值加上一个时间间隔expr后的时间值
  • datediff(date1,date2):返回起始时间date1和结束时间date2之间的天数
  1. 流程控制函数:
  • if(value,res1,res2):如果value为true则返回res1,否则返回res2
  • ifnull(value1,value2):如果value为空则返回value2,否则返回value1
  • case when [val1] then [res1] ... else [default] end:如果val1为true则返回res1,否则返回default默认值
  • case [expr] when [val1] then [res1] ... else [default] end:如果expr的值等于val1则返回res1,否则返回default默认值

字符串函数

image.png

eg:将employee表中的员工工号统一为5位数,如果不满5位数,则前面补0
update emplyoee set workNum = lpad(workNum,5,'0')

数值函数

image.png

eg:生成一个六位数的随机验证码
select lpad(round(rand()*1000000),6,'0');

时间函数

image.png

eg:查询所有员工的入职天数,并根据入职天数倒叙排序
select name,datediff(curdate(),workDay) as '入职天数' from employee order by '入职天数' desc;

流程控制函数

image.png