MySQL流程控制语句

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 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'

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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 关系型数据库 MySQL
[MySQL]流程控制语句
本文介绍了MySQL中的选择语句(if和case)和循环语句(while、repeat、loop)的使用方法,并通过具体示例展示了如何在存储过程中实现这些语句。内容包括输入员工名获取部门名称的if和case示例,以及计算1到n总和的while、repeat和loop示例。文章旨在帮助读者理解MySQL流程控制语句的基本格式和使用方法。
38 2
[MySQL]流程控制语句
|
存储 SQL 关系型数据库
MySQL触发器里的流程控制语句 case when .. then else ... end;组合+继承;高级数据库复习
MySQL触发器里的流程控制语句 实际上就是if 与 if else 我们的流程控制语句可以在业务实现类实现判断 也可以通过数据库MySQL触发器来实现流程控制语句
244 0
MySQL触发器里的流程控制语句 case when .. then else ... end;组合+继承;高级数据库复习
|
关系型数据库 MySQL
mysql流程控制语句
mysql流程控制语句
81 0
|
8天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
72 15
|
2天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
9天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
13天前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
21天前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
1月前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
37 1
|
1月前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
48 4