程序员必收藏:珍藏多年Mysql大全笔记,轻松掌握数据库!
程序员的世界里,离得开代码,却离不开数据库。今天,我要与你分享一份珍藏已久的MySQL常用函数大全。这些函数陪伴我走过了无数个加班熬夜的日子,风雨无阻,修修补补多年,希望它们也能成为你的得力助手!
掌握这些数据库函数,你的编程之路将更加顺畅,其他问题也会迎刃而解。
接下来,本篇文章将详细介绍以下内容
- 流程控制函数:如IF、IFNULL、CASE等,用于在SQL查询中实现条件判断和逻辑控制。
- 聚合函数:如COUNT、SUM、AVG等,用于对数据进行汇总和统计分析。
- 加密函数:如SHA、MD5、ENCODE等,用于数据加密和安全处理。
- 日期函数:如CURDATE、DATEDIFF、YEAR等,用于日期和时间的操作和计算。
- 数字函数:如SUM、ROUND、RAND等,用于数学计算和数值处理。
- 字符串函数:如UPPER、SUBSTRING、REPLACE等,用于字符串操作和处理。
- 其他函数:如USER、VERSION、DATABASE等,用于获取系统信息和数据库管理。
1. 流程控制函数
序号 | 函数 | 说明 |
---|---|---|
1 | IF(test,t,f) | 如果test为真,返回t;否则返回f |
2 | IFNULL(arg1,arg2) | 如果arg1不为空,返回arg1,否则返回arg2 |
3 | NULLIF(arg1,arg2) | 如果arg1=arg2返回NULL;否则返回arg1 |
4 | CASE WHEN[test1] THEN [result1]…ELSE [default] END | 如果testN为真,则返回resultN,否则返回default |
5 | CASE [test] WHEN[val1] THEN [result]…ELSE [default]END | 如果test和valN相等,则返回resultN,否则返回default |
示例:
1 |
|
结果:
1 |
|
2. 聚合函数
序号 | 函数 | 说明 |
---|---|---|
1 | COUNT(col) | 统计查询结果的行数 |
2 | MIN(col) | 查询指定列的最小值 |
3 | SUM(col) | 求和,返回指定列的总和 |
4 | AVG(col) | 求平均值,返回指定列数据的平均值 |
示例:
1 |
|
结果:
1 |
|
3. 加密函数
序号 | 函数 | 说明 |
---|---|---|
1 | SHA() | 计算字符串str的安全散列算法(SHA)校验和 |
2 | PASSWORD(str) | 返回字符串str的加密版本,不可逆 |
3 | MD5() | 计算字符串str的MD5校验和 |
4 | ENCRYPT(str,salt) | 使用UNIX crypt()函数,用salt加密字符串str |
5 | ENCODE(str,key) | 使用key作为密钥加密字符串str,结果为二进制字符串 |
示例:
1 |
|
结果:
1 |
|
4. 日期函数
序号 | 函数 | 说明 |
---|---|---|
1 | CURDATE() | 返回当前日期 |
2 | CURRENT_DATE() | 返回当前日期 |
3 | CURRENT_TIME | 返回当前时间 |
4 | CURRENT_TIMESTAMP() | 返回当前日期和时间 |
5 | CURTIME() | 返回当前时间 |
6 | DATE() | 从日期或日期时间表达式中提取日期值 |
7 | DATEDIFF(d1,d2) | 计算日期d1到d2之间相隔的天数 |
8 | YEAR(d) | 返回年份 |
9 | YEARWEEK(date, mode) | 返回年份及第几周(0到53),mode中0表示周日,1表示周一 |
10 | WEEKOFYEAR(d) | 计算日期d是本年的第几个星期,范围是0到53 |
11 | WEEKDAY(d) | 日期d是星期几,0表示星期一,1表示星期二 |
12 | WEEK(d) | 计算日期d是本年的第几个星期,范围是0到53 |
13 | TO_DAYS(d) | 计算日期d距离0000年1月1日的天数 |
14 | TIMESTAMP(expression, interval) | 单个参数时,返回日期或日期时间表达式;有2个参数时,将参数相加 |
15 | TIMEDIFF(time1, time2) | 计算时间差值 |
16 | TIME_TO_SEC(t) | 将时间t转换为秒 |
17 | TIME_FORMAT(t,f) | 按f格式显示时间t |
18 | TIME(expression) | 提取表达式的时间部分 |
19 | SYSDATE() | 返回当前日期和时间 |
20 | SUBTIME(t,n) | 时间t减去n秒 |
21 | SUBDATE(d,n) | 日期d减去n天后的日期 |
22 | STR_TO_DATE(string, format_mask) | 将字符串转变为日期 |
23 | SEC_TO_TIME(s) | 将秒数s转换为时分秒格式 |
24 | SECOND(t) | 返回t中的秒钟值 |
25 | QUARTER(d) | 返回日期d是第几季度,返回1到4 |
26 | PERIOD_DIFF(period1, period2) | 返回两个时段之间的月份差值 |
27 | PERIOD_ADD(period, number) | 为年-月组合日期添加一个时段 |
28 | NOW() | 返回当前日期和时间 |
29 | MONTH(d) | 返回日期d中的月份值,1到12 |
30 | MONTHNAME(d) | 返回日期中的月份名称,如November |
31 | MINUTE(t) | 返回t中的分钟值 |
32 | MICROSECOND(date) | 返回日期参数所对应的微秒数 |
33 | MAKETIME(hour, minute, second) | 组合时间,参数分别为小时、分钟、秒 |
34 | MAKEDATE(year, day-of-year) | 基于年份year和天数序号day-of-year返回日期 |
35 | LOCALTIMESTAMP() | 返回当前日期和时间 |
36 | LOCALTIME() | 返回当前日期和时间 |
37 | LAST_DAY(d) | 返回给定日期的那一月份的最后一天 |
38 | HOUR(t) | 返回t中的小时值 |
39 | FROM_DAYS(n) | 计算从0000年1月1日开始n天后的日期 |
40 | EXTRACT(type FROM d) | 从日期d中获取指定的值,type指定返回的值 |
41 | DAYOFYEAR(d) | 计算日期d是本年的第几天 |
42 | DAYOFWEEK(d) | 日期d是星期几,1星期日,2星期一 |
43 | DAYOFMONTH(d) | 计算日期d是本月的第几天 |
44 | DAYNAME(d) | 返回日期d是星期几,如Saturday, Sunday |
45 | DAY(d) | 返回日期值d的日期部分 |
46 | DATE_SUB(date,INTERVAL expr type) | 从日期减去指定的时间间隔 |
47 | DATE_FORMAT(d,f) | 按f格式显示日期d |
48 | ADDTIME(t,n) | 时间t加上时间表达式n |
49 | ADDDATE(d,n) | 计算起始日期d加上n天后的日期 |
示例:
1 |
|
结果:
1 |
|
5. 数字函数
序号 | 函数 | 说明 |
---|---|---|
1 | SUM(expression) | 返回指定字段的总和 |
2 | SQRT(x) | 返回x的平方根 |
3 | SIN(x) | 求正弦值(参数是弧度) |
4 | SIGN(x) | 返回x的符号,x是负数、0、正数分别返回-1、0和1 |
5 | ROUND(x) | 返回离x最近的整数 |
6 | RAND() | 返回0到1的随机数 |
7 | RADIANS(x) | 将角度转换为弧度 |
8 | POWER(x,y) | 返回x的y次方 |
9 | POW(x,y) | 返回x的y次方 |
10 | PI() | 返回圆周率(3.141593) |
11 | MOD(x,y) | 返回x除以y的余数 |
12 | MIN(expression) | 返回字段expression中的最小值 |
13 | MAX(expression) | 返回字段expression中的最大值 |
14 | LOG2(x) | 返回以2为底的对数 |
15 | LOG(x) 或 LOG(base, x) | 返回自然对数(以e为底的对数) |
16 | LN | 返回数字的自然对数,以e为底 |
17 | LEAST(expr1, expr2, expr3, …) | 返回列表中的最小值 |
18 | GREATEST(expr1, expr2, expr3, …) | 返回列表中的最大值 |
19 | FLOOR(x) | 返回小于或等于x的最大整数 |
20 | EXP(x) | 返回e的x次方 |
21 | n DIV m | 整除,n为被除数,m为除数 |
22 | DEGREES(x) | 将弧度转换为角度 |
23 | COUNT(expression) | 返回查询的记录总数 |
24 | COT(x) | 求余切值(参数是弧度) |
25 | COS(x) | 求余弦值(参数是弧度) |
26 | CEILING(x) | 返回大于或等于x的最小整数 |
27 | CEIL(x) | 返回大于或等于x的最小整数 |
28 | AVG(expression) | 返回一个表达式的平均值 |
29 | ATAN(x) | 求反正切值(参数是弧度) |
30 | ASIN(x) | 求反正弦值(参数是弧度) |
31 | ACOS(x) | 求x的反余弦值(参数是弧度) |
32 | ABS(x) | 返回x的绝对值 |
33 | TAN(x) | 求正切值(参数是弧度) |
34 | TRUNCATE(x,y) | 返回数值x保留到小数点后y位的值 |
示例:
1 |
|
结果:
1 |
|
6. 字符串函数
序号 | 函数 | 说明 |
---|---|---|
1 | UPPER(s) | 将字符串转换为大写 |
2 | UCASE(s) | 将字符串转换为大写 |
3 | TRIM(s) | 去掉字符串s开始和结尾处的空格 |
4 | SUBSTRING_INDEX(s, delimiter, number) | 返回从字符串s的第number个出现的分隔符delimiter之后的子串 |
5 | SUBSTRING(s, start, length) | 从字符串s的start位置截取长度为length的子字符串 |
6 | SUBSTR(s, start, length) | 从字符串s的start位置截取长度为length的子字符串 |
7 | STRCMP(s1,s2) | 比较字符串s1和s2 |
8 | SPACE(n) | 返回n个空格 |
9 | RTRIM(s) | 去掉字符串s结尾处的空格 |
10 | RPAD(s1,len,s2) | 在字符串s1的结尾处添加字符串s2,使字符串长度达到len |
11 | RIGHT(s,n) | 返回字符串s的后n个字符 |
12 | REVERSE(s) | 将字符串s的顺序反过来 |
13 | REPLACE(s,s1,s2) | 将字符串s2替代字符串s中的字符串s1 |
14 | REPEAT(s,n) | 将字符串s重复n次 |
15 | POSITION(s1 IN s) | 从字符串s中获取s1的开始位置 |
16 | MID(s,n,len) | 从字符串s的n位置截取长度为len的子字符串 |
17 | LTRIM(s) | 去掉字符串s开始处的空格 |
18 | LPAD(s1,len,s2) | 在字符串s1的开始处填充字符串s2 |
19 | LOWER(s) | 将字符串s的所有字母变成小写字母 |
20 | LEFT(s,n) | 返回字符串s的前n个字符 |
21 | LCASE(s) | 将字符串s的所有字母变成小写字母 |
22 | LOCATE(s1,s) | 从字符串s中获取s1的开始位置 |
23 | INSERT(s1,x,len,s2) | 字符串s2替换s1的x位置开始长度为len的字符串 |
24 | FORMAT(x,n) | 将数字x进行格式化,保留到小数点后n位 |
25 | FIND_IN_SET(s1,s2) | 返回在字符串s2中与s1匹配的字符串的位置 |
26 | FIELD(s,s1,s2…) | 返回第一个字符串s在字符串列表中的位置 |
27 | CONCAT_WS(x, s1,s2…sn) | 同CONCAT函数,但每个字符串之间加上x |
28 | CONCAT(s1,s2…sn) | 字符串s1,s2等多个字符串合并为一个字符串 |
29 | CHARACTER_LENGTH(s) | 返回字符串s的字符数 |
30 | CHAR_LENGTH(s) | 返回字符串s的字符数 |
31 | ASCII(s) | 返回字符串s的第一个字符的ASCII码 |
示例:
1 |
|
结果:
1 |
|
7. 其他函数
序号 | 函数 | 说明 |
---|---|---|
1 | USER() | 返回当前用户 |
2 | SESSION_USER() | 返回当前用户 |
3 | SYSTEM_USER() | 返回当前用户 |
4 | CURRENT_USER() | 返回当前用户 |
5 | VERSION() | 返回数据库的版本号 |
6 | DATABASE() | 返回当前数据库名 |
7 | COALESCE(expr1, expr2, …, expr_n) | 返回参数中的第一个非空表达式 |
8 | CONNECTION_ID() | 返回唯一的连接ID |
9 | CONV(x,f1,f2) | 返回f1进制数变成f2进制数 |
10 | CONVERT(s USING cs) | 将字符串s的字符集变成cs |
11 | CAST(x AS type) | 转换数据类型 |
12 | BINARY(s) | 将字符串s转换为二进制字符串 |
13 | BIN(x) | 返回x的二进制编码 |
14 | IF(expr,v1,v2) | 如果表达式expr成立,返回结果v1;否则,返回结果v2 |
15 | IFNULL(v1,v2) | 如果v1的值不为NULL,则返回v1,否则返回v2 |
16 | ISNULL(expression) | 判断表达式是否为NULL |
17 | LAST_INSERT_ID() | 返回最近生成的AUTO_INCREMENT值 |
18 | NULLIF(expr1, expr2) | 比较两个字符串,如果expr1与expr2相等返回NULL,否则返回expr1 |
19 | CASE expression WHEN condition1 THEN result1 WHEN condition2 THEN result2 … WHEN conditionN THEN resultN ELSE result END | CASE表示函数开始,END表示函数结束。 |
示例:
1 |
|
结果:
1 |
|
总结
本文详细介绍了MySQL中的常用函数,涵盖了从流程控制、聚合、加密、日期、数字、字符串到其他常用函数的广泛内容。每个函数类别都提供了函数的名称、用途和具体示例。通过掌握这些MySQL函数,程序员可以大幅提升数据库操作的效率和灵活性,解决实际开发中的各种数据处理需求。
如果你觉得本篇mysql函数大全对你有用,希望能点赞+收藏支持下!
程序员必收藏:珍藏多年Mysql大全笔记,轻松掌握数据库!
http://example.com/2024/09/10/后端技术互联/程序员必收藏:珍藏多年Mysql大全笔记,轻松掌握数据库!/