MySql常用函数手册

MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。

  • 数学函数
  • 字符串函数
  • 日期和时间函数
  • 条件判断函数
  • 系统信息函数
  • 加密函数
  • 格式化函数

MySQL提供了众多功能强大、方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求。本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时查看。

数学函数

(1)ABS(x)
返回x的绝对值

(2)PI()
返回圆周率π,默认显示6位小数

(3)SQRT(x)
返回非负数的x的二次方根

(4)MOD(x,y)
返回x被y除后的余数

(5)CEIL(x)、CEILING(x)
返回不小于x的最小整数

(6)FLOOR(x)
返回不大于x的最大整数

(7)ROUND(x)、ROUND(x,y)
前者返回最接近于x的整数,即对x进行四舍五入;后者返回最接近x的数,其值保留到小数点后面y位,若y为负值,则将保留到x到小数点左边y位

(8)SIGN(x)
返回参数x的符号,-1表示负数,0表示0,1表示正数

(9)POW(x,y)和、POWER(x,y)
返回x的y次乘方的值

(10)EXP(x)
返回e的x乘方后的值

(11)LOG(x)
返回x的自然对数,x相对于基数e的对数

(12)LOG10(x)
返回x的基数为10的对数

(13)RADIANS(x)
返回x由角度转化为弧度的值

(14)DEGREES(x)
返回x由弧度转化为角度的值

(15)SIN(x)、ASIN(x)
前者返回x的正弦,其中x为给定的弧度值;后者返回x的反正弦值,x为正弦

(16)COS(x)、ACOS(x)
前者返回x的余弦,其中x为给定的弧度值;后者返回x的反余弦值,x为余弦

(17)TAN(x)、ATAN(x)
前者返回x的正切,其中x为给定的弧度值;后者返回x的反正切值,x为正切

(18)COT(x)
返回给定弧度值x的余切

字符串函数

(1)CHAR_LENGTH(str)
计算字符串字符个数

(2)CONCAT(s1,s2,...)
返回连接参数产生的字符串,一个或多个待拼接的内容,任意一个为NULL则返回值为NULL

(3)CONCAT_WS(x,s1,s2,...)
返回多个字符串拼接之后的字符串,每个字符串之间有一个x

(4)INSERT(s1,x,len,s2)
返回字符串s1,其子字符串起始于位置x,被字符串s2取代len个字符

(5)LOWER(str)和LCASE(str)、UPPER(str)和UCASE(str)
前两者将str中的字母全部转换成小写,后两者将字符串中的字母全部转换成大写

(6)LEFT(s,n)、RIGHT(s,n)
前者返回字符串s从最左边开始的n个字符,后者返回字符串s从最右边开始的n个字符

(7)LPAD(s1,len,s2)、RPAD(s1,len,s2)
前者返回s1,其左边由字符串s2填补到len字符长度,假如s1的长度大于len,则返回值被缩短至len字符;前者返回s1,其右边由字符串s2填补到len字符长度,假如s1的长度大于len,则返回值被缩短至len字符

(8)LTRIM(s)、RTRIM(s)
前者返回字符串s,其左边所有空格被删除;后者返回字符串s,其右边所有空格被删除

(9)TRIM(s)
返回字符串s删除了两边空格之后的字符串

(10)TRIM(s1 FROM s)
删除字符串s两端所有子字符串s1,未指定s1的情况下则默认删除空格

(11)REPEAT(s,n)
返回一个由重复字符串s组成的字符串,字符串s的数目等于n

(12)SPACE(n)
返回一个由n个空格组成的字符串

(13)REPLACE(s,s1,s2)
返回一个字符串,用字符串s2替代字符串s中所有的字符串s1

(14)STRCMP(s1,s2)
若s1和s2中所有的字符串都相同,则返回0;根据当前分类次序,第一个参数小于第二个则返回-1,其他情况返回1

(15)SUBSTRING(s,n,len)、MID(s,n,len)
两个函数作用相同,从字符串s中返回一个第n个字符开始、长度为len的字符串

(16)LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1)
三个函数作用相同,返回子字符串str1在字符串str中的开始位置(从第几个字符开始)

(17)REVERSE(s)
将字符串s反转

(18)ELT(N,str1,str2,str3,str4,...)
返回第N个字符串

日期和时间函数

(1)CURDATE()、CURRENT_DATE()
将当前日期按照"YYYY-MM-DD"或者"YYYYMMDD"格式的值返回,具体格式根据函数用在字符串或是数字语境中而定

(2)CURRENT_TIMESTAMP()、LOCALTIME()、NOW()、SYSDATE()
这四个函数作用相同,返回当前日期和时间值,格式为"YYYY_MM-DD HH:MM:SS"或"YYYYMMDDHHMMSS",具体格式根据函数用在字符串或数字语境中而定

(3)UNIX_TIMESTAMP()、UNIX_TIMESTAMP(date)
前者返回一个格林尼治标准时间1970-01-01 00:00:00到现在的秒数,后者返回一个格林尼治标准时间1970-01-01 00:00:00到指定时间的秒数

(4)FROM_UNIXTIME(date)
和UNIX_TIMESTAMP互为反函数,把UNIX时间戳转换为普通格式的时间

(5)UTC_DATE()和UTC_TIME()
前者返回当前UTC(世界标准时间)日期值,其格式为"YYYY-MM-DD"或"YYYYMMDD",后者返回当前UTC时间值,其格式为"YYYY-MM-DD"或"YYYYMMDD"。具体使用哪种取决于函数用在字符串还是数字语境中

(6)MONTH(date)和MONTHNAME(date)
前者返回指定日期中的月份,后者返回指定日期中的月份的名称

(7)DAYNAME(d)、DAYOFWEEK(d)、WEEKDAY(d) DAYNAME(d)
返回d对应的工作日的英文名称,如Sunday、Monday等;DAYOFWEEK(d)返回的对应一周中的索引,1表示周日、2表示周一;WEEKDAY(d)表示d对应的工作日索引,0表示周一,1表示周二

(8)WEEK(d)、WEEKOFYEAD(d)
前者计算日期d是一年中的第几周,后者计算某一天位于一年中的第几周

(9)DAYOFYEAR(d)、DAYOFMONTH(d)
前者返回d是一年中的第几天,后者返回d是一月中的第几天

(10)YEAR(date)、QUARTER(date)、MINUTE(time)、SECOND(time)
YEAR(date)返回指定日期对应的年份,范围是19702069;QUARTER(date)返回date对应一年中的季度,范围是14;MINUTE(time)返回time对应的分钟数,范围是0~59;SECOND(time)返回制定时间的秒值

(11)EXTRACE(type FROM date)
从日期中提取一部分,type可以是YEAR、YEAR_MONTH、DAY_HOUR、DAY_MICROSECOND、DAY_MINUTE、DAY_SECOND

(12)TIME_TO_SEC(time)
返回以转换为秒的time参数,转换公式为"3600小时 + 60分钟 + 秒"

(13)SEC_TO_TIME()
和TIME_TO_SEC(time)互为反函数,将秒值转换为时间格式

(14)DATE_ADD(date,INTERVAL expr type)、ADD_DATE(date,INTERVAL expr type)
返回将起始时间加上expr type之后的时间,比如DATE_ADD(‘2010-12-31 23:59:59’, INTERVAL 1 SECOND)表示的就是把第一个时间加1秒

(15)DATE_SUB(date,INTERVAL expr type)、SUBDATE(date,INTERVAL expr type)
返回将起始时间减去expr type之后的时间

(16)ADDTIME(date,expr)、SUBTIME(date,expr)
前者进行date的时间加操作,后者进行date的时间减操作

条件判断函数

(1)IF(expr,v1,v2)
如果expr是TRUE则返回v1,否则返回v2

(2)IFNULL(v1,v2)
如果v1不为NULL,则返回v1,否则返回v2

(3)CASE expr WHEN v1 THEN r1 [WHEN v2 THEN v2] [ELSE rn] END
如果expr等于某个vn,则返回对应位置THEN后面的结果,如果与所有值都不想等,则返回ELSE后面的rn

系统信息函数

(1)VERSION()
查看MySQL版本号

(2)CONNECTION_ID()
查看当前用户的连接数

(3)USER()、CURRENT_USER()、SYSTEM_USER()、SESSION_USER()
查看当前被MySQL服务器验证的用户名和主机的组合,一般这几个函数的返回值是相同的

(4)CHARSET(str)
查看字符串str使用的字符集

(5)COLLATION()
查看字符串排列方式

加密函数

(1)PASSWORD(str)
从原明文密码str计算并返回加密后的字符串密码,注意这个函数的加密是单向的(不可逆),因此不应将它应用在个人的应用程序中而应该只在MySQL服务器的鉴定系统中使用

(2)MD5(str)
为字符串算出一个MD5 128比特校验和,改值以32位十六进制数字的二进制字符串形式返回

(3)ENCODE(str, pswd_str)
使用pswd_str作为密码,加密str

(4)DECODE(crypt_str,pswd_str)
使用pswd_str作为密码,解密加密字符串crypt_str,crypt_str是由ENCODE函数返回的字符串

其他函数

(1)FORMAT(x,n)
将数字x格式化,并以四舍五入的方式保留小数点后n位,结果以字符串形式返回

(2)CONV(N,from_base,to_base)
不同进制数之间的转换,返回值为数值N的字符串表示,由from_base进制转换为to_base进制

(3)INET_ATON(expr)
给出一个作为字符串的网络地址的点地址表示,返回一个代表该地址数值的整数,地址可以使4或8比特

(4)INET_NTOA(expr)
给定一个数字网络地址(4或8比特),返回作为字符串的该地址的点地址表示

(5)BENCHMARK(count,expr)
重复执行count次表达式expr,它可以用于计算MySQL处理表达式的速度,结果值通常是0(0只是表示很快,并不是没有速度)。另一个作用是用它在MySQL客户端内部报告语句执行的时间

(6)CONVERT(str USING charset)
使用字符集charset表示字符串str

补充

当前时间
SELECT NOW()

当前时间前八个小时
SELECT DATE_SUB(NOW(), INTERVAL 8 HOUR)

当前时间后八个小时
SELECT DATE_ADD(NOW(), INTERVAL 8 HOUR)

参考文章:
https://www.cnblogs.com/panchanggui/p/10652322.html
https://www.cnblogs.com/xbblogs/p/11052493.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
列类型与函数索引 6 MySQL 语言参考 6.1 语言结构 6.1.1 文字:怎么写字符串与数字 6.1.1.1 字符串 6.1.1.2 数字 6.1.1.3 十六进制值 6.1.1.4 NULL 值 6.1.2 数据库、表、索引、列和别名 6.1.3 名字的大小写敏感性 6.1.4 用户变量 6.1.5 系统变量 6.1.6 注释句法 6.1.7 MySQL 对保留字挑剔吗? 6.2 列类型 6.2.1 数字类型 6.2.2 Date 和 Time 类型 6.2.2.1 Y2K 问题和日期类型 6.2.2.2 DATETIME、DATE 和 TIMESTAMP 类型 6.2.2.3 TIME 类型 6.2.2.4 YEAR 类型 6.2.3 字符串类型 6.2.3.1 CHAR 和 VARCHAR 类型 6.2.3.2 BLOB 和 TEXT 类型 6.2.3.3 ENUM 类型 6.2.3.4 SET 类型 6.2.4 为列选择正确的类型 6.2.5 使用来自其它的数据库引擎的列类型 6.2.6 列类型存储需求 6.2.6.1 数字类型存储需求 6.2.6.2 日期和时间类型存储需求 6.2.6.3 字符串类型存储需求 6.3 用于 SELECT 和 WHERE 子句的函数 6.3.1 无类型的特殊运算符和函数 6.3.1.1 圆括号 6.3.1.2 比较运算符 6.3.1.3 逻辑运算符 6.3.1.4 控制流函数 6.3.2 字符串函数 6.3.2.1 字符串比较函数 6.3.2.2 字母大小写敏感性 6.3.3 数字函数 6.3.3.1 算术运算 6.3.3.2 数学函数 6.3.4 日期和时间函数 6.3.5 Cast 函数 6.3.6 其它函数 6.3.6.1 位函数 6.3.6.2 辅助功能函数 6.3.7 用于 GROUP BY 子句的函数 6.4 数据操纵:SELECT, INSERT, UPDATE, DELETE 6.4.1 SELECT 句法 6.4.1.1 JOIN 句法 6.4.1.2 UNION 句法 6.4.2 HANDLER 句法 6.4.3 INSERT 句法 6.4.3.1 INSERT ... SELECT 句法 6.4.4 INSERT DELAYED 句法 6.4.5 UPDATE 句法 6.4.6 DELETE 句法 6.4.7 TRUNCATE 句法 6.4.8 REPLACE句法 6.4.9 LOAD DATA INFILE 句法 6.4.10 DO 句法 6.5 数据定义: CREATE、DROP、ALTER 6.5.1 CREATE DATABASE 句法 6.5.2 DROP DATABASE 句法 6.5.3 CREATE TABLE 句法 6.5.3.1 隐式的列定义变化 6.5.4 ALTER TABLE 句法 6.5.5 RENAME TABLE 句法 6.5.6 DROP TABLE 句法 6.5.7 CREATE INDEX 句法 6.5.8 DROP INDEX 句法 6.6 基本的 MySQL 用户实用命令 6.6.1 USE 句法 6.6.2 DESCRIBE 句法 (获得列的信息) 6.7 MySQL 事务与锁定命令 6.7.1 BEGIN/COMMIT/ROLLBACK 句法 6.7.2 LOCK TABLES/UNLOCK TABLES 句法 6.7.3 SET TRANSACTION 句法 6.8 MySQL 全文搜索 6.8.1 全文的限制 6.8.2 微调 MySQL 全文搜索 6.8.3 全文搜索 TODO 6.9 MySQL 查询缓存 6.9.1 查询缓存如何运作 6.9.2 查询缓存设置 6.9.3 在 SELECT 中的查询缓存选项 6.9.4 查询缓存的状态和维护

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Apple_Web

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值