MySQL数据库函数是预定义的SQL语句,可以对数据进行操作和处理。以下是一些常用的MySQL函数及其使用方法:
- 字符串函数
- CONCAT(str1, str2, …):连接两个或多个字符串。
- LEFT(str, len):从字符串左侧提取指定长度的子串。
- RIGHT(str, len):从字符串右侧提取指定长度的子串。
- SUBSTRING(str, start, len):从字符串中提取子串,从start位置开始,长度为len。
- LOWER(str) 和 UPPER(str):分别将字符串转换为小写和大写。
- TRIM(str):去除字符串两端的空格。
示例:
SELECT CONCAT('Hello, ', 'World!') AS result; -- 结果:Hello, World! SELECT LEFT('Hello, World!', 5) AS result; -- 结果:Hello SELECT RIGHT('Hello, World!', 5) AS result; -- 结果:World! SELECT SUBSTRING('Hello, World!', 7, 5) AS result; -- 结果:World SELECT LOWER('Hello, World!') AS result; -- 结果:hello, world! SELECT UPPER('Hello, World!') AS result; -- 结果:HELLO, WORLD! SELECT TRIM(' Hello, World! ') AS result; -- 结果:Hello, World!
- 数字函数
- ROUND(num, num_digits):将数字四舍五入到指定的小数位数。
- CEILING(num) 和 FLOOR(num):分别返回大于或等于给定数字的最小整数和小于或等于给定数字的最大整数。
- ABS(num):返回数字的绝对值。
- MOD(num1, num2):返回两个数字相除的余数。
示例:
SELECT ROUND(3.14159, 2) AS result; -- 结果:3.14 SELECT CEILING(3.14159) AS result; -- 结果:4 SELECT FLOOR(3.14159) AS result; -- 结果:3 SELECT ABS(-3.14159) AS result; -- 结果:3.14159 SELECT MOD(7, 3) AS result; -- 结果:1
- 日期和时间函数
- NOW():返回当前日期和时间。
- CURDATE() 和 CURTIME():分别返回当前日期和当前时间。
- STR_TO_DATE(str, format):将字符串转换为日期,根据指定的格式。
- DATEDIFF(date1, date2):计算两个日期之间的天数差。
- DATE_ADD(date, INTERVAL expr unit):向日期添加指定的时间间隔。
- DATE_SUB(date, INTERVAL expr unit):从日期中减去指定的时间间隔。
示例:
SELECT NOW() AS result; -- 结果:当前日期和时间(例如:2023-10-05 14:30:00) SELECT CURDATE() AS result; -- 结果:当前日期(例如:2023-10-05) SELECT CURTIME() AS result; -- 结果:当前时间(例如:14:30:00) SELECT STR_TO_DATE('2023-10-05', '%Y-%m-%d') AS result; -- 结果:2023-10-05 SELECT DATEDIFF('2023-10-06', '2023-10-05') AS result; -- 结果:1 SELECT DATE_ADD('2023-10-05', INTERVAL 1 DAY) AS result; -- 结果:2023-10-06 SELECT DATE_SUB('2023-10-05', INTERVAL 1 DAY) AS result; -- 结果:2023-10-04
- 聚合函数
- COUNT(column_name):计算指定列的非空值数量。
- SUM(column_name):计算指定列的总和。
- AVG(column_name):计算指定列的平均值。
- MIN(column_name) 和 MAX(column_name):分别返回指定列的最小值和最大值。
- GROUP_CONCAT(column_name [separator]):将同一组中的值连接成一个字符串。
示例:
SELECT COUNT(*) AS result FROM students; -- 结果:学生数量 SELECT SUM(score) AS result FROM scores; -- 结果:所有学生的总分 SELECT AVG(score) AS result FROM scores; -- 结果:所有学生的平均分 SELECT MIN(score) AS result FROM scores; -- 结果:最低分 SELECT MAX(score) AS result FROM scores; -- 结果:最高分 SELECT GROUP_CONCAT(student_name ORDER BY score DESC SEPARATOR ', ') AS result FROM scores; -- 结果:按分数降序排列的学生姓名列表
这些只是MySQL函数的一部分,还有其他函数可用于更复杂的数据处理。在使用函数时,请确保了解函数的功能、参数和返回值,并根据需要选择合适的函数。