连接数据库
mysql -hlocalhost -uroot -proot
MySQL函数
函数:是指一段可以直接被另一段程序调用的程序或代码。
在MySQL中会有很多的内置函数,我们只需要使用就行;
常见的字符串函数

MySQL流程控制语句_取整

concat函数

select concat('hello','zhangsan');
返回的是:hellozhangsan

select lower('HELLo');
返回的是:hello

由于企业需求的变更,企业员工的工号统一为8位数,目前不足8位数的全部在前面补上0;
update person set workno = lpad(workno,8,'0')
常见的数值函数
select ceil(1.5); // 向上取整。1.5是2
select floor(1.9);// 向下取整。1
select mod(5,4); // 5除以4,取余数。是1
slect rand(); // 返回0-1之间的数
slect round(2.43,2);// 对2.43四舍五入,保留2位小数

MySQL流程控制语句_MySQL_02

小例子-通过SQL语句生成一个6位数的随机验证码.
select round(rand()*1000000,0);
上面这样写有问题,因为 slect rand()生成的是0-1,可能是0.053111这种的.
我们按照这样补0就不会出问题了。
select  lpad(round(rand()*1000000,0),6,'0');
日期函数

MySQL流程控制语句_MySQL_03

当前日期YYYY-MM-DD    select curdate();   返回的是 2023-08-07
当前的时分秒 hh:mm:ss  select curtime();   返回的是 19:52:11
当前的时间YYYY-MM-DD hh:mm:ss  select now(); 返回的是 2023-08-07 19:53:28
当前的年份YYYY       select year(now()); 返回的是2023
当前的月份M       select month(now()); 返回的是8 【当时是8月份】
当前的年份D       select day(now()); 返回的是7   【当时是8月7号】
select date_add(now(), interval 70 day); 当前时间加上70天后的时间  2023-10-16 19:59:24
select date_add(now(), interval 70 month); 当前时间加上70个月后的时间  2029-06-07 20:00:19
两个时间相差多少天   select datediff('2023-09-07', '2023-08-07') 输出31天 注意先是结束时间,后面是开始时间
小粒子--查询所有员工的入职天数,并根据入职天数倒序排序
select name, datediff(curdate(), ruzhikey) as 'ruzhitime' from person order by ruzhitime desc;
ps:别名在这里可以起到非常大的作用
流程函数

MySQL流程控制语句_MySQL_04

select if(true, 'ok', fail); // 返回的是 fail

select ifnull('ok','default'); 
// 如果第一个值不为null,返回第一个值,如果第一个值是null,返回第二个值

case when [val1] then [res1] ... else [default] end
如果val1为true,返回res1, 否者返回 default 默认值

需求描述:查询person表,员工姓名和工作地址,(如果是北京上线--显示一线城市, 其他显示二线城市)
select name (case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end) as '工作地点' from person;


需求:成绩>=85优秀; 成绩>= 60 及格;成绩>= 60 及格;
select id,name (case when chengji>=85 then '优秀' when chengji >= 60 then '及格' else '不及格' end) '成绩' from 'person'

遇见问题,这是你成长的机会,如果你能够解决,这就是收获。


作者:晚来南风晚相识

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: mysql