mysql:mysql的基本函数

1、数学函数

ABS(X):返回X的绝对值
Select ABS(-32);
在这里插入图片描述

MOD(N,M)或%,返回N被M除的余数
Select MOD(15,8)
在这里插入图片描述

select 15%8
在这里插入图片描述

FLOOR(X)返回不大于X的最大整数值
Select FLOOR(1.456);
在这里插入图片描述

Select FLOOR(-1.456);
在这里插入图片描述

CEILING(X)返回不小于X的最小整数值
Select CEILING(2.56);
在这里插入图片描述

Select CEILING(-2.56);
在这里插入图片描述

ROUND(X)返回参数X的四舍五入的一个整数
Select ROUND(2.56);
在这里插入图片描述
Select ROUND(-2.56);
在这里插入图片描述

2、字符串函数

ASCII(str)返回最左边字符的ASCII代码值
若为空返回0,str是null返回null
SELECT ASCII(‘A’)
在这里插入图片描述

SELECT CONCAT(str1,str2,…)用于连接字符串
若有任何字符为null,返回null,若有数字,变换为等价的字符串形式
SELECT CONCAT(‘my’,‘sq’,‘l’)
在这里插入图片描述

SELECT LENGTH(str)用于返回字符串长度
SELECT LENGTH(“changdu”)
在这里插入图片描述

SELECT LOCATE(substr,str)返回substr字符串第一个出现的位置
SELECT LOCATE(‘chicken’,‘chicken is beautiful’)
在这里插入图片描述

SELECT INSTR(str,substr)返回substr字符串第一个出现的位置
SELECT INSTR(‘footballbarbar’,‘bar’)
在这里插入图片描述

BELECT LEFT(str,len)返回最左边len个字符
SELECT LEFT(“beautiful girl”,5)
在这里插入图片描述

SELECT RIGHT(str,len)返回最右边的len个字符
SELECT RIGHT(‘gtmdttkp’,5)
在这里插入图片描述

SUBSTRING(str,pos):从字符串str的起始位置pos返回一个子串。
SELECT SUBSTRING(‘gtmdttkp’,5)
在这里插入图片描述

TRIM(str):返回字符串str,所有前缀或后缀被删除了
SELECT TRIM(‘bar’)
在这里插入图片描述
LTRIM(str):返回删除了其前置空格字符的字符串str
SELECT LTRIM(’ barbar dd’)
在这里插入图片描述

RTRIM(str):返回删除了其拖后空格字符的字符串str
SELECT RTRIM(’ ttkp ')
在这里插入图片描述

REPLACE(str,from_str,to_str):返回字符串str,其字符串from_str的所有出现由字符串to_str代替
SELECT REPLACE(‘gtmdttkp’,‘t’,‘T’);
在这里插入图片描述

REPEAT(str,count)返回str的count次,见文生义repeat重复
SELECT REPEAT(‘gtmdttkp’,3)
在这里插入图片描述

REVERSE(str)反转字符串
SELECT REVERSE(‘gtmdttkp’)
在这里插入图片描述

INSERT(str,pos,len,newstr):返回字符串str,在位置pos起始的子串且len个字符长的子串由字符串newstr代替
SELECT INSERT(‘gtmdttkp’, 5,3,‘xxx’)
在这里插入图片描述

3、日期和时间函数

DAYOFWEEK(date):返回日期date的星期索引(1=星期天,2=星期一, …7=星期六)
SELECT DAYOFWEEK(‘2019-12-19’)
在这里插入图片描述

WEEKDAY(date)返回日期date的星期索引(0=星期一,1=星期二, ……6= 星期天)
SELECT WEEKDAY(‘2019-12-19’)3+1星期4没毛病
在这里插入图片描述

DAYOFMONTH(date):返回date的月份中的日期,在1到31范围内
SELECT DAYOFMONTH(‘2019-12-19’)
在这里插入图片描述

DAYOFYEAR(date):返回date在这一年中是第几天, 在1到366范围内。
SELECT DAYOFYEAR(‘2019-12-19’)
在这里插入图片描述

MONTH(date):返回date的月份,范围1到12
SELECT MONTH(‘2019-12-19’)
在这里插入图片描述

DAYNAME(date):返回date的星期名字
SELECT DAYNAME(‘2019-12-19’)
在这里插入图片描述

MONTHNAME(date) :返回date的月份名字
SELECT MONTHNAME(‘2019-12-19’)
在这里插入图片描述

QUARTER(date):返回date一年中的季度,范围1到4
SELECT QUARTER(‘2019-12-19’)
在这里插入图片描述

WEEK(date,first) 对于星期天是一周的第一天的地方,有一个单个参数,返回date的周数,范围在0到52(一年中的第几周)
SELECT WEEK(‘2019-12-19’)
在这里插入图片描述
2个参数形式WEEK()允许你指定星期是否开始于星期天或星期一。如果第二个参数是0,星期从星期天开始,如果第二个参数是1,从星期一开始
SELECT WEEK(‘2019-12-19’,‘1’)
在这里插入图片描述

YEAR(date):返回date的年份,范围在1000到9999
SELECT YEAR(‘2019-12-19’)
在这里插入图片描述
NOW():以‘YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS格式返回当前的日期和时间
SELECT NOW()
在这里插入图片描述

HOUR(time):返回time的小时,范围是0到23
SELECT HOUR(‘14:40:35’)
在这里插入图片描述
MINUTE(time):返回time的分钟,范围是0到59
SELECT MINUTE(‘14:40:35’)
在这里插入图片描述

SECOND(time):回来time的秒数,范围是0到59。
SELECT SECOND(‘14:40:35’)
在这里插入图片描述

DATE_ADD(date,INTERVAL expr type) ,进行日期增加的操作,可以精确到秒
SELECT DATE_ADD(‘2019-12-19 23:59:59’,INTERVAL 1 SECOND)
在这里插入图片描述
SELECT DATE_ADD(‘2019-12-19 23:59:59’,INTERVAL "1:1"MINUTE_SECOND)
增加一分一秒
在这里插入图片描述

DATE_SUB(date,INTERVAL expr type) ,进行日期减少的操作,可以精确到秒
SELECT DATE_SUB(‘2019-12-19 23:59:59’,INTERVAL "1:1"MINUTE_SECOND)
减少一分一秒
在这里插入图片描述

CURTIME()以‘HH:MM:SS’或HHMMSS格式返回当前时间值
SELECT CURTIME()
在这里插入图片描述

4、控制流程函数

Case when 函数
SELECT CASE 11
WHEN 1 THEN ‘这是一’
WHEN 2 THEN ‘这是二’
ELSE ‘其他’
END;
在这里插入图片描述

如果没有else部分则返回null
IF(expr1,expr2,expr3)

如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定
SELECT IF(‘蔡徐坤’=‘鸡’,‘鸡你太美’,‘律师函警告’)
在这里插入图片描述

STRCMP(expr1,expr2)
如果字符串相同,STRCMP()返回0,如果第一参数根据当前的排序次序小于第二个,返回-1,否则返回1。
SELECT STRCMP(‘gtmdttkp0’,‘gtmdttkp1’)
在这里插入图片描述

5、系统信息函数

VERSION()函数返回数据库的版本号
SELECT VERSION()
在这里插入图片描述

CONNECTION_ID()函数返回服务器的连接数
也就是到现在为止MySQL服务的连接次数;
SELECT CONNECTION_ID()
在这里插入图片描述
DATABASE()和SCHEMA()返回当前数据库名
在这里插入图片描述
USER()、SYSTEM_USER()、SESSION_USER()、CURRENT_USER()和CURRENT_USER这几个函数可以返回当前用户的名称
SELECT USER() 其他查询结果均一致
在这里插入图片描述

获取字符串的字符集和排序方式的函数
CHARSET(str)函数返回字符串str的字符集,一般情况这个字符集就是系统的默认字符集;COLLATION(str)函数返回字符串str的字符排列方式
SELECT COLLATION(‘ad’)
在这里插入图片描述
SELECT CHARSET(‘ggg’)

获取最后一个自动生成的ID值的函数
SELECT LAST_INSERT_ID()
在这里插入图片描述

6、加密函数

加密函数PASSWORD(str)
SELECT PASSWORD(‘zyh666’)
在这里插入图片描述

加密函数MD5(str)
SELECT MD5(‘zyh666’)
在这里插入图片描述

加密函数ENCODE(str,pswd_str)
ENCODE(str,pswd_str)函数可以使用字符串pswd_str来加密字符串str。加密的结果是一个二进制数,必须使用BLOB类型的字段来保存它。
SELECT ENCODE(‘aaa’,‘zyh666’)
在这里插入图片描述

解密函数
SELECT DECODE(ENCODE(‘被加密字符串’,‘解密字符串’),‘解密字符串’)

DECODE(crypt_str,pswd_str)函数可以使用字符串pswd_str来为crypt_str解密。
crypt_str是通过ENCODE(str,pswd_str)加密后的二进制数据。字符串pswd_str应该与加密时的字符串pswd_str是相同的。下面使用DECODE(crypt_str,pswd_str)为ENCODE(str,pswd_str)加密的数据解密。
在这里插入图片描述

其他函数

格式化函数FORMAT(x,n)
FORMAT(x,n)函数可以将数字x进行格式化,将x保留到小数点后n位。这个过程需要进行四舍五入
SELECT FORMAT(2.6666,3)
在这里插入图片描述

不同进制的数字进行转换的函数
ASCII(s)返回字符串s的第一个字符的ASCII码;
SELECT ASCII(‘a’)
在这里插入图片描述

BIN(x)返回x的二进制编码;
SELECT BIN(10)
在这里插入图片描述

HEX(x)返回x的十六进制编码;
SELECT HEX(5545)
在这里插入图片描述

OCT(x)返回x的八进制编码;
SELECT OCT(88)
在这里插入图片描述

CONV(x,f1,f2)将x从f1进制数变成f2进制数
SELECT CONV(10,10,2)
在这里插入图片描述

IP地址与数字相互转换的函数
INET_ATON(IP)函数可以将IP地址转换为数字表示;INET_NTOA(n)函数可以将数字n转换成IP的形式。其中,INET_ATON(IP)函数中IP值需要加上引号。这两个函数互为反函数。
SELECT INET_NTOA(1045452152)
在这里插入图片描述
SELECT INET_ATON(‘192.168.10.12’)
在这里插入图片描述
加锁函数和解锁函数
SELECT GET_LOCK(str,timeout)函数定义一个名称为nam、持续时间长度为time秒的锁。如果锁定成功,返回1;如果尝试超时,返回0;如果遇到错误,返回NULL。
SELECT GET_LOCK(666,300)
在这里插入图片描述

RELEASE_LOCK(name)函数解除名称为name的锁。如果解锁成功,返回1;如果尝试超时,返回0;如果解锁失败,返回NULL;
SELECT RELEASE_LOCK(666)
在这里插入图片描述

IS_FREE_LOCK(name)函数判断是否使用名为name的锁。如果使用,返回0;否则,返回1。
SELECT IS_FREE_LOCK(666)
在这里插入图片描述

BENCHMARK(count,expr)函数将表达式expr重复执行count次,然后返回执行时间。该函数可以用来判断MySQL处理表达式的速度。
SELECT BENCHMARK(666*45+45/1216,10563599)
在这里插入图片描述

改变字符集的函数
SELECT CONVERT(expr USING transcoding_name)函数将字符串expr 的字符集变成 transcoding_name
SELECT CONVERT( ‘ABC’ USING GBK)
在这里插入图片描述

CAST(x AS type)和CONVERT(x,type)这两个函数将x变成type类型
这两个函数只对BINARY、CHAR、DATE、DATETIME、TIME、SIGNED INTEGER、UNSIGNED INTEGER这些类型起作用。但两种方法只是改变了输出值的数据类型,并没有改变表中字段的类型。

SELECT CAST(666 AS CHAR)
在这里插入图片描述
SELECT CONVERT(666,CHAR)
在这里插入图片描述
原文地址

发布了34 篇原创文章 · 获赞 21 · 访问量 1927

猜你喜欢

转载自blog.csdn.net/qq_44156131/article/details/103728173