MySQL流程控制语句
连接数据库
mysql -hlocalhost -uroot -proot
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位小数
小例子-通过SQL语句生成一个6位数的随机验证码.
select round(rand()*1000000,0);
上面这样写有问题,因为 slect rand()生成的是0-1,可能是0.053111这种的.
我们按照这样补0就不会出问题了。
select lpad(round(rand()*1000000,0),6,'0');
日期函数
当前日期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:别名在这里可以起到非常大的作用
流程函数
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'
遇见问题,这是你成长的机会,如果你能够解决,这就是收获。
作者:晚来南风晚相识
出处:https://www.cnblogs.com/IwishIcould/
本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
如果文中有什么错误,欢迎指出。以免更多的人被误导。
出处:https://www.cnblogs.com/IwishIcould/
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!
万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

支付宝

微信
如果文中有什么错误,欢迎指出。以免更多的人被误导。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2022-08-08 vue2自定义指令-加载指令v-loading和占位图指令v-showimg
2021-08-08 你不知道的<input type="file">的小秘密
2021-08-08 vue3逻辑分离和页面快速展示数据