mysql函数

函数

在mysql中除了聚合函数 我们还经常会使用到一些其他的函数 下面就一起来看一下吧!

字符串函数

函数功能
concat(S1,S2,.....Sn)将字符串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)去掉字符串str 的头尾空格
substring(str,start,length)截取字符串 从str中从长度start开始 截取长度length的字符串
-- 字符串函数

-- 拼接 hello与mysql		表示将多个字符串进行填充
select concat('hello','world!');

--  Hello 全部转为小写
select lower('Hello');

--  Hello 全部转为大写
select upper('Hello');

--  左填充   第一个参数表示要操作的字符 第二个参数表示将源字符串共填充到几位  最后一个参数表示用什么填充
select lpad('01',6,'-');

-- 右填充  参数同上
select  rpad('01',6,'*');

-- 去除 ' hello '头尾部空格
select trim(' hello ');

-- 截取字符串  第一个参数表示要操作的字符串 第二个参数表示从第几个位置上开始截取 这里指的是具体位置 第三个参数表示截取的长度

select substring('Hello,world!',7,5);

数值函数

函数功能
ceil(x)向上取整 只要后面有大于0的小数向上取一位
floor(x)向下取整 舍弃小数
mod(x,y)返回 x/y的模
rand()返回0~1内的随机数 rand*n 表示返回 0~n 的随机数
round(x,y)x 四舍五入后的值 y 表示保留几位小数 默认为0
-- 数值型函数
-- 对 1.1向上取整   不管四舍五入的规则 只要后面有大于0的小数 直接向上取一位
select ceil(1.1);

-- 对 1.9向下取整   不管四舍五入的规则 直接舍弃小数
select floor(1.9);

-- 对 4/3 取模  
select mod(4,3);

-- 获取随机数  rand函数本身表示获取 0,1之间但是不包含0,1的随机数 *n 表示获取 0-100的随机数
select rand()*100;

-- 四舍五入   第一个参数表示要操作的数 第二个参数表示 要保留的位数 不写默认保留0位
select round(3.1415926,3);

日期函数

函数功能
curdate()返回当前日期
curtime()返回当前时间
now()返回当前日期+时间
year(date)返回指定date的年份
month(date)返回指定date的月份
day(date)返回指定date的天
date_add(date,interval expr)返回一个日期/时间值加上一个时间间隔expr后的 时间值
datediff(date1,date2)返回开始时间date1和结束时间date2的天数时间差
-- 日期函数
-- 获取当前日期 
select  curdate();

-- 获取当前时间
select curtime();

-- 获取当前日期+时间
select now();

-- 获取当前年月日
select year(now());
select month(now());
select day(now());

-- 增加指定时间间隔
select date_add(now(),interval 70 year);

-- 获取两个日期相差天数
select datediff('2021-10-01', '2021-12-01');

-- 查询所有员工入职天数 并按照入职天数倒叙排序
select name, datediff(curdate(),entrydate) '入职天数' from emp order by 入职天数 asc;

流程函数

函数功能
IF(value , t , f)如果valuetrue返回t 否则返回f
IFNULL(value1 , value2)如果value1为null返回value2 否则返回value1
CASE ’判断对象‘ WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END如果val1true返回res1, …否则返回default
CASE ’判断对象‘[ expr ] WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END如果expr的值等于val1,返回 res1,… 否则返回default默认值
-- 流程函数

-- if(value,t ,f )  如果value为true 返回true 否则返回false
select if(true,'t','f');
 
-- ifnull(value1,value2)	如果value1不为null返回vlaue1 否则返回value2
select ifnull('ok','no');
select ifnull('','no');
select ifnull(null,'no');

-- case ‘要判断的值’ when[val1] then[res1]... else[default] end 
-- 如果 val(i) 值为true 返回 res(i) 否则返回 default 默认值

-- 查询员工表的姓名和工作地址(北京/上海----->一线城市 ,其他------>二线城市)
select name, (case workaddress when'北京' then '一线城市'when'上海' then'一线城市' else '二线城市'end) as '工作地址' from emp ;


-- case ‘要判断的值’ [expr]when [val1] then [res1] ... else[default] end 
-- 如果 expr 的值等于 val  返回res ...否则返回默认值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值