本文更新于2019-06-29,使用MySQL 5.7,操作系统为Deepin 15.4。
目录
- 数值函数
 - 日期时间函数
 - 字符串函数
 - 流程函数
 - 聚合函数
 - 其他函数
 - 全局变量
 
数值函数
| 函数 | 作用 | 
|---|
| ABS(x) | 绝对值 | 
| CEIL(x) | 向上取整 | 
| FLOOR(x) | 向下取整 | 
| MOD(x, y) | 取余,等同x%y | 
| RAND() | [0, 1)区间的随机数 | 
| ROUND(x[, n]) | 四舍五入至n位小数,n默认为0 | 
| TRUNCATE(x, n) | 截断为n位小数 | 
日期时间函数
| 函数 | 作用 | 
|---|
| CURDATE() | 当前日期 | 
| CURTIME() | 当前时间 | 
| DATE_ADD(t, INTERVAL expr type) | 增加一定时间间隔 | 
| DATEDIFF(later, previous) | later减previous相差的天数,不考虑时间 | 
| DATE_FORMAT(t, fmt) | 使用fmt格式化 | 
| FROM_UNIXTIME(unix) | UNIX时间戳的日期时间 | 
| HOUR(t) | 小时 | 
| MINUTE(t) | 分钟 | 
| MONTHNAME(t) | 月份名(英文) | 
| NOW() | 当前日期时间 | 
| UNIX_TIMESTAMP(t) | 转换成UNIX时间戳 | 
| WEEK(t) | 一年中的第几周 | 
| YEAR(t) | 年份 | 
DATE_ADD(t, INTERVAL expr type)的type可用如下的时间间隔类型。expr使用对应的格式,格式允许不严格的间隔(即任何标点符都可)。格式中的数值可使用负数。若整个格式就是一个数值,则可直接使用数值类型的格式,否则应使用字符串类型的格式。
| 时间间隔类型 | 格式 | 
|---|
| YEAR | YY | 
| MONTH | MM | 
| DAY | DD | 
| HOUR | hh | 
| MINUTE | mm | 
| SECOND | ss | 
| YEAR_MONTH | YY-MM | 
| DAY_HOUR | DD hh | 
| DAY_MINUTE | DD hh:mm | 
| DAY_SECOND | DD hh:mm:ss | 
| HOUR_MINUTE | hh:mm | 
| HOUR_SECOND | hh:mm:ss | 
| MINUTE_SECOND | mm:ss | 
DATE_FORMAT(t, fmt)的fmt参数可使用的格式符如下:
| 格式符类型 | 格式符 | 说明 | 
|---|
| 秒 | %S/%s | 两位数字形式的秒(00, ..., 59) | 
| 分 | %i | 两位数字形式的分(00, ..., 59) | 
| 时 | %H | 两位数字形式的时,24小时制(00, ..., 23) | 
| 时 | %h/%I | 两位数字形式的时,12小时制(01, ..., 12) | 
| 时 | %k | 数字形式的时,24小时制(0, ..., 23) | 
| 时 | %l | 数字形式的时,12小时制(1, ..., 12) | 
| 时分秒 | %T | 两位数字,24小时制的时分秒(hh:mm:ss) | 
| 时分秒 | %r | 两位数字,12小时制的时分秒(hh:mm:ss AM/PM) | 
| 上下午 | %p | AM或PM | 
| 星期 | %W | 英文星期(Sunday) | 
| 星期 | %a | 英文缩写星期(Sun) | 
| 星期 | %w | 数字形式的星期(0=Sunday) | 
| 日 | %d | 两位数字形式的日(01, ..., 31) | 
| 日 | %e | 数字形式的日(1, ..., 31) | 
| 日 | %D | 英文后缀形式的日(1st) | 
| 月 | %M | 英文月(January) | 
| 月 | %b | 英文缩写月(Jan) | 
| 月 | %m | 两位数字形式的月(01, ..., 12) | 
| 月 | %c | 数字形式的月(1, ..., 12) | 
| 年 | %Y | 4位数字形式的年 | 
| 年 | %y | 2位数字形式的年 | 
 | %j | 一年中第几天,三位数字形式(001, ..., 366) | 
 | %U | 一年中第几周,Sunday为周中第一天,第一个Sunday为第一周的开始,两位数字形式(00, ..., 52) | 
 | %u | 一年中第几周,Monday为周中第一天,01-01为第一周的开始,两位数字形式(00, ..., 52) | 
| % | %% | 字符% | 
字符串函数
字符串首字符的下标为1。
| 函数 | 作用 | 
|---|
| CONCAT(v[, ...]) | 连接字符串,v也可以是数值 | 
| INSERT(str, idx, len, substr) | 将str从idx(含)起的len个字符替换为substr | 
| LEFT(str, len) | 取左侧len个字符 | 
| LENGTH(str) | 字符串长度 | 
| LOWER(str) | 转换成小写 | 
| LPAD(str, len, pad) | 使用pad在str左侧填充至长度为len | 
| LTRIM(str) | 去掉左侧空格 | 
| REPEAT(str, n) | 重复n次 | 
| REPLACE(str, old, new) | 使用new替换old | 
| RIGHT(str, len) | 取右侧len个字符 | 
| RPAD(str, len, pad) | 使用pad在str右侧填充至长度为len | 
| RTRIM(str) | 去除右侧空格 | 
| STRCMP(str1, str2) | str1<str2返回-1,str1=str2返回0,str1>str2返回1 | 
| SUBSTRING(str, idx, len) | 截取str从idx(含)起长度为len的子串 | 
| TRIM(str) | 去掉两侧空格 | 
| UPPER(str) | 转换成大写 | 
流程函数
| 函数 | 作用 | 
|---|
| IF(value, t, f) | 如果value为真则返回t,否则返回f | 
| IFNULL(value, result) | 如果value不为NULL则返回value,否则返回result | 
| CASE WHEN expr1 THEN result1 [WHEN ...] [ELSE default] END | 根据各表达式的真假返回结果 | 
| CASE value WHEN enum1 THEN result1 [WHEN ...] [ELSE default] END | value根据各枚举值返回结果 | 
使用流程函数时注意NULL的情况。
聚合函数
| 函数 | 作用 | 
|---|
| BIT_AND(row) | 按位与 | 
| BIT_OR(row) | 按位或 | 
其他函数
用于数据库管理的函数:
| 函数 | 作用 | 
|---|
| CURRENT_USER() | 当前用户 | 
| DATABASE() | 当前数据库名,同SCHEMA | 
| PASSWORD(str) | 加密成系统密码,长度为41 | 
| SCHEMA() | 当前数据库名,同DATABASE | 
| USER() | 当前登录用户名 | 
| VERSION() | 当前MySQL版本 | 
用于辅助查询的函数:
| 函数 | 作用 | 
|---|
| FOUND_ROWS() | 上一次查询返回的行数 | 
| LAST_INSERT_ID() | 最后插入记录使用的自增长值。如一次插入多条记录,则返回第一条记录使用的自增长值 | 
用于计算的函数:
| 函数 | 作用 | 
|---|
| BIN(value) | 二进制形式表示 | 
| CRC32(value) | CRC32值 | 
| HEX(value) | 十六进制形式表示 | 
| INET_ATON(ip) | IP从点分十进制转换成网络字节序整数 | 
| INET_NTOA(uint) | IP从网络字节序整数转换成点分十进制 | 
| MD5(value) | MD5值 | 
| SHA1(value) | SHA1值 | 
全局变量
| 变量 | 作用 | 
|---|
| CURRENT_TIMESTAMP | 当前时间戳 | 
MySQL学习笔记(6):常用函数英国腾邦会计事务所、 PinFollow、 Jabong、 深圳商标补贴新政策出台!非深户也可申请,快来领钱吧!、 Amazon's Choice有什么用?如何大概率地获取Amazon's Choice?、 十大Q&A解读PB,Wish新手必读、 云南丽江旅游要多少钱2017、 云南丽江旅游要多少钱跟团、 云南丽江旅游要多少钱跟团、 
 
没有评论:
发表评论