MySQL函数

MySQL函数

MySQL函数是数据库管理系统中非常重要的一部分,它们用于在SQL查询中执行特定的操作和计算。MySQL提供了多种类型的函数,包括数学函数、字符串函数、日期和时间函数、聚合函数等。理解和掌握这些函数对于编写高效和功能强大的SQL查询至关重要。

1. 数学函数

数学函数用于执行各种数学运算。以下是一些常用的数学函数:

  • ABS(X):返回X的绝对值。

    SELECT ABS(-15); -- 结果:15
    
  • CEIL(X):返回大于或等于X的最小整数。

    SELECT CEIL(4.3); -- 结果:5
    
  • FLOOR(X):返回小于或等于X的最大整数。

    SELECT FLOOR(4.7); -- 结果:4
    
  • ROUND(X, D):将X四舍五入到D位小数。

    SELECT ROUND(4.567, 2); -- 结果:4.57
    
  • POW(X, Y):返回X的Y次幂。

    SELECT POW(2, 3); -- 结果:8
    
  • SQRT(X):返回X的平方根。

    SELECT SQRT(16); -- 结果:4
    
  • RAND():返回一个0到1之间的随机数。

    SELECT RAND(); -- 结果:0.123456789(随机数)
    
2. 字符串函数

字符串函数用于处理和操作字符串数据。以下是一些常用的字符串函数:

  • CONCAT(str1, str2, …):将多个字符串连接成一个字符串。

    SELECT CONCAT('Hello', ' ', 'World'); -- 结果:Hello World
    
  • LENGTH(str):返回字符串的长度(字节数)。

    SELECT LENGTH('Hello'); -- 结果:5
    
  • CHAR_LENGTH(str):返回字符串的字符数。

    SELECT CHAR_LENGTH('你好'); -- 结果:2
    
  • UPPER(str):将字符串转换为大写。

    SELECT UPPER('hello'); -- 结果:HELLO
    
  • LOWER(str):将字符串转换为小写。

    SELECT LOWER('HELLO'); -- 结果:hello
    
  • SUBSTRING(str, pos, len):从字符串str的pos位置开始提取长度为len的子字符串。

    SELECT SUBSTRING('Hello World', 7, 5); -- 结果:World
    
  • TRIM(str):去除字符串两端的空格。

    SELECT TRIM(' Hello '); -- 结果:Hello
    
  • REPLACE(str, from_str, to_str):将字符串str中的from_str替换为to_str。

    SELECT REPLACE('Hello World', 'World', 'MySQL'); -- 结果:Hello MySQL
    
3. 日期和时间函数

日期和时间函数用于处理和操作日期和时间数据。以下是一些常用的日期和时间函数:

  • NOW():返回当前日期和时间。

    SELECT NOW(); -- 结果:2023-10-01 12:34:56
    
  • CURDATE():返回当前日期。

    SELECT CURDATE(); -- 结果:2023-10-01
    
  • CURTIME():返回当前时间。

    SELECT CURTIME(); -- 结果:12:34:56
    
  • DATE(date):提取日期部分。

    SELECT DATE('2023-10-01 12:34:56'); -- 结果:2023-10-01
    
  • TIME(date):提取时间部分。

    SELECT TIME('2023-10-01 12:34:56'); -- 结果:12:34:56
    
  • YEAR(date):提取年份。

    SELECT YEAR('2023-10-01'); -- 结果:2023
    
  • MONTH(date):提取月份。

    SELECT MONTH('2023-10-01'); -- 结果:10
    
  • DAY(date):提取天数。

    SELECT DAY('2023-10-01'); -- 结果:1
    
  • DATE_ADD(date, INTERVAL expr unit):向日期添加指定的时间间隔。

    SELECT DATE_ADD('2023-10-01', INTERVAL 1 DAY); -- 结果:2023-10-02
    
  • DATE_SUB(date, INTERVAL expr unit):从日期减去指定的时间间隔。

    SELECT DATE_SUB('2023-10-01', INTERVAL 1 DAY); -- 结果:2023-09-30
    
  • DATEDIFF(date1, date2):返回两个日期之间的天数差。

    SELECT DATEDIFF('2023-10-01', '2023-09-30'); -- 结果:1
    
4. 聚合函数

聚合函数用于对一组值进行计算并返回单个值。以下是一些常用的聚合函数:

  • COUNT(expr):返回指定列或表达式的非NULL值的数量。

    SELECT COUNT(*) FROM employees; -- 结果:总记录数
    
  • SUM(expr):返回指定列或表达式的总和。

    SELECT SUM(salary) FROM employees; -- 结果:工资总和
    
  • AVG(expr):返回指定列或表达式的平均值。

    SELECT AVG(salary) FROM employees; -- 结果:平均工资
    
  • MAX(expr):返回指定列或表达式的最大值。

    SELECT MAX(salary) FROM employees; -- 结果:最高工资
    
  • MIN(expr):返回指定列或表达式的最小值。

    SELECT MIN(salary) FROM employees; -- 结果:最低工资
    
5. 控制流函数

控制流函数用于在SQL查询中实现条件逻辑。以下是一些常用的控制流函数:

  • IF(expr1, expr2, expr3):如果expr1为真,返回expr2,否则返回expr3。

    SELECT IF(1 > 0, 'True', 'False'); -- 结果:True
    
  • IFNULL(expr1, expr2):如果expr1不为NULL,返回expr1,否则返回expr2。

    SELECT IFNULL(NULL, 'Default'); -- 结果:Default
    
  • NULLIF(expr1, expr2):如果expr1等于expr2,返回NULL,否则返回expr1。

    SELECT NULLIF(1, 1); -- 结果:NULL
    
  • CASE:用于实现复杂的条件逻辑。

    SELECT name, salary,
           CASE
               WHEN salary > 10000 THEN 'High'
               WHEN salary > 5000 THEN 'Medium'
               ELSE 'Low'
           END AS salary_level
    FROM employees;
    
6. 加密和压缩函数

加密和压缩函数用于对数据进行加密和压缩。以下是一些常用的加密和压缩函数:

  • MD5(str):返回字符串的MD5哈希值。

    SELECT MD5('password'); -- 结果:5f4dcc3b5aa765d61d8327deb882cf99
    
  • SHA1(str):返回字符串的SHA-1哈希值。

    SELECT SHA1('password'); -- 结果:5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
    
  • COMPRESS(str):返回压缩后的字符串。

    SELECT COMPRESS('Hello World'); -- 结果:压缩后的二进制数据
    
  • UNCOMPRESS(compressed_str):返回解压缩后的字符串。

    SELECT UNCOMPRESS(COMPRESS('Hello World')); -- 结果:Hello World
    
7. 类型转换函数

类型转换函数用于在不同数据类型之间进行转换。以下是一些常用的类型转换函数:

  • CAST(expr AS type):将表达式转换为指定的类型。

    SELECT CAST('123' AS UNSIGNED); -- 结果:123
    
  • CONVERT(expr, type):将表达式转换为指定的类型。

    SELECT CONVERT('123', UNSIGNED); -- 结果:123
    
8. 其他函数

除了上述函数之外,MySQL还提供了许多其他有用的函数,例如:

  • FORMAT(X, D):将数字X格式化为带有D位小数的字符串。

    SELECT FORMAT(12345.6789, 2); -- 结果:12,345.68
    
  • INET_ATON(ip):将IP地址转换为数字。

    SELECT INET_ATON('192.168.0.1'); -- 结果:3232235521
    
  • INET_NTOA(num):将数字转换为IP地址。

    SELECT INET_NTOA(3232235521); -- 结果:192.168.0.1
    
  • UUID():生成一个通用唯一标识符(UUID)。

    SELECT UUID(); -- 结果:550e8400-e29b-41d4-a716-446655440000
    

总结

MySQL函数提供了丰富的功能,用于处理和操作各种类型的数据。通过掌握这些函数,可以编写更高效和功能强大的SQL查询。无论是数学运算、字符串处理、日期和时间操作,还是聚合计算和条件逻辑,MySQL函数都能满足各种需求。希望本文能帮助你更好地理解和使用MySQL函数。

  • 23
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

需要重新演唱

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

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

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

打赏作者

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

抵扣说明:

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

余额充值