【Mysql上分之路】第六篇:Mysql函数分类及使用

theshy

MySQL函数

MySQL函数是MySQL数据库提供的内部函数,这些函数功能强大并且简单易用,这些函数表示对输入参数值返回一个具有特定关系的值,即调用已经存在函数就可完成某些功能,提高用户对数据库的管理效率

MySQL函数分类

数值型函数、字符串函数、日期与时间函数、条件判断函数、系统信息函数和加密函数等其他函数

在这里插入图片描述

数值型函数

数值型函数,及数学函数,数学函数主要是用来处理数值数据,主要的数学函数有:绝对值函数、三角函数(包括正弦函数、余弦函数、正切函数、余切函数)、对数函数、随机函数,在有错误产生时,数学函数会返回空值NULL

ABS

ABS(X)返回X的绝对值

mysql函数ABS

SQRT

SQRT(X)返回非负数X的二次平方根

mysql函数SQRT

MOD

MOD(X,Y)返回x除以y后的余数,MOD()对于带有小数部分的数值也起作用,它返回除法运算后的精确余数

mysql函数mod

CEIL、CEILING

CEIL(x)、CEILING(x)返回不小于x,即大于等于的最小整数值,返回值转化为一个BIGINT

mysql函数ceil

FLOOR

FLOOR(x)返回一个不大于x,即小于等于的最大整数值,返回值转化为一个BIGINT

mysql函数floor

RAND

RAND(x)返回一个随机浮点值v,范围在0~1之间,即0<=v<=1.0。若已指定一个整数参数x,则它被用作种子值,用来产生重复序列。

不带参数的RAND()每次产生的随机数值是不一样的

当RAND(x)的参数相同时,将产生相同的随机数

mysql函数rand

ROUND

ROUND(x)返回最接近与参数x的整数,对x值进行四舍五入

ROUND(x,y)返回最接近参数x的数,其值保留到小数点后面y位,若y为负值,则将保留x值到小数点左边y位

mysql函数round

TRUNCATE

TRUNCATE(x,y)返回被舍弃至小数点后y位的数字x。若y的值为0,则结果不带有小数点或不带有小数部分。若y为负数,则截去(归零)x小数点左起第y位开始后面所有低位的值

mysql函数truncate

SIGN

SIGN(x)返回参数的符号,x的值为负、零或正时返回结果为-1,0,1

mysql函数sign

POW、POWER

POW(x,y)、POWER(x,y)函数返回x的y次乘方的结果值

mysql函数pow

EXP

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

mysql函数exp

SIN、COS、TAN、COT

SIN(X)返回x的正弦值、COS(X)返回x的余弦值、TAN(x)返回x的正切值、COT(x)返回x的余切值,X为弧度制

mysql函数三角函数

LOG、LOG10

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

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

mysql函数log

字符串函数

字符串函数主要用来处理数据库中的字符串数据,主要的字符串函数有:字符串长度函数、字符串合并函数、字符串替换函数、字符串比较函数、查找指定字符串位置函数

LENGTH

LENGTH(str)返回值为字符串的字节长度,使用utf8(UNICODE的一种变长字符编码,又称万国码),一个汉字是三个字节,一个数字或字母算一个字节

mysql函数lenght

CONCAT

CONCAT(s1,s2…)返回值为连接参数产生的字符串,或许有一个或多个参数

如果任何一个参数为NULL,则返回值为NULL;如果自变量中有任一二进制字符串,则结果为一个二进制字符串

mysql函数concat

INSERT

INSERT(s1,x,len,s2)返回字符串s1,s2为替换的子字符串,x为子字符串s2替换的起始位置,len为子字符串替换长度

mysql函数insert

LOWER、UPPER

LOWER(str)或LCASE(str)可以将字符串str中的字母字符全部转换成小写字母

UPPER(str)或UCASE(str)可以将字符串str的字母字符全部转换成大写字母

mysql函数lower

LEFT、RIGHT

LEFT(s,n)返回字符串s开始最左边n个字符

RIGHT(s,n)返回字符串s最右边n个字符

mysql函数right

TRIM

LTRIM(s):删除字符串s最左边的空格

RTRIM(s):删除字符串s最右边的空格

TRIM(s):删除字符串s两侧的空格

mysql函数trim

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

REVERSE

REVERSE(s)将字符串s反转,返回的字符串的顺序和s字符串顺序相反

在这里插入图片描述

STRCMP

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

mysql函数strcmp

日期和时间函数

日期和时间函数主要用来处理日期和时间值,很多类型可以同时接受数值和字符串类型的两种参数

CURDATE、CURTIME

CURDATE()和CURRENT_DATE()函数作用一样,将当前日期按照’YYYY-MM-DD’或YYYYMMDD格式的值返回,具体格式根据函数用在字符串或是数值的情况决定

CURTIME()和CURRENT_TIME()函数作用一样,将当前日期按照’HH:MM:SS’或HHMMSS格式的值返回,具体格式根据函数用在字符串或是数值的情况决定

mysql函数curdate-time

NOW、LOCALTIME

CURRENT_TIMESTAMP()、LOCALTIME()、NOW()和SYSDATE()4个函数的作用相同,均返回当前日期和时间值,格式为’YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS,具体格式根据函数用在字符串或是数值的情况决定

mysql函数now

UTC_DATE、UTC_TIME

UTC_DATE()函数返回当前UTC(世界标准时间)日期值,其格式为’YYYY-MM-DD’或YYYYMMDD,具体格式根据函数用在字符串或是数值的情况决定

UTC_TIME()函数返回当前UTC(世界标准时间)时间值,其格式为’HH:MM:SS’或HHMMSS,具体格式根据函数用在字符串或是数值的情况决定

mysql函数utcdate-time

MONTH、DAYNAME

MONTH(d)返回d对应的月份

DAYNAME(d)返回的是d对应的工作日的名称,其中d为字符串形式的日期格式

mysql函数month

DATE_FORMAT

DATE_FORMAT(date,format)根据format指定的格式显示date值,date为是要格式化的有效日期值,format是由预定义的说明符组成的格式字符串,每个说明符前面都有一个百分比字符(%)主要的format格式为:

DATE_FORMAT时间日期格式
说明符说明
%a工作日的缩写名称
%b月份的缩写名称
%c月份
%D带有英文后缀的该月日期
%H以2位数表示24小时
%M月份名称
%T时间
%W工作日名称

mysql函数dateformat

条件判断函数

条件判断函数也称为控制流程函数,根据满足的条件不同,执行相应的流程

IF

IF(expr,v1,v2)函数:如果表达式expr是TRUE(expr !=0 and expr != NULL),则IF()的返回值为v1,否则返回v2。IF()的返回值为数值或字符串值,具体情况根据所在语境而定

mysql函数if

IFNULL

IFNULL(v1,v2)假如v1不为NULL,则IFNULL()的返回值为v1;否则返回值为v2。IFNULL()返回值为数值或字符串值,具体情况根据所在语境而定

mysql函数ifnull

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

聚合函数

MAX

MAX() 函数是用来返回指定列中的最大值

mysql函数max

MIN

MIN() 函数是用来返回查询列中的最小值

mysql函数min

COUNT

COUNT() 函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数,使用方法有以下两种:

  • COUNT(*) 计算表中总的行数,无论某列有数值或者为空值
  • COUNT(字段名)计算指定列下总的行数,计算时将忽略空值的行
mysql函数count

SUM

SUM() 是一个求总和的函数,返回指定列值的总和

  • 如果在没有返回匹配行 SELECT 语句中使用 SUM 函数,则 SUM 函数返回 NULL,而不是 0
  • DISTINCT 运算符允许计算集合中的不同值
  • SUM 函数忽略计算中的 NULL 值
mysql函数sum

AVG

AVG() 函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值

mysql函数avg

系统信息函数

CONNECTION_ID

CONNECTION_ID()返回Mysql服务器当前连接的次数,每个连接都有各自唯一的ID

mysql函数conncetionid

SHOW PROCESSLIST

show PROCESSLIST:显示运行的线程(针对运行慢的线程可以kill掉),当前的连接数、连接状态、帮助识别有问题的查询语句

show PROCESSLIST只列出前100条,想全部列出使用show full PROCESSLIST命令

mysql函数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账户

mysql函数user

其他函数

加密函数

主要是用来对数据进行加密和界面处理,已保证某些重要数据不被别人获取。这些函数在保证数据库安全时非常有用

MD5、SHA

MD5(str):从原明文密码str计算并返回加密后的密码字符串,当参数为NULL时,返回NULL

SHA(str):从原明文密码str计算并返回加密后的密码字符串,当参数为NULL时,返回NULL

mysql函数加密

从上图可知,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函数inet-aton

总结

Mysql提供了很多功能强大、方便易用的函数,Mysql函数功能分类:数学函数、字符串函数、日期与时间函数、条件判断函数、系统信息函数和加密函数等其他函数

赶紧学习起来吧!我是一个正在努力找回自我的人,希望能和一起学习的人成长,有错误的地方请各位大佬帮忙指正,如果觉得有帮助就点个赞当作对我的一个小肯定❤👍,peace&love

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值