当前位置: 首页 > news >正文

MySQL函数

MySQL 提供了丰富的内置函数,用于数据处理、转换、计算和聚合。这些函数可以极大地简化 SQL 查询并提高数据处理效率。

1、字符串函数

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

示例

-- concat : 字符串拼接
select concat('Hello' , ' MySQL');-- lower : 全部转小写
select lower('Hello');-- upper : 全部转大写
select upper('Hello');-- lpad : 左填充
select lpad('01', 5, '-');-- rpad : 右填充
select rpad('01', 5, '-');-- trim : 去除空格
select trim(' Hello MySQL ');-- substring : 截取子字符串
select substring('Hello MySQL',1,5);-- 企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0。update emp set workno = lpad(workno, 5, '0');

2、数值函数

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

示例

-- ceil:向上取整select ceil(1.1);-- floor:向下取整
select floor(1.9);-- mod:取模
select mod(7,4);-- rand:获取随机数
select rand();-- round:四舍五入
select round(2.344,2);-- 通过数据库的函数,生成一个六位数的随机验证码。
select lpad(round(rand()*1000000 , 0), 6, '0')

3、日期函数

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

示例

-- curdate:当前日期
select curdate();-- curtime:当前时间
select curtime();-- now:当前日期和时间
select now();-- YEAR , MONTH , DAY:当前年、月、日
select YEAR(now());
select MONTH(now());
select DAY(now());-- date_add:增加指定的时间间隔
select date_add(now(), INTERVAL 70 YEAR );-- datediff:获取两个日期相差的天数
select datediff('2021-10-01', '2021-12-01');-- 查询所有员工的入职天数,并根据入职天数倒序排序。
select name, datediff(curdate(), entrydate) as 'entrydays' from emp order by
entrydays desc;

4、流程函数

函数 功能
IF(value , t , f) 如果value为true,则返回t,否则返回 f
IFNULL(value1,value2) 如果valuel不为空, 返回valuell, 否则 返回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默认值

示例


-- 简单IF
SELECT IF(1 > 0, 'True', 'False'); -- 结果: 'True'-- 实际应用
SELECT name, salary, IF(salary > 5000, 'High', 'Low') AS salary_level
FROM employees;-- 简单CASE
SELECT name,CASE department_idWHEN 1 THEN 'Sales'WHEN 2 THEN 'Marketing'WHEN 3 THEN 'IT'ELSE 'Other'END AS department_name
FROM employees;-- 搜索CASE
SELECT name,salary,CASEWHEN salary > 10000 THEN 'High'WHEN salary > 5000 THEN 'Medium'ELSE 'Low'END AS salary_grade
FROM employees;
http://www.agseo.cn/news/149/

相关文章:

  • The 2025 Sichuan Provincial Collegiate Programming Contest
  • 详细介绍:Android 热点开发的相关api总结
  • 工业主板:工业自动化与智能设备的强大心脏
  • 十大经典排序算法 - lucky
  • 深度学习入门基于python
  • 2025网络赛1 C、D
  • 图像配准尝试
  • TypeScript索引访问类型详解
  • 【URP】Unity Shader Tags
  • 存储器的性能指标 计算机组成原理第三章
  • 基于Operator方式和二进制方式部署prometheus环境
  • 安全不是一个功能-而是一个地基
  • 你的错误处理一团糟-是时候修复它了-️
  • idea gitee 更新已取消 解决方案
  • 27家网省
  • 你的测试又慢又不可靠-因为你测错了东西
  • 国内人力资源信息管理软件排行:选红海云一体化人力HR系统
  • 历年 CSP-J/S 数学类真题知识点整理
  • Log4j2 CVE-2021-44228 漏洞复现
  • AI Compass前沿速览:字节Seedream4.0、Qwen3-Max、EmbeddingGemma、OneCAT多模态、rStar2-Agent
  • 使用DeepState进行API模糊测试的技术解析(第二部分)
  • TeX 的 ctex 宏包的基本用法
  • 原子操作并不能保证数值的准确与一致性
  • Linux 进程管理之软硬限制以及企业应用实践
  • mybatis-plus引入
  • 79、制作表头不能用合并后居中
  • 智能血压计芯片解决方案AI版
  • 408 Request Timeout:请求超时,服务器等待客户端发送请求的时间过长。
  • 01bfs 对 dij最短路的优化,以及一些易错点
  • MySQL约束