MySQL中的常见函数

发布于:2025-07-20 ⋅ 阅读:(19) ⋅ 点赞:(0)

MySQL中的函数丰富多样,可分为数值函数、字符串函数、日期和时间函数、条件判断函数、聚合函数、加密函数等版块,以下是详细介绍:

数值函数

  • 常见函数
    • ABS(x):返回x的绝对值,如SELECT ABS(-5);,结果为5
    • CEIL(x):返回大于或等于x的最小整数,如SELECT CEIL(3.14);,结果为4
    • FLOOR(x):返回小于或等于x的最大整数,如SELECT FLOOR(3.14);,结果为3
    • ROUND(x,d):对x进行四舍五入,d表示保留的小数位数,如SELECT ROUND(3.14159, 2);,结果为3.14
    • RAND():返回一个随机数,范围在0到1之间。若要获取指定范围内的随机整数,可结合其他函数,如SELECT FLOOR(RAND() * 10 + 1);,获取1到10之间的随机整数。
  • 使用场景:在数据计算、生成随机数等场景中常用,如计算商品价格的折扣优惠金额(涉及数值运算)、生成验证码(涉及随机数)等。

字符串函数

  • 常见函数
    • CONCAT(s1, s2,...):将多个字符串连接成一个字符串,如SELECT CONCAT('Hello', ', ', 'World');,结果为Hello, World
    • LENGTH(s):返回字符串s的长度(以字节为单位),如SELECT LENGTH('中文');,结果为6,因为每个汉字在UTF-8编码下占3个字节。
    • SUBSTRING(s, pos[, len]):从字符串spos位置开始截取子字符串,len为可选参数,表示截取的长度,如SELECT SUBSTRING('Hello World', 7);,结果为World
    • UPPER(s):将字符串s中的所有字符转换为大写,如SELECT UPPER('hello');,结果为HELLOLOWER(s)则相反,将字符串转换为小写。
    • TRIM(s):去除字符串s两端的空格,LTRIM(s)去除左侧空格,RTRIM(s)去除右侧空格。
  • 使用场景:处理用户输入数据(如去除空格、转换大小写)、拼接动态SQL语句、从长文本中提取关键信息等。

日期和时间函数

  • 常见函数
    • NOW():返回当前的日期和时间,如SELECT NOW();,结果类似2024-10-15 14:30:00
    • CURDATE():返回当前的日期,如SELECT CURDATE();,结果类似2024-10-15CURTIME()返回当前的时间。
    • DATE_FORMAT(date, format):按照指定的format格式格式化日期,如SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');,可将当前日期时间格式化为2024-10-15 14:30:00的形式。
    • DATEDIFF(date1, date2):计算两个日期之间的天数差,如SELECT DATEDIFF('2024-10-15', '2024-10-10');,结果为5
  • 使用场景:记录数据的创建或更新时间、计算订单的处理时长、统计特定时间段内的业务数据等。

条件判断函数

  • 常见函数
    • IF(expr, v1, v2):如果expr为真,返回v1;否则返回v2,如SELECT IF(10 > 5, '大于', '小于');,结果为大于
    • CASE WHEN expr1 THEN v1 WHEN expr2 THEN v2 ELSE v3 END:多条件判断,根据不同的条件返回不同的值,如:
SELECT 
    CASE 
        WHEN score >= 90 THEN '优秀'
        WHEN score >= 80 THEN '良好'
        WHEN score >= 60 THEN '及格'
        ELSE '不及格'
    END AS grade
FROM student;
  • 使用场景:根据不同条件对数据进行分类、计算不同条件下的优惠金额、判断用户权限等。

聚合函数

  • 常见函数
    • COUNT(expr):统计符合条件的行数,如SELECT COUNT(*) FROM user;,统计user表中的总记录数。
    • SUM(expr):计算expr列的总和,如SELECT SUM(price) FROM product;,计算product表中商品价格的总和。
    • AVG(expr):计算expr列的平均值,如SELECT AVG(age) FROM employee;,计算employee表中员工年龄的平均值。
    • MAX(expr):返回expr列的最大值,MIN(expr)返回最小值,如SELECT MAX(salary) FROM company;,获取company表中员工工资的最大值。
  • 使用场景:统计报表数据(如统计销售总额、平均订单金额)、分析数据的集中趋势和离散程度等。

加密函数

  • 常见函数
    • PASSWORD(s):对字符串s进行加密,不过从MySQL 5.7.6开始,PASSWORD()函数已被弃用,推荐使用SHA2()等函数。
    • SHA2(s, hash_length):计算字符串s的SHA2加密值,hash_length通常为256或512,如SELECT SHA2('password', 256);,返回加密后的字符串。
  • 使用场景:对用户密码进行加密存储,保障数据安全。

网站公告

今日签到

点亮在社区的每一天
去签到