mysql字符串、数值、日期、流程函数

字符串函数:

#concat(字符串拼接)
select concat ('hello',' mysql');

在这里插入图片描述

lower(字符串转化为小写)upper(字符串转化为大写
select lower('Hello');
select upper('hello');

在这里插入图片描述

# lpad(左填充)rpad(右填充)注意格式
select lpad('01',5,'-');
select rpad('01',5,'-');
#trim 去除收尾空格(中间的还在)(去除的是第一个和最后一个空格)
#几遍前面有无数个空格也只去掉第一个
select trim(' hello mysql ');

在这里插入图片描述

# substring(str,start,len)
#注意这里字符串是从1开始的不是丛0开始的
select substring('hello mysql', 1, 5);

在这里插入图片描述

#将教师号更改形式计算机系为001,自动化002,信息003(如S1->S1001)(S2->S2)
update t set TNo =rpad(TNo,5,'001')where dept='计算机';
update t set TNo =rpad(TNo,5,'002')where dept='自动化';
update t set TNo =rpad(TNo,5,'003')where dept='信息';
select *from t;

在这里插入图片描述

数值函数

#ceil(向上取整)floor(向下取整)mod(余数)rand(0-1随机数)round(四舍五入)
select ceil(1.2);#只要小数位不是0就+1
select floor(1.9);
select mod(4,3);-- 注意是4,3不是4/3
select rand();
select round(2.5687,2);
select round(2.5687,3);

利用数据库生成6位随机数:

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

在这里插入图片描述

日期函数

#curdate(返回当前日期),cubtime(返回当前时间),now(返回当前日期和时间

select curdate()as '当前日期';
select curtime()as '当前时间';
select now() as '当前日期和时间';

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
600秒以前的时间:

select month(now());
select date_add(now(),interval -600 second);//ed是-,ing是+或者省略

在这里插入图片描述
– #datediff(date1,date2)date1-date2

select datediff('2019.9.1','2022.04.03');

在这里插入图片描述
查询学生入校天数并按照天数倒序排序

select SN,datediff(curdate(),intime) as 'sum_day' from s order by sum_day desc;

在这里插入图片描述

流程函数

#流程函数【常用】
#if(value,t,f);三目运算
#ifnull(value1,value2);
#case when val1 then ... else ... end;
#case biaodashi when val1 then ... else ... end;
select if(5>20,'true','false');

在这里插入图片描述

select ifnull('','第一个值为空');#''不为空返回的是空白
select ifnull(null,'第一个值为null') as '判断框';

在这里插入图片描述
在这里插入图片描述
查询s表的姓名和专业,如果专业是计算机返回热门专业,其他则返回其他专业
【不涉及表达式的用以下的方法】

select
    sn,
    case dept when '计算机' then '热门专业'
              #可以有多个when和then
              else '其他专业' end as '专业类别'
from s;

在这里插入图片描述
#对成绩表sc进行操作,>=95为优秀,>=85为良好,>=75为中等,>=60为及格其他不及格,并显示学号
【表达式判断的用以下的方法】

select#
        SNo,
        case when Score>=95 then '优秀'
             when Score>=85 then '良好'
             when Score>=75 then '中等'
             when Score>=60 then '及格'
             else '不及格' end as '等级'#在尾部添加as
from SC;
select *from sc;

在这里插入图片描述
本节代码:

select database();
use students;
show tables;
select *from sc;
#字符串函数
#concat(字符串拼接)lower(字符串转化为小写)upper(字符串转化为大写
# lpad(左填充)rpad(右填充)trim(去除字符串头尾部空格)
# substring(str,start,len)
select concat ('hello',' mysql');
select lower('Hello');
select upper('hello');
# lpad(左填充)rpad(右填充)注意格式
select lpad('01',5,'-');
select rpad('01',5,'-');
#trim 去除收尾空格(中间的还在)(去除的是第一个和最后一个空格)
#几遍前面有无数个空格也只去掉第一个
select trim(' hello mysql ');
#注意这里字符串是从1开始的不是丛0开始的
select substring('hello mysql', 1, 5);
#将教师号更改形式计算机系为001,自动化002,信息003(如S1->S1001)(S2->S2)
update t set TNo =rpad(TNo,5,'001')where dept='计算机';
update t set TNo =rpad(TNo,5,'002')where dept='自动化';
update t set TNo =rpad(TNo,5,'003')where dept='信息';
select *from t;
#数值函数
#ceil(向上取整)floor(向下取整)mod(余数)rand(0-1随机数)round(四舍五入)
select ceil(1.2);#只要小数位不是0就+1
select floor(1.9);
select mod(4,3);-- 注意是4,3不是4/3
select rand();
select round(2.5687,2);
select round(2.5687,3);
-- 利用数据库生成6位随机数:
select lpad(round(rand()*1000000,0),6,'0');
#日期函数
#curdate(返回当前日期),cubtime(返回当前时间),now(返回当前日期和时间
# year/month/dat(date)(获取指定的年月日
# dete_add(date,interval,expr 时间单位)返回一个日期/时间加上一个时间间隔expr后的时间值
#datediff(date1,date2)返回两个时间之间的天数
alter table s add intime varchar(10);
select *from s;
select curdate()as '当前日期';
select curtime()as '当前时间';
select now() as '当前日期和时间';
select month(now());
select date_add(now(),interval -600 second);//ed是-,ing是+或者省略
-- #datediff(date1,date2)date1-date2
select datediff('2019.9.1','2022.04.03');
查询学生入校天数并按照天数倒序排序
select SN,datediff(curdate(),intime) as 'sum_day' from s order by sum_day desc;
#流程函数【常用】
#if(value,t,f);三目运算
#ifnull(value1,value2);
#case when val1 then ... else ... end;
#case biaodashi when val1 then ... else ... end;
select if(5>20,'true','false');
select ifnull('','第一个值为空');#''不为空返回的是空白
select ifnull(null,'第一个值为null') as '判断框';
查询s表的姓名和专业,如果专业是计算机返回热门专业,其他则返回其他专业
select
    sn,
    case dept when '计算机' then '热门专业'
              #可以有多个when和then
              else '其他专业' end as '专业类别'
from s;
#对成绩表sc进行操作,>=95为优秀,>=85为良好,>=75为中等,>=60为及格
其他不及格,并显示学号
select#
        SNo,
        case when Score>=95 then '优秀'
             when Score>=85 then '良好'
             when Score>=75 then '中等'
             when Score>=60 then '及格'
             else '不及格' end as '等级'#在尾部添加as
from SC;
select *from sc;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值