MySQL 的内置函数

MySQL 提供了丰富的内置函数,主要分为以下几大类:

一、字符串函数

CONCAT()

拼接字符串

SELECT CONCAT('Hello', ' World');

Hello World

SUBSTRING()

截取字符串

SELECT SUBSTRING('abcdef', 2, 3);

bcd

UPPER()

/

LOWER()

转换大小写

SELECT UPPER('hello');

HELLO

TRIM()

去除空格

SELECT TRIM(' hello ');

hello

REPLACE()

替换字符串

SELECT REPLACE('hello world', 'world', 'MySQL');

hello MySQL

LEFT()

/

RIGHT()

获取左/右子串

SELECT LEFT('abcdef', 3);

abc

LENGTH()

字符串长度

SELECT LENGTH('Hello');

5

二、数值函数

ABS()

绝对值

SELECT ABS(-5);

5

CEIL()

/

FLOOR()

向上/向下取整

SELECT CEIL(4.3);

5

ROUND()

四舍五入

SELECT ROUND(3.14159, 2);

3.14

RAND()

生成随机数

SELECT RAND();

0.84375...

MOD()

取模运算

SELECT MOD(10, 3);

1

三、日期和时间函数

NOW()

当前日期时间

SELECT NOW();

2025-03-11 15:00:00

CURDATE()

/

CURTIME()

当前日期 / 时间

SELECT CURDATE();

2025-03-11

YEAR()

/

MONTH()

/

DAY()

提取年、月、日

SELECT YEAR(NOW());

2025

DATE_ADD()

/

DATE_SUB()

日期加减

SELECT DATE_ADD(NOW(), INTERVAL 7 DAY);

DATEDIFF()

计算两个日期差

SELECT DATEDIFF('2025-03-11', '2025-03-01');

10

STR_TO_DATE()

字符串转日期

SELECT STR_TO_DATE('11/03/2025', '%d/%m/%Y');

DATE_FORMAT()

格式化日期

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');

四、聚合函数

COUNT()

计数

SELECT COUNT(*) FROM users;

SUM()

求和

SELECT SUM(price) FROM orders;

AVG()

平均值

SELECT AVG(score) FROM students;

MAX()

/

MIN()

最大 / 最小值

SELECT MAX(salary) FROM employees;

五、条件判断函数

IF()

条件判断

SELECT IF(1 > 0, 'YES', 'NO');

YES

IFNULL()

判断 NULL

SELECT IFNULL(NULL, 'default');

default

CASE

多条件判断

SELECT CASE
    WHEN score >= 90 THEN '优秀'
    WHEN score >= 60 THEN '及格'
    ELSE '不及格'
END AS result
FROM students;

六、加密函数

MD5()

MD5 加密

SELECT MD5('password');

SHA1()

SHA1 加密

SELECT SHA1('password');

七、其他实用函数

COALESCE()

返回第一个非 NULL 值

SELECT COALESCE(NULL, NULL, 'Hello');

UUID()

生成唯一标识符

SELECT UUID();

八、窗口函数 (MySQL 8.0+)

ROW_NUMBER()

行号

SELECT ROW_NUMBER() OVER(PARTITION BY dept ORDER BY salary DESC);

RANK()

排名

SELECT RANK() OVER(ORDER BY salary DESC);

DENSE_RANK()

密集排名

SELECT DENSE_RANK() OVER(ORDER BY salary DESC);

九、JSON 相关函数 (MySQL 5.7+)

JSON_EXTRACT()

提取 JSON 数据

SELECT JSON_EXTRACT('{"name": "Tom"}', '$.name');

JSON_OBJECT()

创建 JSON 对象

SELECT JSON_OBJECT('id', 1, 'name', 'Alice');

十、错误处理函数

ERROR()

错误提示

SELECT ERROR(1045, 'Access denied');

常见组合示例

SELECT 
    UPPER(name) AS upper_name,
    ROUND(salary, 2) AS rounded_salary,
    DATE_FORMAT(hire_date, '%Y-%m-%d') AS formatted_date
FROM employees
WHERE YEAR(hire_date) > 2020
ORDER BY salary DESC;

进阶高级测试工程师 文章被收录于专栏

《高级软件测试工程师》专栏旨在为测试领域的从业者提供深入的知识和实践指导,帮助大家从基础的测试技能迈向高级测试专家的行列。 在本专栏中,主要涵盖的内容: 1. 如何设计和实施高效的测试策略; 2. 掌握自动化测试、性能测试和安全测试的核心技术; 3. 深入理解测试驱动开发(TDD)和行为驱动开发(BDD)的实践方法; 4. 测试团队的管理和协作能力。 ——For.Heart

全部评论

相关推荐

求offer的大角牛:不吃香菜
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务