MySQL函数详解与实用案例分享
mysql函数大全以及举例

首页 2025-06-16 00:42:53



MySQL函数大全及实战举例 MySQL,作为一款广泛使用的开源关系型数据库管理系统,提供了丰富的内置函数来满足各种数据处理需求

    这些函数涵盖了字符串操作、数值计算、日期和时间处理、数据聚合、条件判断以及数据类型转换等多个方面

    本文将详细介绍MySQL中的这些常用函数,并通过具体示例展示其应用

     一、字符串函数 字符串函数主要用于对字符串数据进行处理,包括连接、截取、转换大小写以及获取字符串长度等操作

     1.CONCAT() CONCAT函数用于将多个字符串连接成一个字符串

    这在生成动态字段时非常有用,如生成完整的地址或姓名等

     sql SELECT CONCAT(Hello, , World) AS result; -- 输出: Hello World 2.SUBSTRING() SUBSTRING函数用于从字符串的指定位置开始,截取指定长度的子字符串

    这在解析日志文件或提取特定格式的数据时非常有用

     sql SELECT SUBSTRING(Hello World,7,5) AS result; -- 输出: World 3.LENGTH() LENGTH函数返回字符串的字节长度

    这在数据校验时非常有用,如验证用户输入的字符串长度是否符合要求

     sql SELECT LENGTH(Hello World) AS result; -- 输出:11 4.UPPER()和LOWER() UPPER和LOWER函数分别用于将字符串转换为大写或小写

    这在统一字符串格式以便于比较和排序时非常有用

     sql SELECT UPPER(hello world) AS upper_result, LOWER(HELLO WORLD) AS lower_result; -- 输出: HELLO WORLD, hello world 二、数值函数 数值函数主要用于对数值数据进行处理,包括计算绝对值、四舍五入、取整等操作

     1.ABS() ABS函数返回数值的绝对值

    这在处理负数或计算两个数值之间的绝对差值时非常有用

     sql SELECT ABS(-10) AS result; -- 输出:10 2.ROUND() ROUND函数将数值四舍五入到指定的小数位数

    这在处理浮点数或在财务计算中需要保留小数位时非常有用

     sql SELECT ROUND(123.456,2) AS result; -- 输出:123.46 3.CEIL()和FLOOR() CEIL函数返回大于或等于指定数值的最小整数,而FLOOR函数返回小于或等于指定数值的最大整数

    这在分页计算或资源分配时需要向上或向下取整时非常有用

     sql SELECT CEIL(123.456) AS ceil_result, FLOOR(123.456) AS floor_result; -- 输出:124,123 三、日期和时间函数 日期和时间函数主要用于处理日期和时间数据,包括获取当前日期和时间、格式化日期和时间以及计算日期差等操作

     1.NOW() NOW函数返回当前的日期和时间

    这在记录操作时间或在日志表或用户操作记录中使用时非常有用

     sql SELECT NOW() AS current_time; -- 输出:2025-06-16 xx:xx:xx 2.DATE_FORMAT() DATE_FORMAT函数将日期格式化为指定的格式

    这在显示或导出数据时需要将日期时间格式化为用户友好的格式时非常有用

     sql SELECT DATE_FORMAT(NOW(), %Y-%m-%d %H:%i:%s) AS formatted_date; -- 输出:2025-06-16 xx:xx:xx 3.DATEDIFF() DATEDIFF函数返回两个日期之间的天数差

    这在统计分析中计算两个日期之间的天数差时非常有用,如计算用户注册天数

     sql SELECT DATEDIFF(2025-06-20, 2025-06-16) AS days_diff; -- 输出:4 四、聚合函数 聚合函数主要用于对一组值执行计算,并返回单个值,如计数、求和和求平均值等

     1.COUNT() COUNT函数返回满足条件的行数

    这在数据统计和报表中统计用户数量、订单数量等时非常有用

     sql SELECT COUNT() AS total_count FROM users; -- 输出:假设为100 2.SUM() SUM函数返回数值列的总和

    这在财务报表中计算订单总金额、销售额等时非常有用

     sql SELECT SUM(amount) AS total_amount FROM orders; -- 输出:假设为10000 3.AVG() AVG函数返回数值列的平均值

    这在数据分析中计算平均成绩、平均销售额等时非常有用

     sql SELECT AVG(score) AS average_score FROM students; -- 输出:假设为85.5 五、条件函数 条件函数用于根据条件返回不同的结果

     1.CASE CASE函数根据一系列条件返回不同的结果

    这在数据分类和报表中根据条件分类用户、客户等时非常有用

     sql SELECT name, CASE WHEN age <18 THEN Minor WHEN age >=18 AND age <60 THEN Adult ELSE Senior END AS age_group FROM users; 2.IF() IF函数用于简单的条件判断

    这在查询中快速分类时非常有用,如判断用户是否成年、订单是否完成等

     sql SELECT name, IF(age >=18, Adult, Minor) AS age_group FROM users; 六、转换函数 转换函数用于数据类型之间的转换

     1.CAST() CAST函数将表达式转换为指定的数据类型

    这在数据导入或计算时需要将数据类型进行转换时非常有用

     sql SELECT CAST(123 AS SIGNED) AS number; -- 输出:123 七、其他常用函数 MySQL还提供了许多其他常用函数,如数学函数、加密函数和控制流函数等

     1.数学函数 -BIN(x): 返回x的二进制表示

     -CEILING(x): 返回大于x的最小整数值(与CEIL(x)功能相同)

     -EXP(x): 返回e的x次方

     -GREATEST(x1, x2, ..., xn): 返回集合中最大的值

     -LEAST(x1, x2, ..., xn): 返回集合中最小的值

     -LN(x): 返回x的自然对数

     -LOG(x, y): 返回x的以y为底的对数

     -MOD(x, y): 返回x除以y的余数

     -PI(): 返回圆周率π的值

     -RAND(): 返回0到1之间的随机值

     2.加密函数 -AES_ENCRYPT(str, key): 使用高级加密标准算法加密字符串

     -AES_DECRYPT(str, key): 使用高级加密标准算法解密字符串

     -ENCRYPT(str, salt): 使用UNIX crypt()函数加密字符串

     -MD5(): 计算字符串的MD5校验和

     -SHA(): 计算字符串的安全散列算法(SHA)校验和

     3.控制流函数 -IFNULL(arg1, arg2): 如果arg1不是NULL,返回arg1;否则返回arg2

     -NULLIF(arg1, arg2): 如果arg1等于arg2,返回NULL;否则返回arg1

     八、自定义函数 除了内置函数外,MySQL还允许用户自定义函数

    自定义函数可以使用SQL语句和流程控制结构来实现复杂的逻辑

     创建自定义函数的基本语法如下: sql DELIMITER $$ DROP FUNCTION IF EXISTS function_name $$ CREATE FUNCTION function_name(parameters) RETURNS return_type BEGIN -- 函数体 RETURN value; END $$ DELIMITER ; 例如,创建一个生成创建表语句的函数: sql DELIMITER $$ DROP FUNCTION IF EXISTS genPerson $$ CREATE FUNCTION genPerson(name VARCHAR(20)) RETURNS VARCHAR(50) BEGIN DECLARE str VARCHAR(50) DEFAULT ; SET str = CONCAT(create table , name,(id int, name varchar(20));); RETURN str; END $$ DELIMITER ; 调用该函数将返回一条创建表的SQL语句: sql SELECT genPerson

MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道