<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>mysql函数</title>
</head>
<body>
<!-- Mysql函数 字符串函数
函数指的是一段可以直接被另一段程序调用的程序或代码
字符串函数
concat(s1,s1,s3):字符串拼接,将s1,s2,...,sn拼接成员工字符串
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个长度的字符串
select 函数(参数);
-->
<!-- 数值函数
ceil(x):向上取整
floor(x):向下取整
mod(x,y):返回x/y的模(就是余数)
rand():返回0~1内的随机数
round(x,y):求参数x的四舍五入的值,保留y位小数
例子:
通过数据库的函数,生成一个6位的随机验证码
select lpad((round(rand()*1000000),0),6,'0');
-->
<!-- 日期函数
curdate():返回当前日期
curtime():返回当前时间
now():返回当前日期和时间
year(date):获取指定date的年份
month(date):获取指定date的月份
day(date):获取指定date的日期
date_add(date,interval expr type):返回一个日期/时间值加上一个时间间隔expr后的时间值
datediff(date1,date2):返回起始时间date1和结束时间date2之间的天数
例如
date_add(now(),interval 70 year);
查询所有员工入职天数,并根据入职天数排序
select name,datediff(curdate(),enterdate)as 'enterdays' from yg order by enterdays desc;
-->
<!-- 流程控制函数
if(value,t,f):如果value位true,则返回t,否则返回f
ifnull(value1,value2):如果value1不为nall,返回value1,否则返回value2
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默认值
例子:查询yg表的员工姓名和工作地址(北京/广州 ->一线城市,其他就是二线)
select
name
case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end
from yg;
-->
</body>
</html>