MySQL第七章


MySQL函数

什么叫函数呢:

MySQL 函数会对传递进来的参数进行一系列的处理,并且返回一个结果,这就是函数的定义了。

MySQL包含了大量的函数并且丰富多彩,我们就来了解一下那几十个常用的,剩下的可以去「MySQL 参考手册」查询。

字符串函数

函数 作用
UPPER(列|字符串) 将字符串每个字符转为大写
LOWER(列|字符串) 将字符串每个字符转为小写
CONCAT(str1,str2,…) 将所有字符串连接成一个字符串
REPLACE(列|字符串,新字符串) 使用新字符串替换旧字符串
LENGTH(列|字符串) 求字符串长度
SUBSTR(列|字符串,开始点[,长度]) 字符串截取
LEFT(str,len) 获取字符串左边len个字符组成的字符串
RIGHT(str,len) 获取字符串右边len个字符组成的字符串
MID(str,pos,len) 获取字符串中从pos(第几个)位置开始,长度为len的字符串
ASCII(字符) 返回与指定字符对应的十进制整数
CHR(数字) 返回与整数对应的字符
RPAD(列|字符串,长度,填充字符)
LPAD(列|字符串,长度,填充字符)
用指定的字符在字符串右或左填充
LTRIM(字符串)、RTRIM(字符串) 去掉字符串左或右的空格
TRIM(列|字符串) 去掉字符串左右空格
INSTR(列|字符串,要查找的字符串,开始位置,出现位置) 查找一个子字符串是否在指定的位置上出现

1647583819068

1647583827231

1647584931122

1647584939724

1647585184084

1647585192781

这里就不一 一演示了。

数学函数

函数 作用
ROUND(数字[,保留位数]) 根据指定的保留位数对小数进行四舍五入,如果不指定保留位数,则小数点之后的数字全部进行全部四舍五入
TRUNCATE(数字[,截取位数]) 保留指定位数的小数,如果不指定,则表示不保留
CEIL(数字),CEILING(数字) 对小数向上取整
FLOOR(数字) 对小数向下取整
RAND([n]) 随机返回0到1.0之间的小数,如果指定n每次产生的就都是重复的

通过数据库的函数,生成一个六位数字的随机验证码。

SELECT LPAD(TRUNCATE(RAND()*1000000,0),6,'0');

1647599540707

1647599547748

1647599597072

1647599603179

1647599766387

这里就不一 一演示了。

日期和时间函数

函数 作用
CURDATE(),CURRENT_DATE() 返回当前日期
CURTIME(),CURRENT_TIME() 返回当前时间
NOW(),CURRENT_TIMESTAMP(),LOCALTIME(),
SYSDATE(),LOCALTIMESTAMP()
返回会当前日期和事件
YEAR(日期) 返回日期中的年份
MONTH(日期) 返回日期中的月份[1,12]
DAY(日期) 返回日期中的天[1,31]
HOUR(时间) 返回时间中的小时
MINUTE(时间) 返回实践中的分钟
SECOND(时间) 返回时间中的秒
DAYOFWEEK(日期) 返回星期几,1星期日,2星期一
WEEKDAY(日期) 返回星期几,0星期一,1星期二
DAYOFYEAR(日期) 计算指定日期是本年第几天
DAYOFMONTH(日期) 计算指定日期是本月第几天
QUARTER(日期) 计算指定日期是第几季度
TIME_TO_SEC(time) 将指定时间转换为秒
SEC_TO_TIME(sec) 将以秒为单位的时间转换为时分秒的格式
DATEDIFF(d1,d2) 计算两个日期相隔的天数
ADDDATE(date,n) 计算指定日期加上n天后的日期
SUBDATE(date,n) 计算指定日期减去n天后的日期
ADDTIME(time,n) 计算指定时间加上n秒后的时间
SUBTIME(time,n) 计算指定时间减去n秒后的时间
DATE_FORMAT(date,f) 按格式返回日期
TIME_FORMAT(time,f) 按格式返回时间

条件判断函数

函数 作用
IF(expr,v1,v2) 如果表达式expr成立,返回结果v1;否则,返回结果v2。
IFNULL(v1,v2) 如果v1的值不为NULL,则返回v1,否则返回v2
CASE 分支(详见下面)

1647602564844

1647602571566

1647602933349

1647602940594

1647603076764

1647603084553

1647603265964

1647604256409

系统信息函数

系统信息函数用来查询MySQL数据库的系统信息。

函数 作用
VERSION() 返回数据库的版本号
CONNECTION_ID() 返回服务器的连接数
DATABASE()、SCHEMA 返回当前数据库名
USER()、SYSTEM_USER()、SESSION_USER()、CURRENT_USER()、CURRENT_USER 返回当前用户
CHARSET(str) 返回字符串str的字符集
COLLATION(str) 返回字符串str的字符排列方式

1647604442801

1647604551212

加密函数

加密函数是MySQL用来对数据进行加密的函数.

函数 作用
MD5(str) 对字符串str进行散列,可以用于一些普通的不需要解密的数据加密,如密码
sha1 对字符串str进行散列,可以用于一些普通的不需要解密的数据加密,如密码,比MD5更安全

1647604692982

其他函数

1.进制转换

函数 作用
BIN(x) 返回x的二进制
HEX(x) 返回x的十六进制
OCT(x) 返回x的八进制
CONV(x,from_base,to_base) 将from_base进制的x,转成to_base进制
SELECT BIN(10),HEX(10),OCT(10),CONV(16,16,10);
->1010 A 12 22

1647604747963

2.IP地址转换

函数 作用
INET_ATON(IP) 将点分十进制的IP地址转为数字
INET_NTOA(number) 将数字形式的IP转为点分十进制
SELECT INET_ATON('192.168.0.1')
    ->3232235521
SELECT INET_NTOA(3232235521)
    ->192.168.0.1

1647604858498


文章作者: hehe
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hehe !
  目录
​ ​