数据库-MySQL-基础(7)函数
2023-06-13 09:13:09 时间
目录
函数
函数:是指一段可以被直接调用的函数或者代码
字符串函数
常用函数
MySQL内置了很多字符串函数,常用的几个如下
例子
-concat(字符串拼接)
select concat('hello','MySQl');
-lower(字符串转化为小写)
select lower('Hello');
-upper(字符串转化为大写)
select upper('Hello');
-lpad(左填充)
select lpad('01',5,'-');
为什么填充三个,本身字符串的长度就为2了填充3个正好等于5
-rpad(右填充)
select rpad('01',5,'-');
-trim(去除左右空格)
select trim(' Hello MySQL ');
-substring(计算字符串长度)
select substring('Hello MySQL',1,5);
练习
根据业务需求变更,明星员工的id,统一为5位数,目前不足五位数的全部在后面补0。比如:1号明星的工号为10000
初始表
代码
update start_table set id = rpad(id,5,'0');
实现后
数值函数
常见函数
注意:求模就是除于一个数然后取余
代码实现
--数值函数
--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');
日期函数
常见函数
代码实现
--日期函数
--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中实现条件筛选,从而提高语句的效率
--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,展示及格 --否则不及格
建一个表格
代码
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;
相关文章
- MySQL中安全删除多表关联数据(mysql关联表删除)
- MySQL Variables disconnect_on_expired_password 数据库 参数变量解释及正确配置使用
- MySQL的基础语法指南(mysql的基本语法)
- MySQL的省市县联动效果实现(mysql省市区)
- MySQL中使用注释符的正确方式(mysql注释符)
- MySQL:A Powerful Database Tool for Data Management(mysql作用)
- 改变MySQL数据库密码的步骤及注意事项(修改mysql数据库密码)
- MYSQL数据库产品的价格比较(mysql价格)
- MySQL操作:基础入门指南(mysql操作系统)
- 机制MySQL数据库的加锁机制解读(mysql数据库加锁)
- 据库快速掌握MySQL查询连接数据库技巧(mysql查询连接数)
- 免费下载MySQL,获取一流的数据库服务(mysql免费下载)
- 【解决MySQL注释乱码问题】(mysql注释乱码)
- MYSQL比较时间大小的简单方法(mysql时间比较大小)
- MySQL网络数据库开发:让网络更迅速(mysql网络数据库开发)
- MySQL数据库主备之间的安全切换(mysql数据库主备切换)
- MySQL的MVCC技术:实现数据库性能的优化篇(mvcc mysql)
- MySQL快速导入数据库的正确姿势(mysql导入数据库语句)
- MySQL数据插入的步骤与方法(mysql如何插入数据)
- 利用MySQL绘制精美的ER图(mysql创建er图)
- MySQL中的键优化数据库操作的必备利器(mysql中使用键的使用)
- MySQL中BIT类型的默认值问题(mysql中bit默认值)
- 使用CI框架中MySQL DSN快速搭建数据库应用(ci mysql dsn)
- AIX服务器重启MySQL数据库的操作指南(aix服务重启mysql)
- 用CMD快速启动MySQL数据库(cmd启动mysql命令)
- MySQL数据库更新前的备份管理方法(mysql 一月前)
- 数据库选型指南不含 MySQL 25字中文文章标题(mysql 不含)
- MySQL上机练习6加深数据库操作实践经验(mysql上机练习6)
- MySQL无法导入中文版数据库(mysql不能导入中文版)