当前位置:网站首页>使用函数
使用函数
2022-08-04 11:16:00 【parker_001】
MySQL中提供了大量函数来简化用户对数据库的操作,比如字符串的处理、日期的运算、数值的运算等等。使用函数可以大大提高SELECT语句操作数据库的能力,同时也给数据的转换和处理提供了方便。 (在sql中使用函数)
函数只是对查询结果中的数据进行处理,不会改变数据库中数据表的值。MySQL中的函数主要分为单行函数和多行函数两大类,下面我们将详细讲解这两大类函数。
单行函数
单行函数是指对每一条记录输入值进行计算,并得到相应的计算结果,然后返回给用户,也就是说,每条记录作为一个输入参数,经过函数计算得到每条记录的计算结果。
常用的单行函数主要包括字符串函数、数值函数、日期与时间函数、流程函数以及其他函数。
多行函数
多行函数是指对一组数据进行运算,针对这一组数据(多行记录)只返回一个结果,也称为分组函数。
-- 函数举例:
select empno,ename,lower(ename),upper(ename),sal from emp;
-- 函数的功能:封装了特定的一些功能,我们直接拿过来使用,可以实现对应的功能
-- 函数作用:为了提高select的能力
-- 注意:函数没有改变数据自身的值,而是在真实数据的上面进行加工处理,展示新的结果而已。
select max(sal),min(sal),count(sal),sum(sal),avg(sal) from emp;
-- 函数的分类:
-- lower(ename),upper(ename) :改变每一条结果,每一条数据对应一条结果 -- 单行函数
-- max(sal),min(sal),count(sal),sum(sal),avg(sal):多条数据,最终展示一个结果 -- 多行函数
PS:除了多行函数(max,min,count,sum,avg),都是单行函数
单行函数
1.字符串函数 (String StringBuilder)
2. 数值函数 (Math)
3. 日期与时间函数
-- 单行函数包含:
-- 1.字符串函数
select ename,length(ename),substring(ename,2,3) from emp;
-- substring字符串截取,2:从字符下标为2开始,3:截取长度3 (下标从1开始)
-- 2.数值函数
select abs(-5),ceil(5.3),floor(5.9),round(3.14) from dual; -- dual实际就是一个伪表
select abs(-5) 绝对值,ceil(5.3) 向上取整,floor(5.9) 向下取整,round(3.14) 四舍五入; -- 如果没有where条件的话,from dual可以省略不写
select ceil(sal) from emp;
select 10/3,10%3,mod(10,3) ;
-- 3.日期与时间函数
select * from emp;
select curdate(),curtime() ; -- curdate()年月日 curtime()时分秒
select now(),sysdate(),sleep(3),now(),sysdate() from dual; -- now(),sysdate() 年月日时分秒
insert into emp values (9999,'lili','SALASMAN',7698,now(),1000,null,30);
-- now()可以表示年月日时分秒,但是插入数据的时候还是要参照表的结构的
desc emp;
4. 流程函数( IF SWITCH)
5.JSON函数
6.其他函数
-- 4.流程函数
-- if相关
select empno,ename,sal,if(sal>=2500,'高薪','底薪') as '薪资等级' from emp; -- if-else 双分支结构
select empno,ename,sal,comm,sal+ifnull(comm,0) from emp; -- 如果comm是null,那么取值为0 -- 单分支
select nullif(1,1),nullif(1,2) from dual; -- 如果value1等于value2,则返回null,否则返回value1
-- case相关:
-- case等值判断
select empno,ename,job,
case job
when 'CLERK' then '店员'
when 'SALESMAN' then '销售'
when 'MANAGER' then '经理'
else '其他'
end '岗位',
sal from emp;
-- case区间判断:
select empno,ename,sal,
case
when sal<=1000 then 'A'
when sal<=2000 then 'B'
when sal<=3000 then 'C'
else 'D'
end '工资等级',
deptno from emp;
from emp;
-- 5.JSON函数
-- 6.其他函数
select database(),user(),version() from dual;
边栏推荐
- 入门MySql表的增删查改
- 【虹科案例】基于3D相机组装家具
- 数字知识库及考学一体化平台
- 将博客搬至CSDN
- 你知道吗?那些专属于代码的浪漫~
- 云原生Devops 的实现方法
- Redis查询缓存
- Zikko launches new Thunderbolt 4 docking station with both HDMI2.1 and 2.5GbE
- MySql数据库入门的基本操作
- God Space - the world's first Web3.0-based art agreement creative platform, broadening the boundaries of multi-art integration
猜你喜欢
随机推荐
JUC (1) threads and processes, concurrency and parallelism, thread state, locks, producers and consumers
ECCV 2022 | 清华&腾讯AI Lab提出REALY: 重新思考3D人脸重建的评估方法
Win11文件类型怎么改?Win11修改文件后缀的方法
秒云成功入选《2022爱分析 · 银行数字化厂商全景报告》,智能运维能力获认可
复盘:经典的HR面试问题,这些问题可以挖掘你个人的素质,看看你是否合适合我们部门
*W3C* Standards Organization
Use pytest hook function to realize automatic test result push enterprise WeChat
【励志】复盘的重要性
北京大学,新迎3位副校长!其中一人为中科院院士!
面试蚂蚁(P7)竟被MySQL难倒,奋发图强后二次面试入职蚂蚁金服
ORB-SLAM3中的优化
将博客搬至CSDN
喂,你知道节流是什么吗?
光盘刻录步骤
上帝空间——全球首个基于Web3.0的艺术协议创意平台,拓宽多元艺术融合边界
CVPR 2022 | 从人体网格预测骨架,是真正的生理学骨架!
MATLAB程序设计与应用 3.2 矩阵变换
shell变量
【LeetCode】899.有序队列
[Hongke case] Assembling furniture based on 3D camera