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

MySQL 常用函数总结

MySQL 提供了丰富的内置函数,用于在查询中进行各种计算、字符串处理、日期和时间操作等。这些函数可以帮助我们更有效地从数据库中检索和处理数据。下面将总结一些 MySQL 中常用的函数及其用法。

1. 数值函数

1.1 ROUND()

ROUND() 函数用于对数值进行四舍五入操作。

SELECT ROUND(123.4567, 2);  -- 结果为 123.46

1.2 CEIL() 和 FLOOR()

CEIL() 函数返回大于或等于指定数值的最小整数(向上取整),而 FLOOR() 函数返回小于或等于指定数值的最大整数(向下取整)。

SELECT CEIL(123.4567);    -- 结果为 124  
SELECT FLOOR(123.4567);   -- 结果为 123

1.3 ABS()

ABS() 函数返回数值的绝对值。

SELECT ABS(-123);   -- 结果为 123

2. 字符串函数

2.1 CONCAT()

CONCAT() 函数用于连接两个或多个字符串。


SELECT CONCAT('Hello', ' ', 'World');  -- 结果为 'Hello World'

2.2 LENGTH()

LENGTH() 函数返回字符串的长度。

SELECT LENGTH('Hello');  -- 结果为 5

2.3 UPPER() 和 LOWER()

UPPER() 函数将字符串转换为大写,而 LOWER() 函数将字符串转换为小写。

SELECT UPPER('hello');    -- 结果为 'HELLO'  
SELECT LOWER('HELLO');    -- 结果为 'hello'

2.4 SUBSTRING()

SUBSTRING() 函数用于提取字符串的子串。

SELECT SUBSTRING('Hello World', 1, 5);  -- 结果为 'Hello'

2.5 REPLACE()

REPLACE() 函数用于在字符串中替换指定的子串。

SELECT REPLACE('Hello World', 'World', 'MySQL');  -- 结果为 'Hello MySQL'

3. 日期和时间函数

3.1 NOW()

NOW() 函数返回当前的日期和时间。

SELECT NOW();  -- 返回当前日期和时间

3.2 CURDATE() 和 CURTIME()

CURDATE() 函数返回当前的日期,而 CURTIME() 函数返回当前的时间。

SELECT CURDATE();    -- 返回当前日期  
SELECT CURTIME();    -- 返回当前时间

3.3 DATE_FORMAT()

DATE_FORMAT() 函数用于按照指定的格式显示日期/时间值。

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');  -- 返回格式化的日期和时间

3.4 DATEDIFF()

DATEDIFF() 函数返回两个日期之间的天数差。

复制代码
SELECT DATEDIFF('2023-10-23', '2023-10-01');  -- 结果为 22

4. 聚合函数

4.1 AVG()

AVG() 函数返回某列的平均值。

SELECT AVG(salary) FROM employees;  -- 返回员工的平均工资

4.2 SUM()

SUM() 函数返回某列的总和。

SELECT SUM(quantity) FROM orders;  -- 返回订单的总数量

4.3 COUNT()

COUNT() 函数返回匹配指定条件的行数。

SELECT COUNT(*) FROM employees;    -- 返回员工的总数  
SELECT COUNT(DISTINCT department) FROM employees;  -- 返回不同部门的数量

4.4 MAX() 和 MIN()

MAX() 函数返回某列的最大值,而 MIN() 函数返回某列的最小值。

SELECT MAX(salary) FROM employees;  -- 返回员工的最高工资  
SELECT MIN(salary) FROM employees;  -- 返回员工的最低工资

5. 其他常用函数

5.1 IFNULL()

IFNULL() 函数用于处理 NULL 值。如果第一个参数为 NULL,则返回第二个参数的值;否则返回第一个参数的值。

SELECT IFNULL(NULL, '默认值'); -- 结果为 '默认值'
SELECT IFNULL(column_name, '默认值') FROM table_name; -- 如果 column_name 中的值为 NULL,则返回 '默认值'

5.2 CASE 语句

CASE 语句在 MySQL 中用于在查询中进行条件判断,类似于其他编程语言中的 switch-case 结构。

SELECT   column_name,  CASE   WHEN condition1 THEN result1  WHEN condition2 THEN result2  ELSE result3  END AS case_result  
FROM table_name;

5.3 CONCAT_WS()

CONCAT_WS() 函数用于连接两个或多个字符串,并指定一个分隔符。

SELECT CONCAT_WS('-', '2023', '10', '23');  -- 结果为 '2023-10-23'

5.4 TRIM()

TRIM() 函数用于去除字符串开头和结尾的指定字符(默认为空格)。

SELECT TRIM('   Hello World   ');  -- 结果为 'Hello World'  
SELECT TRIM(LEADING 'x' FROM 'xxxHello Worldxxx');  -- 结果为 'Hello Worldxxx'  
SELECT TRIM(TRAILING 'x' FROM 'xxxHello Worldxxx');  -- 结果为 'xxxHello World'  
SELECT TRIM(BOTH 'x' FROM 'xxxHello Worldxxx');  -- 结果为 'Hello World'

5.5 COALESCE()

COALESCE() 函数返回参数列表中的第一个非 NULL 值。

SELECT COALESCE(NULL, NULL, '默认值');  -- 结果为 '默认值'  
SELECT COALESCE(column1, column2, '默认值') FROM table_name;  -- 返回 column1、column2 或 '默认值' 中的第一个非 NULL 值

相关文章:

  • SAP 新安装的系统,财务开账期OB52需要传输
  • C++的智能指针 RAII
  • 【AI应用探讨】— 盘古大模型应用场景
  • 如何选择合适的半桥栅极驱动芯片?KP8530X,KP85402,KP85211A满足你对半桥栅极驱动一切需求
  • Oracle最终还是杀死了MySQL
  • 步步为营:电商项目业务测试实战指南
  • 考试系统Spring Security的配置
  • SQL题:未完成率较高的50%用户近三个月答卷情况
  • 深入了解常用负载均衡软件
  • 第三方软件测试机构流程分享,软件检测报告需多少时间和费用?
  • 如何利用AI大模型设计电机本体?
  • 反激开关电源开关MOS管选择
  • 【漏洞复现】世邦通信 SPON IP网络对讲广播系统 addscenedata.php 任意文件上传漏洞
  • Linux 查看 CPU核数 及 内存
  • Goroutine和协程的区别
  • 【5+】跨webview多页面 触发事件(二)
  • 【mysql】环境安装、服务启动、密码设置
  • Github访问慢解决办法
  • JavaScript 基本功--面试宝典
  • JDK9: 集成 Jshell 和 Maven 项目.
  • vue脚手架vue-cli
  • vue--为什么data属性必须是一个函数
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 基于HAProxy的高性能缓存服务器nuster
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 微信支付JSAPI,实测!终极方案
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 小而合理的前端理论:rscss和rsjs
  • ​​​【收录 Hello 算法】9.4 小结
  • ​比特币大跌的 2 个原因
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (Ruby)Ubuntu12.04安装Rails环境
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (四)汇编语言——简单程序
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • *** 2003
  • ../depcomp: line 571: exec: g++: not found
  • .NET Framework 服务实现监控可观测性最佳实践
  • .net 后台导出excel ,word
  • .NET 快速重构概要1
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .net网站发布-允许更新此预编译站点
  • .NET中的十进制浮点类型,徐汇区网站设计
  • //解决validator验证插件多个name相同只验证第一的问题
  • :如何用SQL脚本保存存储过程返回的结果集
  • ;号自动换行
  • @selector(..)警告提示
  • [ A*实现 ] C++,矩阵地图