基本函数:
函数类别 |
函数名称 |
功能描述 |
示例及结果 |
数值函数 - 算术函数 |
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 位小数,省略 d 则默认四舍五入到整数 |
SELECT ROUND(3.14159, 2);返回3.14 |
数值函数 - 三角函数 |
SIN(x) |
接受弧度值 x,返回正弦值 |
SELECT SIN(RADIANS(30));返回约0.5(因需先将角度转弧度) |
数值函数 - 三角函数 |
COS(x) |
接受弧度值 x,返回余弦值 |
SELECT COS(RADIANS(60));返回约0.5 |
数值函数 - 三角函数 |
TAN(x) |
接受弧度值 x,返回正切值 |
SELECT TAN(RADIANS(45));返回1 |
字符串函数 - 长度与拼接 |
LENGTH(str) |
返回字符串 str 的长度(以字节为单位) |
SELECT LENGTH('Hello');返回5 |
字符串函数 - 长度与拼接 |
CONCAT(str1, str2, ...) |
将多个字符串连接成一个字符串 |
SELECT CONCAT('Hello', ', ', 'World');返回Hello, World |
字符串函数 - 查找与替换 |
SUBSTRING(str, pos, len) |
从字符串 str 的位置 pos 开始,提取长度为 len 的子字符串 |
SELECT SUBSTRING('Hello World', 7, 5);返回World |
字符串函数 - 查找与替换 |
REPLACE(str, from_str, to_str) |
将字符串 str 中的所有 from_str 替换为 to_str |
SELECT REPLACE('Hello World', 'World', 'MySQL');返回Hello MySQL |
日期和时间函数 - 获取当前 |
NOW() |
返回当前的日期和时间,格式为 YYYY - MM - DD HH:MM:SS |
执行SELECT NOW();可能返回类似2023 - 10 - 05 14:30:00的结果 |
日期和时间函数 - 获取当前 |
CURDATE() |
只返回当前的日期,格式为 YYYY - MM - DD |
SELECT CURDATE();可能返回2023 - 10 - 05 |
日期和时间函数 - 获取当前 |
CURTIME() |
只返回当前的时间,格式为 HH:MM:SS |
SELECT CURTIME();可能返回14:30:00 |
日期和时间函数 - 计算 |
DATE_ADD(date, INTERVAL expr unit) |
在日期 date 上加上一个时间间隔 expr,unit 表示时间间隔单位 |
SELECT DATE_ADD('2023 - 10 - 05', INTERVAL 1 MONTH);返回2023 - 11 - 05 |
日期和时间函数 - 计算 |
DATEDIFF(date1, date2) |
计算两个日期 date1 和 date2 之间的天数差 |
SELECT DATEDIFF('2023 - 10 - 10', '2023 - 10 - 05');返回5 |
聚合函数 |
COUNT(expr) |
返回满足条件的记录数,expr 为*时返回表中的所有记录数 |
SELECT COUNT(*) FROM users;返回users表中的记录总数 |
聚合函数 |
SUM(expr) |
返回数值列 expr 的总和 |
SELECT SUM(price) FROM products;返回products表中price列的总和 |
聚合函数 |
AVG(expr) |
返回数值列 expr 的平均值 |
SELECT AVG(age) FROM students;返回students表中age列的平均值 |
聚合函数 |
MAX(expr) |
返回列 expr 中的最大值 |
SELECT MAX(score) FROM exams;返回exams表中score列的最大值 |
聚合函数 |
MIN(expr) |
返回列 expr 中的最小值 |
SELECT MIN(score) FROM exams;返回exams表中score列的最小值 |
字符串函数:
函数名称 |
功能描述 |
示例及结果 |
LENGTH(str) |
返回字符串 str 的长度(以字节为单位) |
SELECT LENGTH('Hello');返回5 |
CONCAT(str1, str2, ...) |
将多个字符串连接成一个字符串 |
SELECT CONCAT('Hello', ', ', 'World');返回Hello, World |
SUBSTRING(str, pos, len) |
从字符串 str 的位置 pos 开始,提取长度为 len 的子字符串 |
SELECT SUBSTRING('Hello World', 7, 5);返回World |
REPLACE(str, from_str, to_str) |
将字符串 str 中的所有 from_str 替换为 to_str |
SELECT REPLACE('Hello World', 'World', 'MySQL');返回Hello MySQL |
UPPER(str) |
将字符串 str 中的所有字符转换为大写 |
SELECT UPPER('hello');返回HELLO |
LOWER(str) |
将字符串 str 中的所有字符转换为小写 |
SELECT LOWER('HELLO');返回hello |
TRIM([[BOTH |
LEADING |
TRAILING] [remstr] FROM] str) |
LEFT(str, len) |
从字符串 str 的左侧开始,提取长度为 len 的子字符串 |
SELECT LEFT('Hello World', 5);返回Hello |
RIGHT(str, len) |
从字符串 str 的右侧开始,提取长度为 len 的子字符串 |
SELECT RIGHT('Hello World', 5);返回World |
FIND_IN_SET(str1, str2) |
在以逗号分隔的字符串 str2 中查找字符串 str1 的位置(从 1 开始计数),若未找到返回 0 |
SELECT FIND_IN_SET('apple', 'banana,apple,orange');返回2 |
INSERT(str, pos, len, newstr) |
在字符串 str 的位置 pos 开始,删除长度为 len 的子字符串,并插入 newstr |
SELECT INSERT('Hello World', 7, 5, 'MySQL');返回Hello MySQL |