当前位置:网站首页>使用函数
使用函数
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;
边栏推荐
猜你喜欢

What is the terminal privilege management

学会使用set和map的基本接口

Rust 从入门到精通04-变量

123
![[Flight Control Development Advanced Course 7] Crazy Shell Open Source Formation UAV - Formation Flight](/img/58/19a50af5e187df0f37a1a3298c029b.png)
[Flight Control Development Advanced Course 7] Crazy Shell Open Source Formation UAV - Formation Flight

Win11 file types, how to change?Win11 modify the file suffix

The sword refers to the Great Wall Cannon?Official spy photos of Changan's new pickup

深度学习100例 —— 卷积神经网络(CNN)天气识别

数字知识库及考学一体化平台

zabbix deployment
随机推荐
The use of DDR3 (Naive) in Xilinx VIVADO (1) to create an IP core
What is the terminal privilege management
命令模式(Command)
SkiaSharp 之 WPF 自绘 粒子花园(案例版)
Leetcode刷题——构造二叉树(105. 从前序与中序遍历序列构造二叉树、106. 从中序与后序遍历序列构造二叉树)
Jenkins User Manual (1) - Software Installation
【LeetCode】700.二叉搜索树
关于架构的思考
Graphical Hands-on Tutorial--ESP32 OTA Over-the-Air Upgrade (VSCODE+IDF)
秒云成功入选《2022爱分析 · 银行数字化厂商全景报告》,智能运维能力获认可
【黄啊码】MySQL入门—2、使用数据定义语言(DDL)操作数据库
What is the principle of thermal imaging temperature measurement?Do you know?
Four ways to traverse a Map
AWS Lambda related concepts and implementation approach
将博客搬至CSDN
mysqldump远程备份数据库
Mysql——》类型转换符binary
深度学习100例 —— 卷积神经网络(CNN)天气识别
Xilinx VIVADO 中 DDR3(Naive)的使用(1)创建 IP 核
ECCV 2022 | 清华&腾讯AI Lab提出REALY: 重新思考3D人脸重建的评估方法