目录
函数
指一段可以直接被另一段程序调用的程序或代码
字符串函数
MySQL中内置了很多字符串函数,常用如下:select 函数
concat(s1,s2,s3,...,sn) 字符串拼接,将s1,s2,...,sn拼接成一个字符串
#字符串拼接
select concat('hello ','MySQL');
lower(str) 将字符串全部转为小写
#字符串全转小写
select lower('Hello');
upper(str) 将字符串全部转为大写
#字符串全转大写
select upper('hello');
lpad(str,n,pad) 左填充,用字符串pad对str的左边进行填充,达到n个字符长度
#左填充
select lpad('1',5,'_');
rpad(str,n,pad) 右填充,用字符串pad对str的右边进行填充,达到n个字符长度
#右填充
select rpad('1',5,'_');
trim(str) 去掉字符串头部和尾部的空格
#去掉头尾空格
select trim(' hello MySQL ');
substring(str,start,len) 返回从字符串str从start位置起的len个长度的字符串(索引值从1开始,而不是0)
#从start位置截取len长度字符串
select substring('hellowhat can I say',6,14);
数值函数
常见的数值函数:
ceil(x) 向上取整
floor(x) 向下取整
mod(x,y) 返回x/y的模
rand() 返回0~1内的随机数
round(x,y) 求参数x四舍五入的值,保留y位小数
select 函数即可
日期函数
curdate() 返回当前日期
#返回当前日期
select curdate();
curtime() 返回当前时间
now() 返回当前日期和时间
#返回当前时间和日期
select now();
Year(date) 获取指定date的年份
#获取年份
select year(now());
month(date) 获取指定date的月份
day(date) 获取指定date的日期
date_add(add,INTERVAL expr TYPE) 返回一个日期/时间值加上一个时间间隔expr后的时间值
#增加时间间隔后时间
select date_add(now(),INTERVAL 70 DAY );
datediff(date 1,date 2) 返回起始时间date1和结束时间date2之间的天数,第一个时间减第二个时间
#求间隔时间
select datediff('2024-06-06','2021-11-01');
select 函数即可
流程函数
流程函数可以在SQL语句中实现条件筛选,从而提高语句的效率
if(value,t,f) 如果value为true,则返回t,否则返回f
select if(true,'ok','error');
ifnull(value1,value2) 如果value1不为空,返回value1,否则返回value2
select ifnull(null,'what can I say');
case when [val1] then [res1]...else[default] end 如果val1为true,返回res1,...否则返回default默认值
#查询员工姓名,工作地址(上海北京----->一线,其他二线)
select name,
(case workpalace when'北京'then'一线城市'when'上海'then'一线城市'else'二线城市'end)as'工作地址'
from emp;
数据与SQL(二)相同
case [expr] when [val1] then [res1]...else[default] end 如果expr的值等于val1,返回res1,...否则返回default默认值