数据库-MySQL-基础(7)函数

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 数据库-MySQL-基础目录函数字符串函数常用函数 例子练习数值函数代码实现案例练习日期函数常见函数代码实现案例流程函数常用函数案例 代码(7)函数

目录

函数

字符串函数

常用函数

例子

练习

数值函数

代码实现

案例练习

日期函数

常见函数

代码实现

案例

流程函数

常用函数

案例

代码


函数

函数:是指一段可以被直接调用的函数或者代码


字符串函数

常用函数

MySQL内置了很多字符串函数,常用的几个如下

image.png

例子

 -concat(字符串拼接)

select  concat('hello','MySQl');

image.png

 -lower(字符串转化为小写)

select lower('Hello');

image.png

-upper(字符串转化为大写)

select upper('Hello');

image.png-lpad(左填充)

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

为什么填充三个,本身字符串的长度就为2了填充3个正好等于5

image.png

-rpad(右填充)

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

image.png

-trim(去除左右空格)

select  trim(' Hello MySQL ');

image.png -substring(计算字符串长度)

select substring('Hello MySQL',1,5);

image.png

练习

根据业务需求变更,明星员工的id,统一为5位数,目前不足五位数的全部在后面补0。比如:1号明星的工号为10000

初始表

image.png

代码

update start_table set id = rpad(id,5,'0');

实现后

image.png


数值函数

常见函数

image.png

注意:求模就是除于一个数然后取余

代码实现

--数值函数
--ceil
select ceil(1.2);
--floor
select floor(1.9);
--mod
select mod(3,4);
--rand
select rand();
--round
select round(2.345,2);

案例练习

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

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

日期函数

常见函数

image.png

代码实现

--日期函数
--curdate() 显示当前日期几年级月几日
select  curdate();
--curtime() 显示当前时间几时几分几秒
select  curtime();
--now()   显示当前日期和时间
select now();
--YEAR ,MONTH,DAY
--显示当前年份
select year(now());
--显示当前月份
select MONTh(now());
--显示当前天数
select DAY(now());
--date_add
--当前时间往后推70天
select date_add(now(),INTERVAL 70 DAY);
--当前时间往后推70月
select date_add(now(),INTERVAL 70 MONTH );
--datediff(读取俩个日期之间的差值)
select datediff('2022-12-30','2022-10-01');

案例

查询所有员工入职天数,并根据入职天数和倒叙排序

select name, datediff(curdate(),entrydate) as 'entrydate' from emp order by entrydate desc ;

流程函数

常用函数

流程函数是一种常见函数,可以在SQL中实现条件筛选,从而提高语句的效率

image.png

--if
select if(true,'OK','error');
--ifnull
--只有第三种情况返回DEfault
select ifnull('OK','DEfault');
select ifnull('','DEfault');
select ifnull(null,'DEfault');
select ifnull('null','DEfault');
--case when then else end
--需求: 查询start_table表中明星的姓名和地址(如果地址为上海北京,展示为一线城市,其他展示为二线)
select
   name,
   ( case address when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end) as '工作地址'
from start_table;

案例

统计班级各个学院的成绩,展示的规则如下:

-- >= 85,展示优秀

-- >=60,展示及格

--否则不及格

建一个表格

image.png

代码

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

image.png


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
5天前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
38 3
|
5天前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
137 7
|
5天前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
44 6
|
5天前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
44 1
|
5天前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
|
SQL Java 数据库连接
MySQL---数据库从入门走向大神系列(十五)-Apache的DBUtils框架使用
MySQL---数据库从入门走向大神系列(十五)-Apache的DBUtils框架使用
308 0
MySQL---数据库从入门走向大神系列(十五)-Apache的DBUtils框架使用
|
SQL 关系型数据库 MySQL
MySQL---数据库从入门走向大神系列(六)-事务处理与事务隔离(锁机制)
MySQL---数据库从入门走向大神系列(六)-事务处理与事务隔离(锁机制)
221 0
MySQL---数据库从入门走向大神系列(六)-事务处理与事务隔离(锁机制)
|
存储 SQL 关系型数据库
MySQL---数据库从入门走向大神系列(五)-存储过程
MySQL---数据库从入门走向大神系列(五)-存储过程
208 0
MySQL---数据库从入门走向大神系列(五)-存储过程
|
数据库
MySQL---数据库从入门走向大神系列(四)-子查询、表与表之间的关系(3)
MySQL---数据库从入门走向大神系列(四)-子查询、表与表之间的关系
272 0
MySQL---数据库从入门走向大神系列(四)-子查询、表与表之间的关系(3)
|
SQL 关系型数据库 MySQL
MySQL---数据库从入门走向大神系列(二)-用Java对MySQL进行增删改查
MySQL---数据库从入门走向大神系列(二)-用Java对MySQL进行增删改查
277 0
MySQL---数据库从入门走向大神系列(二)-用Java对MySQL进行增删改查

推荐镜像

更多