MySQL数据库——基础——函数

一.字符串函数

        1.CONCAT(S1,S2,···Sn):字符串拼接,将S1,S2,···Sn拼接成一个字符串  

select concat('Hello','MySQL');

HelloMySQL 

        2.LOWER(str):将字符串str全部转为小写

select lower('Hello');

hello 

        3.UPPER(str):将字符串str全部转为大写

select upper('Hello');

HELLO 

        4.LPAD(str,n,pad):左填充,用字符串pad对str的左边进行填充,达到n个字符串长度

select lpad('01',5,'-');

---01 

        5.RPAD(str,n,pad):右填充,用字符串pad对str的右边进行填充,达到n个字符串长度

select rpad('01',5,'-');    

01---

        6.TRIM(str):去掉字符串头部和尾部的空格

select trim(' hello world ');

hello world 

        7.SUBSTRING(str,start,len):返回从字符串str从start位置起的len个长度的字符串

select substring('helloworld',1,5); 

hello(第一个字符的索引为1)

二.数值函数

        1.ceil:向上取整

select ceil(1.5);

 2 

        2.floor:向下取整

select floor(1.2);

        3.mod:取模运算 

select mod(3,2);

        4.rand:生成0-1之间的一个随机数

select rand();

0.21363859643567223 

        5.round(x,y):对x小数点后y位进行四舍五入

select round(2.34,2);
select round(2.345,1);

2.34

2.3

练习:

通过数据库函数,生成一个六位数的随机验证码

select lpad(round(rand()*1000000,0),6,'0');

-- 1.先生成一个0-1之间的随机数,然后再乘以1000000变成一个<=6位的数字
-- 2.然后四舍五入去掉小数部分
-- 3.再进行左填充(或右填充),长度设置位6位,不够的位上补0

三.时间函数

        1.CURDATE():返回当前日期

select curdate();

2023-06-01 

        2.CURTIME():返回当前时间 

select curtime();

22:05:28 

        3.NOW():返回当前日期和时间

select now();

2023-06-01 22:05:48 

        4.YEAR(DATE):获取指定date的年份

select year(now());

2023

        5.MONTH(DATE):获取指定date的月份

select month(now());

        6.YEAR(DATE):获取指定date的年份 

select  year(now());

1

        7.DATE_ADD(date,INTERVAL expr type):返回一个日期/时间值加上一个时间间隔expr后的时间值

select date_add('2021-10-21',INTERVAL 70 day);

2021-12-30

select date_add('2021-10-21',INTERVAL 70 MONTH );

 2027-08-21

select DATE_ADD('2021-10-21',INTERVAL 70 YEAR );

2091-10-21

         8.DATEDIFF(date1,date2):返回起始时间date1和结束时间date2之间的天数

select datediff('2011-2-11','2000-3-4');   # date1 - date2

3996

select datediff('2011-2-11','2021-3-4');

-3674

四.流程函数

        1.IF(value,t,f) 如果value为true,则返回t,否则返回f

select if(true,'hello','world');
select if('1',2,3);
select if(false,0,1);

hello,2,0 

        2.IFNULL(value1,value2) 如果value1不为空则返回value1,否则返回value2

select ifnull(null,1);
select ifnull(1,2);
select ifnull('ok','default');
select ifnull('','default');  # 空字符串并不代表null

1,1,default,  

        3.CASE WHEN[val1] THEN[res1] ... ELSE[default] END ;如果val1为true,返回res1,...否则返回default默认值

-- >=85,展示优秀;>=60,展示及格;否则,展示不及格
select id,name,
       (case when math >= 85 then '优秀' when math >= 60 then '及格' else '不及格' end) as '数学等级',
       (case when english >= 85 then '优秀' when english >= 60 then '及格' else '不及格' end) as '英语等级',
       (case when chinese >= 85 then '优秀' when chinese >= 60 then '及格' else '不及格' end) as '语文等级'
       from score;

        4.CASE[expr] WHEN[val1] THEN[res1] ...ELSE[default] END 如果expr的值等于val1,返回res1,...否则返回default默认值   

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

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值