MySQL函数概述
MySQL提供了大量的内置函数,这些函数可以分为以下几类:
-
字符串函数:用于操作字符串,如连接、查找、替换等。
-
数值函数:用于进行数学运算,如取整、求绝对值、随机数等。
-
日期和时间函数:用于处理日期和时间,如获取当前日期、时间差、格式化日期等。
-
聚合函数:用于对一组值进行计算并返回单个值,如求和、平均值、最大值等。
-
条件函数:用于根据条件返回不同的值,如IF、CASE等。
-
加密函数:用于加密和解密数据,如MD5、SHA等。
-
系统信息函数:用于获取系统信息,如用户信息、版本信息等。
-
JSON函数:用于处理JSON数据,如提取、修改JSON对象等。
-
全文搜索函数:用于全文搜索,如MATCH AGAINST等。
代码示例
1. 字符串函数
-- 连接字符串
SELECT CONCAT('Hello', ' ', 'World'); -- 输出: Hello World
-- 查找子字符串的位置
SELECT INSTR('Hello World', 'World'); -- 输出: 6
-- 替换子字符串
SELECT REPLACE('Hello World', 'World', 'MySQL'); -- 输出: Hello MySQL
-- 截取子字符串
SELECT SUBSTRING('Hello World', 7, 5); -- 输出: World
-- 转换为大写
SELECT UPPER('hello world'); -- 输出: HELLO WORLD
-- 转换为小写
SELECT LOWER('HELLO WORLD'); -- 输出: hello world
2. 数值函数
-- 取整
SELECT FLOOR(10.6); -- 输出: 10
SELECT CEIL(10.6); -- 输出: 11
-- 绝对值
SELECT ABS(-10); -- 输出: 10
-- 随机数
SELECT RAND(); -- 输出: 0-1之间的随机数
-- 幂运算
SELECT POW(2, 3); -- 输出: 8
-- 平方根
SELECT SQRT(16); -- 输出: 4
3. 日期和时间函数
-- 获取当前日期
SELECT CURDATE(); -- 输出: YYYY-MM-DD
-- 获取当前时间
SELECT CURTIME(); -- 输出: HH:MM:SS
-- 获取当前日期和时间
SELECT NOW(); -- 输出: YYYY-MM-DD HH:MM:SS
-- 时间差
SELECT TIMESTAMPDIFF(YEAR, '1990-01-01', NOW()); -- 输出: 当前年份减去1990的年数
-- 格式化日期
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 输出: 当前日期和时间,格式为 YYYY-MM-DD HH:MM:SS
4. 聚合函数
-- 求和
SELECT SUM(score) FROM students;
-- 平均值
SELECT AVG(score) FROM students;
-- 最大值
SELECT MAX(score) FROM students;
-- 最小值
SELECT MIN(score) FROM students;
-- 计数
SELECT COUNT(*) FROM students;
5. 条件函数
-- IF函数
SELECT IF(score >= 60, '及格', '不及格') FROM students;
-- CASE函数
SELECT
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 70 THEN '良好'
WHEN score >= 60 THEN '及格'
ELSE '不及格'
END
FROM students;
6. 加密函数
-- MD5加密
SELECT MD5('password'); -- 输出: 5f4dcc3b5aa765d61d8327deb882cf99
-- SHA加密
SELECT SHA('password'); -- 输出: 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
7. 系统信息函数
-- 获取当前用户
SELECT USER(); -- 输出: 当前连接的用户名
-- 获取MySQL版本
SELECT VERSION(); -- 输出: MySQL的版本号
8. JSON函数
-- 创建JSON对象
SELECT JSON_OBJECT('name', 'John', 'age', 30); -- 输出: {"name": "John", "age": 30}
-- 创建JSON数组
SELECT JSON_ARRAY(1, 2, 3); -- 输出: [1, 2, 3]
-- 提取JSON值
SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); -- 输出: "John"
-- 修改JSON对象
SELECT JSON_SET('{"name": "John", "age": 30}', '$.age', 31); -- 输出: {"name": "John", "age": 31}
9. 全文搜索函数
-- 创建全文索引
ALTER TABLE articles ADD FULLTEXT INDEX idx_fulltext (content);
-- 全文搜索
SELECT * FROM articles WHERE MATCH(content) AGAINST('search term');
结论
MySQL函数是MySQL数据库中非常强大和有用的工具,它们可以帮助我们进行各种数据操作和计算。了解和掌握这些函数对于编写高效的SQL查询和优化数据库性能非常重要。希望这些示例能帮助您更好地理解MySQL函数的使用。如果您需要更详细的信息,请查阅MySQL官方文档或相关的专业书籍。