前言
✨欢迎来到小K的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(列|字符串,要查找的字符串,开始位置,出现位置) | 查找一个子字符串是否在指定的位置上出现 |
✨字符串函数练习:
-
UPPER
(列|字符串):将字符串每个字符转为大写,LOWER(列\|字符串)
:将字符串每个字符转为小写,将员工姓名分别转为大写和小写SELECT UPPER(ename),LOWER(ename) FROM emp;
-
CONCAT(str1,str2,...)
:将所有字符串连接成一个字符串,将员工的姓名和该员工老板的编号连接在一起SELECT CONCAT(ename,mgr) FROM emp;
-
REPLACE
:(列|字符串,新字符串) 使用新字符串替换旧字符串,将word替换为kingSELECT REPLACE('hello word','word','king') "替换";
-
LENGTH(列|字符串)
:求字符串长度SELECT LENGTH(123466);
-
SUBSTR(列|字符串,开始点[,长度])
: 字符串截取,截取ingSELECT SUBSTR('king word',2,3);
-
LEFT(str,len)
: 获取字符串左边len个字符组成的字符串,RIGHT(str,len)
:获取字符串右边len个字符组成的字符串,MID(str,pos,len)
:获取字符串中从pos(第几个)位置开始.长度为len的字符串,TRIM
(列|字符串):去掉字符串左右空格SELECT LEFT('king',2),RIGHT('king',2),MID('king',2,3);
-
ASCII
(字符) :返回与指定字符对应的十进制整数,CHR(数字)
返回与整数对应的字符SELECT ASCII('A'),CHAR(98);
-
RPAD
:(列|字符串,长度,填充字符),LPAD
:(列|字符串,长度,填充字符) 用指定的字符在字符串右或左填充,拓展:两边填充SELECT RPAD('king',10,'*'),LPAD('king',10,'*'); SELECT LPAD(RPAD('king',10,'*'),15,'*');
-
LTRIM
(字符串)、RTRIM
(字符串) :去掉字符串左或右的空格TRIM(列|字符串) 去掉字符串左右空格SELECT LTRIM(' king '),RTRIM(' king '),TRIM(' king ');
-
INSTR
:(列|字符串,要查找的字符串,开始位置,出现位置) 查找一个子字符串是否在指定的位置上出现SELECT INSTR("king",'ki');
✨字符串函数综合实践:
- 把员工姓名首字母大写
SELECT CONCAT(UPPER(LEFT(ename,1)),LOWER(SUBSTR(ename,2))) FROM emp;
- 查询出姓名长度是5的所有员工信息
SELECT *FROM emp WHERE LENGTH(ename)=5;
- 查询出员工姓名前三个字母是‘JAM’的员工
SELECT * FROM emp WHERE LEFT(ename,3)='JAM';
- 查询所有员工信息,但是不显示姓名的前三个字母
SELECT ename, SUBSTR(ename,4) FROM emp;
# 只显示后三个字符
SELECT ename,SUBSTR(ename,-4) FROM emp;
✨效果展示:
二、数学函数
函数 | 作用 |
---|---|
ROUND(数字[,保留位数]) | 根据指定的保留位数对小数进行四舍五入,如果不指定保留位数,则小数点之后的数字全部进行全部四舍五入 |
TRUNCATE(数字[,截取位数]) | 保留指定位数的小数,如果不指定,则表示不保留 |
CEIL(数字),CEILING(数字) | 对小数向上取整 |
FLOOR(数字) | 对小数向下取整 |
RAND([n]) | 随机返回0到1.0之间的小数,如果指定n每次产生的就都是重复的 |
✨数学函数练习:
-
ROUND
(数字[,保留位数]) : 根据指定的保留位数对小数进行四舍五入,如果不指定保留位数,则小数点之后的数字全部进行全部四舍五入SELECT ROUND(3.66); SELECT ROUND(3.66,1);
-
TRUNCATE
(数字[,截取位数]) : 保留指定位数的小数,如果不指定,则表示不保留SELECT TRUNCATE(3.889,1); #截断
-
CEIL(数字),CEILING(数字)
:对小数向上取整,FLOOR
(数字) 对小数向下取整SELECT CEIL(3.66),CEILING(3.99); SELECT FLOOR(3.89);
-
RAND([n])
:随机返回0到1.0之间的小数,如果指定n每次产生的就都是重复的SELECT RAND();
✨效果如下:
✨数学函数综合练习:
通过数据库的函数,生成一个六位数字的随机验证码。思路:先生成一个0~1之间的小数,然后乘以100万,然后截断,又因为是生成的0-1之间的小数,所以可能是0.0…这种情况,所以我们最进行填充,保证有六位
SELECT LPAD(TRUNCATE(RAND()*1000000,0),6,'0');
三、总结
✨~MySQL 函数会对传递进来的参数进行处理,并返回一个处理结果,也就是返回一个值。MySQL 包含了大量并且丰富的函数,咱们讲解几十个常用的,剩下的比较罕见的函数我们可以到「✨MySQL 参考手册」查询。