MySQL学习-函数(三)

151 阅读4分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第23天,点击查看活动详情

前言

上篇我们学习了一部分MySQL中的函数。有兴趣的小伙伴可以阅读(# MySQL学习-函数(二))。
下面继续学习MySQL中的函数。

数值函数

指数和对数

函数用法
POW(x, y), POWER(x, y)返回x的y次方
EXP(x)返回e的x次方, 其中e是一个常数,2.718281828459045
LN(x), LOG(x)返回以e为底的x的对数,当x<=0时, 返回的结果为NULL
LOG10(x)返回以10为底的x的对数,当x<=0时, 返回的结果为NULL
LOG2(x)回以2为底的x的对数,当x<=0时, 返回的结果为NULL

示例一

SELECT POW(2, 5), POWER(2, 4), EXP(2)
FROM DUAL
POW(2, 5)POWER(2, 4)EXP(2)
32167.38905609893065

示例很简单,结果都是我们学过的公式计算得出的结果。

示例二

SELECT LN(EXP(2)), LOG(EXP(2)), LOG10(10), LOG2(4)
FROM DUAL
LN(EXP(2))LOG(EXP(2))LOG10(10)LOG2(4)
2212

上面的示例结果也可以通过我们所学公式计算得到。

进制转换

函数用法
BIN(x)返回x的二进制编码
HEX(x)返回x的十六进制编码
OCT(x)返回x的八进制编码
CONV(x, f1, f2)返回f1进制数变成f2进制数

示例三

SELECT BIN(10), HEX(10), OCT(10), CONV(10, 10, 8)
FROM DUAL
BIN(10)HEX(10)OCT(10)CONV(10, 10, 8)
1010A1212

CONV将十进制的10转换成八进制,结果和OCT(10)的一样,都是12。

字符串函数

函数用法
ASCII(x)返回字符串S中的第一个字符的ASCII码值
CHAR_LENGTH(s)返回字符串s的字符数。作用与CHARACTER_LENGTH(s)相同
LENGTH(s)返回字符串s的字节数,和字符集有关
CONCAT(s1,s2,…,sn)连接s1,s2,…,sn为一个字符串
CONCAT_WS(x, s1,s2,…,sn)同CONCAT(s1,s2,…)函数,但是每个字符串之间要加上x
INSERT(str, idx, len, replacestr)将字符串str从第idx位置开始,len个字符长的子串替换为字符串replacestr
REPLACE(str, a, b)用字符串b替换字符串str中所有出现的字符串a
UPPER(s) 或 UCASE(s)将字符串s的所有字母转成大写字母
LOWER(s) 或LCASE(s)将字符串s的所有字母转成小写字母
LEFT(str,n)返回字符串str最左边的n个字符
RIGHT(str,n)返回字符串str最右边的n个字符
LPAD(str, len, pad)用字符串pad对str最左边进行填充,直到str的长度为len个字符
RPAD(str ,len, pad)用字符串pad对str最右边进行填充,直到str的长度为len个字符
LTRIM(s)去掉字符串s左侧的空格
RTRIM(s)去掉字符串s右侧的空格
TRIM(s)去掉字符串s开始与结尾的空格
TRIM(s1 FROM s)去掉字符串s开始与结尾的s1
TRIM(LEADING s1 FROM s)去掉字符串s开始处的s1
TRIM(TRAILING s1 FROM s)去掉字符串s结尾处的s1
REPEAT(str, n)返回str重复n次的结果
SPACE(n)返回n个空格
STRCMP(s1,s2)比较字符串s1,s2的ASCII码值的大小
SUBSTR(s,index,len)返回从字符串s的index位置其len个字符,作用与SUBSTRING(s,n,len)、MID(s,n,len)相同
LOCATE(substr,str)返回字符串substr在字符串str中首次出现的位置,作用于POSITION(substr IN str)、INSTR(str,substr)相同。未找到,返回0
ELT(m,s1,s2,…,sn)返回指定位置的字符串,如果m=1,则返回s1,如果m=2,则返回s2,如果m=n,则返回sn
FIELD(s,s1,s2,…,sn)返回字符串s在字符串列表中第一次出现的位置
FIND_IN_SET(s1,s2)返回字符串s1在字符串s2中出现的位置。其中,字符串s2是一个以逗号分隔的字符串
REVERSE(s)返回s反转后的字符串
NULLIF(value1,value2)比较两个字符串,如果value1与value2相等,则返回NULL,否则返回value1

今天先熟悉一下字符串函数的定义,明天分别举例深入学习。