MySQL数学函数分类:
字符型函数
日期和时间函数
控制流函数
系统信息函数
加密函数
数学函数:
■用来处理数值数据方面的运算,MySQL中的主要的数学函数有:绝对值函数、三角函数、对数函数、随机函数等.
使用数学函数的过程中,如果有错误发生,改函数将返回null.
select
RAND();产生一个0-1随机数
RAND(1);()中间的'1'为种子,种子相同,随机数也相同.
例子:floor(RAND()*100)+1//0-100的随机数
字符串函数:
■主要用来处理字符串数据,MySQL字符串函数.
主要有:计算字符串长度函数,字符串合并函数,字符串转换函数,字符串比较函数,查找指定字符函数
select
CHAR_lengeh(str):计算字符个数,不区分中文,英文.
LENGTH(str):计算str字符个数,中文一般为3个字符,英文为1个字符.
INSERT(str,pos,len,newstr) :将newstr从pos开始,替换长度为len的str.
例子:insert ('你好,拜拜',4,2,'再见')."你好,拜拜"-->"你好,再见"
SUBstring(str,pos,len):从str中从pos开始取出len个字符,注意:从'1'开始计算
例子:select lineno,end_station ,
if(char_length(end_station))>5,
concat(substrin(end_station,1,5),’…’ )
from line
日期函数:
■日期和时间函数主要用来处理日期和时间的值, 一般的日期函数除了使用DATE类型的参数外,也可以使用DATETIME或TIMESTAMP类型的参数,只是忽略了这些类型值的时间部分。类似的情况还有以TIME类型为参数的函数,可以接受TIMESTAMP类型的参数,只是忽略其中的日期部分,许多日期函数可以同时接受数值和字符串类型的参数。
select
CURDATE() //日期
CURREM_DATE //日期
NOW() //日期+时间
CURRENT_TIME //时间
SYSDATE() //时间
DAYNAME(NOW()) //星期
DAYOFWEEK(NOW()) //星期,从星期天开始,也就是说星期天为1,星期一为2,-1与dayname相同
WEEKDAY(NOW()) //星期,与dayofweek相似,但是要+1
DATE_FORMAT(NOW(),'%Y年%m月%d日 %H点%h分%s秒')
DATE_ADD(NOW(),INTERNAL,EXPR TYPE):计算与now()相差多少天.
例子:select date_add(now(),interval -45 day)
DATEDIFF(NOW(),‘2020-4-4’):计算距离与某天的时间
系统信息函数:
■MySQL系统信息函数用于获取MySQL数据库的系统信息,这些信息主要包括:数据库的版本号、当前用户名和连接数、系统字符集以及最后一个系统生成的值等。
select
CONNECTION_ID():连接次数
DATEBASE(),SCHEMA()当前库
USER():显示用户:root@localhost,即用户名@IP地址
CHARSET(‘中国’) :返回 : utf-8
LAST_INSERT-ID():返回最后一次自动生成的ID
加密函数:
■MySQL中加密函数用来对数据进行加密和解密的处理,以保证数据表中某些重要数据不被别人窃取,这些函数能保证数据库的安全。
select
PASSWORD(‘TEST’) //可逆
MD5(‘TEST’) //不可逆
encode(‘test’,‘hello’) // test为原文 hello密匙
deencode(crypt_str,pass_str) //密文,密匙
聚合函数:
■在数据库查询过程中,不仅只返回数据的基础信息,有时还需对这些数据进行统计和汇总。MySQL 提供了聚合函数,用于实现这些高级功能。
■聚合函数用于对一组值进行计算并返回-个汇总值,使用聚合函数可以统计记录行数、计算某个字段值的总和以及这些值的最大值、最小值和平均值等。
select
SUM:计算和
AVG:计算平均值
MAX:最大值
MIN:最小值
COUNT:统计表内的个数(不为空)
GROUP BY子句:
■使用group by子句可以将数据划分到不同的组中,实现对记录的分组查询。group by从英文字面的意义上可以理解为"根据( by ) 一定的规则进行分组( group)" ,该子句的作用是通过- -定的规则将一个数据集划分成若干个小的区域,然后针对这若干个小区域进行统计汇总。
■group by子句通常与聚合函数同时使用,如max()、min()、 count()、 sum()和avg()。
HAVING子句:
■用于完成针对分组后数据的筛选。可以用于聚合值的判断。
WITH ROLLUP
■group by子句将结果集分为若干个组,使用聚合函数可以对每个组内的数据进行信息统计,有时对各个组进行汇总计算时, 需要在分组之后再加上一条汇总记录,这个任务可以通过with rollup选项来实现。