MySQL的常用函数大全

一、字符串函数

常用函数:

函数 功能
CONCAT(s1, s2, ..., sn) 字符串拼接,将s1, s2, ..., sn拼接成一个字符串
LOWER(str) 将字符串全部转为小写
UPPER(str) 将字符串全部转为大写
LPAD(str, n, pad) 左填充,用字符串pad对str的左边进行填充,达到n个字符串长度
RPAD(str, n, pad) 右填充,用字符串pad对str的右边进行填充,达到n个字符串长度
TRIM(str) 去掉字符串头部和尾部的空格
SUBSTRING(str, start, len) 返回从字符串str从start位置起的len个长度的字符串
REPLACE(column, source, replace) 替换字符串

案例:

由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0。比如:1号员工的工号应该为000016。表名为emp,企业员工的工号字段为workno

SQL编写如下: update emp set workno =lpad(workno,5,'0');

二、数值函数

常见函数:

函数 功能
CEIL(x) 向上取整
FLOOR(x) 向下取整
MOD(x, y) 返回x/y的模
RAND() 返回0~1内的随机数
ROUND(x, y) 求参数x的四舍五入值,保留y位小数

三、日期函数

常用函数:

函数 功能
CURDATE() 返回当前日期
CURTIME() 返回当前时间
NOW() 返回当前日期和时间
YEAR(date) 获取指定date的年份
MONTH(date) 获取指定date的月份
DAY(date) 获取指定date的日期
DATE_ADD(date, INTERVAL expr type) 返回一个日期/时间值加上一个时间间隔expr后的时间值
DATEDIFF(date1, date2) 返回起始时间date1和结束时间date2之间的天数

案例:

查询所有员工的入职天数,并根据入职天数倒序排序。表名为emp,员工的入职天数字段为entrydate,SQL语句如下:

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

四、流程函数

常用函数:

函数 功能
IF(value, t, f) 如果value为true,则返回t,否则返回f
IFNULL(value1, value2) 如果value1不为空,返回value1,否则返回value2
CASE WHEN [ val1 ] THEN [ res1 ] ... ELSE [ default ] END 如果val1为true,返回res1,... 否则返回default默认值
CASE [ expr ] WHEN [ val1 ] THEN [ res1 ] ... ELSE [ default ] END 如果expr的值等于val1,返回res1,... 否则返回default默认值

案例:

统计班级各个学员的成绩,展示的规则如下:>= 85,展示优秀 。>= 60,展示及格。否则,展示不及格。SQL语句如下:

select

id,name,

(case when math >= 85 then'优秀' when math >=60 then'及格' else '不及格' end )'数学'

(case when english >= 85 then'优秀' when english >=60 then '及格' else '不及格' end ) '英语',(case when chinese >= 85 then'优秀' when chinese >=60 then'及格' else '不及格' end )'语文' from score;

五、聚合函数

语法:
SELECT 聚合函数(字段列表) FROM 表名;
例:
SELECT count(id) from employee where workaddress = "广东省";

相关推荐
Zfox_3 小时前
Redis:Hash数据类型
服务器·数据库·redis·缓存·微服务·哈希算法
陈丹阳(滁州学院)5 小时前
若依添加添加监听容器配置(删除键,键过期)
数据库·oracle
远方16096 小时前
14-Oracle 23ai Vector Search 向量索引和混合索引-实操
数据库·ai·oracle
GUIQU.7 小时前
【Oracle】数据仓库
数据库·oracle
恰薯条的屑海鸥7 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十六期-SSRF模块)
数据库·学习·安全·web安全·渗透测试·网络安全学习
咖啡啡不加糖7 小时前
Redis大key产生、排查与优化实践
java·数据库·redis·后端·缓存
曼汐 .7 小时前
数据库管理与高可用-MySQL高可用
数据库·mysql
MickeyCV7 小时前
使用Docker部署MySQL&Redis容器与常见命令
redis·mysql·docker·容器·wsl·镜像
2301_793102497 小时前
Linux——MySql数据库
linux·数据库
喵叔哟7 小时前
第4章:Cypher查询语言基础
数据库