【09】MySQL 函数详解:分类、区别、用法与示例


在这里插入图片描述


在数据库操作中,函数是不可或缺的一部分。MySQL 提供了多种内置函数,这些函数帮助我们进行数据处理、计算、格式化以及字符串操作等。根据功能的不同,MySQL 函数可以大致分为以下几类:

字符串函数
日期与时间函数
数学函数
聚合函数
控制流函数
信息函数
加密与散列函数
JSON 函数
类型转换函数
接下来,我们将逐一介绍这些函数的类别、使用方法和示例。

1. 字符串函数

字符串函数用于处理字符串数据。常见的字符串函数有:

  • CONCAT() :拼接两个或多个字符串。
SELECT CONCAT('Hello ', 'World');
-- 输出: 'Hello World'
  • LENGTH() :返回字符串的字节长度。
SELECT LENGTH('Hello');
-- 输出: 5
  • SUBSTRING():提取字符串的子串。
SELECT SUBSTRING('Hello World', 1, 5);
-- 输出: 'Hello'
  • REPLACE():替换字符串中的某个子字符串。
SELECT REPLACE('Hello World', 'World', 'MySQL');
-- 输出: 'Hello MySQL'
  • UPPER() 和 LOWER() :将字符串转换为大写或小写。
SELECT UPPER('hello');
-- 输出: 'HELLO'
  • TRIM():去除字符串两边的空格。
SELECT TRIM('  hello  ');
-- 输出: 'hello'

2. 日期与时间函数

日期和时间函数用于处理日期和时间类型的数据。

  • NOW():返回当前的日期和时间。
SELECT NOW();
-- 输出: '2024-12-02 10:00:00'
  • CURDATE():返回当前的日期(不含时间部分)。
SELECT CURDATE();
-- 输出: '2024-12-02'
  • DATE_ADD() 和 DATE_SUB() :用于对日期进行加减操作。
SELECT DATE_ADD('2024-12-02', INTERVAL 10 DAY);
-- 输出: '2024-12-12'

SELECT DATE_SUB('2024-12-02', INTERVAL 10 DAY);
-- 输出: '2024-11-22'
  • DATE_FORMAT() :格式化日期时间为指定的格式。
SELECT DATE_FORMAT('2024-12-02', '%Y-%m-%d');
-- 输出: '2024-12-02'
  • YEAR()、MONTH()、DAY():提取日期的年、月、日部分。
SELECT YEAR('2024-12-02'), MONTH('2024-12-02'), DAY('2024-12-02');
-- 输出: 2024, 12, 02

3. 数学函数

MySQL 提供了一些数学函数,用于数学计算和操作。

  • ABS() :返回一个数值的绝对值。
SELECT ABS(-10);
-- 输出: 10
  • ROUND() :对数值进行四舍五入。
SELECT ROUND(123.456, 2);
-- 输出: 123.46
  • FLOOR() 和 CEIL() :FLOOR() 返回不大于给定数字的最大整数,CEIL() 返回不小于给定数字的最小整数。
SELECT FLOOR(123.456), CEIL(123.456);
-- 输出: 123, 124
  • RAND() :返回一个随机浮动数值。
SELECT RAND();
-- 输出: 随机数,如 0.123456
  • POW() 或 POWER() :计算一个数的幂。
SELECT POW(2, 3);
-- 输出: 8

4. 聚合函数

聚合函数用于对一组数据进行汇总或计算。

  • COUNT() :计算行数。
SELECT COUNT(*) FROM employees;
-- 返回员工的数量
  • SUM():求和。
SELECT SUM(salary) FROM employees;
-- 返回员工的工资总和
  • AVG() :计算平均值。
SELECT AVG(salary) FROM employees;
-- 返回员工的平均工资
  • MAX() 和 MIN() :返回最大值和最小值。
SELECT MAX(salary), MIN(salary) FROM employees;
-- 返回最高和最低工资
  • GROUP_CONCAT() :将多个值合并为一个字符串。
SELECT GROUP_CONCAT(name) FROM employees;
-- 输出: 'Alice,Bob,Charlie'

5. 控制流函数

这些函数用于控制 SQL 查询的流程或返回不同的值。

  • IF() :类似于 IF 语句,进行条件判断。
SELECT IF(salary > 50000, 'High', 'Low') FROM employees;
-- 根据工资判断高低
  • CASE:条件判断语句,可以处理多个条件。
SELECT CASE 
           WHEN salary > 50000 THEN 'High'
           WHEN salary > 30000 THEN 'Medium'
           ELSE 'Low'
       END
FROM employees;
-- 根据工资返回不同的等级
  • IFNULL() :如果值为 NULL,则返回替代值。
SELECT IFNULL(NULL, 'N/A');
-- 输出: 'N/A'
  • COALESCE() :返回列表中第一个非 NULL 值。
SELECT COALESCE(NULL, NULL, 'Hello');
-- 输出: 'Hello'

6. 信息函数

这些函数用于获取 MySQL 环境的相关信息。

  • VERSION() :返回 MySQL 的版本号。
SELECT VERSION();
-- 输出: '8.0.23'
  • DATABASE():返回当前数据库的名称。
SELECT DATABASE();
-- 输出: 'my_database'
  • USER():返回当前数据库用户的用户名。
SELECT USER();
-- 输出: 'root@localhost'

7. 加密与散列函数

用于处理数据的加密与散列。

  • MD5():计算 MD5 散列值。
SELECT MD5('password');
-- 输出: '5f4dcc3b5aa765d61d8327deb882cf99'
  • SHA1() :计算 SHA-1 散列值。
SELECT SHA1('password');
-- 输出: '2c6ee24b09816a6f14f95d1698b24ead'

8. JSON 函数

MySQL 5.7 及更高版本支持 JSON 类型,并提供了一些操作 JSON 数据的函数。

  • JSON_EXTRACT():从 JSON 数据中提取值。
SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name');
-- 输出: '"John"'
  • JSON_ARRAY():创建一个 JSON 数组。
SELECT JSON_ARRAY('apple', 'banana', 'cherry');
-- 输出: '["apple", "banana", "cherry"]'
  • JSON_OBJECT() :创建一个 JSON 对象。
SELECT JSON_OBJECT('name', 'John', 'age', 30);
-- 输出: '{"name": "John", "age": 30}'

9. 类型转换函数

这些函数用于不同数据类型之间的转换。常见的类型转换函数有:

  • CAST():将一个值转换为另一种数据类型。例如,将字符串转换为整数或日期类型。
SELECT CAST('2024-12-02' AS DATE);
-- 输出: '2024-12-02' (字符串转换为日期类型)
  • CONVERT():与 CAST() 类似,也用于数据类型转换,支持更复杂的转换(例如字符集的转换)。
SELECT CONVERT('2024-12-02', DATE);
-- 输出: '2024-12-02'
  • BIN():将数字转换为二进制表示。
SELECT BIN(12);
-- 输出: '1100'
  • CHAR() :将整数转换为字符。
SELECT CHAR(65);
-- 输出: 'A' (65对应的ASCII字符是 'A')

总结

MySQL 提供了丰富的内置函数,可以帮助开发者在查询中处理数据、进行计算、转换数据类型等操作。通过灵活运用这些函数,可以简化数据操作和提升查询的效率。常见的 MySQL 函数可以分为以下几类:

  1. 字符串函数:用于操作和处理字符串,如拼接、替换、提取子串等。
  2. 日期与时间函数:用于处理日期和时间,如获取当前时间、格式化日期、日期加减等。
  3. 数学函数:用于数学计算,如取绝对值、四舍五入、随机数等。
  4. 聚合函数:用于对一组数据进行汇总计算,如求和、计数、平均值等。
  5. 控制流函数:用于控制 SQL 查询的流程和条件判断,如 IF()、CASE 等。
  6. 信息函数:用于获取 MySQL 环境的相关信息,如数据库版本、当前用户等。
  7. 加密与散列函数:用于数据加密与散列,如 MD5()、SHA1() 等。
  8. JSON 函数:用于操作 JSON 数据类型,如 JSON_EXTRACT()、JSON_OBJECT() 等。
  9. 类型转换函数:用于不同数据类型之间的转换,如 CAST()、CONVERT() 等。

通过掌握这些 MySQL 内置函数,你将能够更加高效地处理各种数据操作,提高查询的性能和可维护性。在实际开发中,根据需求选择合适的函数,将极大地简化你的数据库操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白话Learning

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值