MySQL函数
MySQL函数是MySQL数据库提供的内部函数,这些函数功能强大并且简单易用,这些函数表示对输入参数值返回一个具有特定关系的值,即调用已经存在函数就可完成某些功能,提高用户对数据库的管理效率
MySQL函数分类
数值型函数、字符串函数、日期与时间函数、条件判断函数、系统信息函数和加密函数等其他函数
数值型函数
数值型函数,及数学函数,数学函数主要是用来处理数值数据,主要的数学函数有:绝对值函数、三角函数(包括正弦函数、余弦函数、正切函数、余切函数)、对数函数、随机函数,在有错误产生时,数学函数会返回空值NULL
ABS
ABS(X)返回X的绝对值
![mysql函数ABS](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数ABS.1apz7v6haav4.webp)
SQRT
SQRT(X)返回非负数X的二次平方根
![mysql函数SQRT](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数SQRT.4nri3miyy9s0.webp)
MOD
MOD(X,Y)返回x除以y后的余数,MOD()对于带有小数部分的数值也起作用,它返回除法运算后的精确余数
![mysql函数mod](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数mod.10a52z95n8ps.webp)
CEIL、CEILING
CEIL(x)、CEILING(x)返回不小于x,即大于等于的最小整数值,返回值转化为一个BIGINT
![mysql函数ceil](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数ceil.2k9azxat45g0.webp)
FLOOR
FLOOR(x)返回一个不大于x,即小于等于的最大整数值,返回值转化为一个BIGINT
![mysql函数floor](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数floor.1ne1ea1apwr.webp)
RAND
RAND(x)返回一个随机浮点值v,范围在0~1之间,即0<=v<=1.0。若已指定一个整数参数x,则它被用作种子值,用来产生重复序列。
不带参数的RAND()每次产生的随机数值是不一样的
当RAND(x)的参数相同时,将产生相同的随机数
![mysql函数rand](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数rand.qcf67nqy4wg.webp)
ROUND
ROUND(x)返回最接近与参数x的整数,对x值进行四舍五入
ROUND(x,y)返回最接近参数x的数,其值保留到小数点后面y位,若y为负值,则将保留x值到小数点左边y位
![mysql函数round](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数round.wgzb5lk7128.webp)
TRUNCATE
TRUNCATE(x,y)返回被舍弃至小数点后y位的数字x。若y的值为0,则结果不带有小数点或不带有小数部分。若y为负数,则截去(归零)x小数点左起第y位开始后面所有低位的值
SIGN
SIGN(x)返回参数的符号,x的值为负、零或正时返回结果为-1,0,1
![mysql函数sign](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数sign.19v5q514g4yo.webp)
POW、POWER
POW(x,y)、POWER(x,y)函数返回x的y次乘方的结果值
EXP
EXP(x)返回e的x乘方后的值
SIN、COS、TAN、COT
SIN(X)返回x的正弦值、COS(X)返回x的余弦值、TAN(x)返回x的正切值、COT(x)返回x的余切值,X为弧度制
![mysql函数三角函数](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数三角函数.694hmwhe9v40.webp)
LOG、LOG10
LOG(x)返回x的自然对数,x相对于基数e的对数
LOG10(x)返回x的基数为10的自然对数
![mysql函数log](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数log.1rfaq5vi0lvk.webp)
字符串函数
字符串函数主要用来处理数据库中的字符串数据,主要的字符串函数有:字符串长度函数、字符串合并函数、字符串替换函数、字符串比较函数、查找指定字符串位置函数
LENGTH
LENGTH(str)返回值为字符串的字节长度,使用utf8(UNICODE的一种变长字符编码,又称万国码),一个汉字是三个字节,一个数字或字母算一个字节
![mysql函数lenght](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数lenght.5gk8ags16780.webp)
CONCAT
CONCAT(s1,s2…)返回值为连接参数产生的字符串,或许有一个或多个参数
如果任何一个参数为NULL,则返回值为NULL;如果自变量中有任一二进制字符串,则结果为一个二进制字符串
![mysql函数concat](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数concat.3inak9x62zs0.webp)
INSERT
INSERT(s1,x,len,s2)返回字符串s1,s2为替换的子字符串,x为子字符串s2替换的起始位置,len为子字符串替换长度
LOWER、UPPER
LOWER(str)或LCASE(str)可以将字符串str中的字母字符全部转换成小写字母
UPPER(str)或UCASE(str)可以将字符串str的字母字符全部转换成大写字母
![mysql函数lower](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数lower.2b4qbixmiuqs.webp)
LEFT、RIGHT
LEFT(s,n)返回字符串s开始最左边n个字符
RIGHT(s,n)返回字符串s最右边n个字符
![mysql函数right](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数right.jp5jhrrjh1k.webp)
TRIM
LTRIM(s):删除字符串s最左边的空格
RTRIM(s):删除字符串s最右边的空格
TRIM(s):删除字符串s两侧的空格
![mysql函数trim](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数trim.1yq3jilv79vk.webp)
REPLACE
REPLACE(s,s1,s2):使用字符串s2替换字符串s中所有的子字符串s1
SUBSTRING
SUBSTRING(s,n,len)、MID(s,n,len):从字符串s返回一个从起始位置n开始长度为len的子字符串,n可能是一个负值,这样子字符串的起始位置为字符串结尾处开往左的n位置,即倒第n个字符
![mysql函数substring](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数substring.1dc3yejvjri8.webp)
REVERSE
REVERSE(s)将字符串s反转,返回的字符串的顺序和s字符串顺序相反
STRCMP
STRCMP(s1,s2)若所有字符串均相同,则返回0;若根据当前分类次序,第一个参数小于第二个,则返回-1,其他情况返回1
![mysql函数strcmp](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数strcmp.6cx98ae62wg0.webp)
日期和时间函数
日期和时间函数主要用来处理日期和时间值,很多类型可以同时接受数值和字符串类型的两种参数
CURDATE、CURTIME
CURDATE()和CURRENT_DATE()函数作用一样,将当前日期按照’YYYY-MM-DD’或YYYYMMDD格式的值返回,具体格式根据函数用在字符串或是数值的情况决定
CURTIME()和CURRENT_TIME()函数作用一样,将当前日期按照’HH:MM:SS’或HHMMSS格式的值返回,具体格式根据函数用在字符串或是数值的情况决定
![mysql函数curdate-time](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数curdate-time.22cd6opb5u9s.webp)
NOW、LOCALTIME
CURRENT_TIMESTAMP()、LOCALTIME()、NOW()和SYSDATE()4个函数的作用相同,均返回当前日期和时间值,格式为’YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS,具体格式根据函数用在字符串或是数值的情况决定
![mysql函数now](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数now.30ckhq79re00.webp)
UTC_DATE、UTC_TIME
UTC_DATE()函数返回当前UTC(世界标准时间)日期值,其格式为’YYYY-MM-DD’或YYYYMMDD,具体格式根据函数用在字符串或是数值的情况决定
UTC_TIME()函数返回当前UTC(世界标准时间)时间值,其格式为’HH:MM:SS’或HHMMSS,具体格式根据函数用在字符串或是数值的情况决定
![mysql函数utcdate-time](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数utcdate-time.cf8mmgvvjmo.webp)
MONTH、DAYNAME
MONTH(d)返回d对应的月份
DAYNAME(d)返回的是d对应的工作日的名称,其中d为字符串形式的日期格式
![mysql函数month](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数month.3bmjb2pyv800.webp)
DATE_FORMAT
DATE_FORMAT(date,format)根据format指定的格式显示date值,date为是要格式化的有效日期值,format是由预定义的说明符组成的格式字符串,每个说明符前面都有一个百分比字符(%)主要的format格式为:
DATE_FORMAT时间日期格式 | |
---|---|
说明符 | 说明 |
%a | 工作日的缩写名称 |
%b | 月份的缩写名称 |
%c | 月份 |
%D | 带有英文后缀的该月日期 |
%H | 以2位数表示24小时 |
%M | 月份名称 |
%T | 时间 |
%W | 工作日名称 |
条件判断函数
条件判断函数也称为控制流程函数,根据满足的条件不同,执行相应的流程
IF
IF(expr,v1,v2)函数:如果表达式expr是TRUE(expr !=0 and expr != NULL),则IF()的返回值为v1,否则返回v2。IF()的返回值为数值或字符串值,具体情况根据所在语境而定
![mysql函数if](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数if.o8wduayryog.webp)
IFNULL
IFNULL(v1,v2)假如v1不为NULL,则IFNULL()的返回值为v1;否则返回值为v2。IFNULL()返回值为数值或字符串值,具体情况根据所在语境而定
![mysql函数ifnull](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数ifnull.5v9o5xrqh2s0.webp)
CASE
CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END
CASE表示:expr值等于某个vn,则返回对应位置上TEHN后面的值,如果expr与所有的v1~vn不相等,则返回ELSE后面的rn
一个CASE表达式的默认返回值类型是任何返回值的相容集合类型,但具体情况根据具体语境而定
![mysql函数case](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数case.3p6thu7zu9k0.webp)
聚合函数
MAX
MAX() 函数是用来返回指定列中的最大值
![mysql函数max](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数max.5c95dqo0c4c0.webp)
MIN
MIN() 函数是用来返回查询列中的最小值
![mysql函数min](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数min.6b5ufv8jfyk0.webp)
COUNT
COUNT() 函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数,使用方法有以下两种:
- COUNT(*) 计算表中总的行数,无论某列有数值或者为空值
- COUNT(字段名)计算指定列下总的行数,计算时将忽略空值的行
![mysql函数count](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数count.4au9dg6tlr00.webp)
SUM
SUM() 是一个求总和的函数,返回指定列值的总和
- 如果在没有返回匹配行 SELECT 语句中使用 SUM 函数,则 SUM 函数返回 NULL,而不是 0
- DISTINCT 运算符允许计算集合中的不同值
- SUM 函数忽略计算中的 NULL 值
![mysql函数sum](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数sum.57b4k1bwas40.webp)
AVG
AVG() 函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值
![mysql函数avg](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数avg.3r0sg3qbgxa0.webp)
系统信息函数
CONNECTION_ID
CONNECTION_ID()返回Mysql服务器当前连接的次数,每个连接都有各自唯一的ID
SHOW PROCESSLIST
show PROCESSLIST:显示运行的线程(针对运行慢的线程可以kill掉),当前的连接数、连接状态、帮助识别有问题的查询语句
show PROCESSLIST只列出前100条,想全部列出使用show full PROCESSLIST命令
show PROCESSLIST显示表的各个列的含义和用途:
- ①Id列:用户登录Mysql时,系统分配的’Connection Id’
- ②User列:显示当前用户,如果不是root,就只显示用户权限范围内的sql语句
- ③Host列:显示这个语句是从哪个ip发出的,可以追踪出现问题语句的用户
- ④db列:现实中这个进程目前连接的是哪个数据库
- ⑤Command列:显示当前连接执行的命令,一般取值为休眠(Sleep)、查询(Query)、连接(Connect)
- ⑥Time列:显示这个状态持续的时间,单位是秒
- ⑦State列:显示当前连接sql语句的状态,后续会有所有状态的描述,State只是语句执行中的某一状态;一个sql语句,以查询为例,可能需要经过Copying to tmp table,Sorting result ,Sending data等状态才能完成
- ⑧Info列:显示这个sql语句,是判断问题语句一个依据
USER
USER()、CURRENT_USER()、SYSTEM_USER()和SESSION_USER()这几个函数返回当前被Mysql服务器验证的用户名和主机名组合。这个值符合确定当前登陆用户存取权限的Mysql账户
其他函数
加密函数
主要是用来对数据进行加密和界面处理,已保证某些重要数据不被别人获取。这些函数在保证数据库安全时非常有用
MD5、SHA
MD5(str):从原明文密码str计算并返回加密后的密码字符串,当参数为NULL时,返回NULL
SHA(str):从原明文密码str计算并返回加密后的密码字符串,当参数为NULL时,返回NULL
![mysql函数加密](https://cdn.jsdelivr.net/gh/babybeekeeper/pic_Hosting@master/20220117/mysql函数加密.1v4pstxyb3ds.webp)
从上图可知,SHA()加密算法比MD5更安全
IP地址与数字相互转换的函数
INET_ATON
INET_ATON(expr):给出一个作为字符串的网络地址的点地址表示,返回一个代表该地址数值的整数,地址可以是4或8比特地址
产生的数字按网络字节顺序:假如IP地址为:209.207.224.40,数值网络地址计算方式:209 * 256^3 + 207 * 256^2 + 224 * 256 ^1+40
INET_NTOA(expr):给定一个数字网络地址(4或8比特),返回作为字符串的该地址的点地址表示
总结
Mysql提供了很多功能强大、方便易用的函数,Mysql函数功能分类:数学函数、字符串函数、日期与时间函数、条件判断函数、系统信息函数和加密函数等其他函数
赶紧学习起来吧!我是一个正在努力找回自我的人,希望能和一起学习的人成长,有错误的地方请各位大佬帮忙指正,如果觉得有帮助就点个赞当作对我的一个小肯定❤👍,peace&love