当前位置:网站首页>MySQL --- 常用函数 - 字符串函数
MySQL --- 常用函数 - 字符串函数
2022-07-06 18:52:00 【小雪菜本菜】
函数
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(列|字符串,要查找的字符串,开始位置,出现位置) | 查找一个子字符串是否在指定的位置上出现 |
| UPPER(列|字符串) | 将字符串每个字符转为大写 |

如果用 emp 表可以发现测试数据输出了很多次,因为 emp 表中有很多条数据,每一条数据都要执行一下

使用MySQL中的虚拟表,只有一行数据,正好可以用来进行测试函数,也可以不写
可以发现:如果大小写相结合,使用 LOWER 后全部变成小写
| CONCAT(str1,str2,. . . ) | 将所有字符串连接成一个字符串 |
字符串用单引号和双引号都可以
如果字符串中有引号 ' ' ',需要用转义字符 ' \ ' 进行转义

| REPLACE(列|字符串,旧字符串,新字符串) | 使用新字符串替换旧字符串 |

| LENGTH(列|字符串) | 求字符串长度 |

获取字符串左边 2 个字符组成的字符串、获取字符串右边 2 个字符组成的字符串、获取字符串中间 2 个字符组成的字符串
| LEFT(str,len) | 获取字符串左边len个字符组成的字符串 |
| RIGHT(str,len) | 获取字符串右边len个字符组成的字符串 |
| MID(str,pos,len) | 获取字符串中从pos(第几个)位置开始,长度为len的字符串 |
SELECT LEFT('hello',2),RIGHT('hello',2),MID('case',2,2);
| ASCII(字符) | 返回与指定字符对应的十进制整数 |
| CHR(数字) | 返回与整数对应的字符 |
SELECT ASCII('A');
SELECT CHAR(65);
RPAD(列|字符串,长度,填充字符) LPAD(列|字符串,长度,填充字符) | 用指定的字符在字符串右或左填充 |
SELECT RPAD('Hello',10,'*'),LPAD('Hello',10,'*');

在左右两边各填充 5 个 ' * ',先填充右边,把整个当成一个字符串,在前面填充 ' * '
SELECT LPAD(RPAD('Hello',10,'*'),15,'*');
| LTRIM(字符串)、RTRIM(字符串) | 去掉字符串左或右的空格 |
| TRIM(列|字符串) | 去掉字符串左右空格 |
SELECT LTRIM(' 123 *') 左,RTRIM('* 123 ') 右,TRIM(' 123 ') AS 'All';
不能去掉字符串中间的空格

| INSTR(列|字符串,要查找的字符串,开始位置,出现位置) | 查找一个子字符串是否在指定的位置上出现 |
SELECT INSTR('我爱C语言','C语言');
没有查找到的情况

1.把员工姓名首字母大写 Smith
SELECT UPPER(LEFT(ename,1)) FROM emp;
SELECT UPPER(LEFT(ename,1)),LOWER(SUBSTR(ename,2)) FROM emp;
SELECT CONCAT(UPPER(LEFT(ename,1)),LOWER(SUBSTR(ename,2))) FROM emp;
2.查询出姓名长度是 5 的所有员工信息 或者使用模糊查询 LIKE MySQL --- 数据库查询 - 条件查询_小雪菜本菜的博客-CSDN博客
SELECT * FROM emp WHERE LENGTH(ename)=5;

3.查询出员工姓名前三个字母是'JAM'的员工,截取开始点和长度
SELECT * FROM emp WHERE SUBSTR(ename,1,3)='JAM';
4.查询所有员工信息,但是不显示姓名的前三个字母
| SUBSTR(列|字符串,开始点[,长度]) | 字符串截取 |
SELECT ename 原始字符串,SUBSTR(ename,3) AS '子串' FROM emp;
查询所有员工信息,但是只显示姓名的后三个字母
| SUBSTR(列|字符串,开始点[,长度]) | 字符串截取 |
SELECT ename 原始字符串,SUBSTR(ename,-3) AS '子串' FROM emp;
边栏推荐
- Recommended collection!! Which is the best flutter status management plug-in? Please look at the ranking list of yard farmers on the island!
- The last line of defense of cloud primary mixing department: node waterline design
- Leetcode:minimum_ depth_ of_ binary_ Tree solutions
- 6-6漏洞利用-SSH安全防御
- leetcode:736. Lisp 语法解析【花里胡哨 + 栈 + 状态enumaotu + slots】
- go swagger使用
- [leetcode]Search for a Range
- 【Node学习笔记】chokidar模块实现文件监听
- Draco - glTF模型压缩利器
- 企业中台建设新路径——低代码平台
猜你喜欢
随机推荐
1个月增长900w+播放!总结B站顶流恰饭的2个新趋势
unity中跟随鼠标浮动的面板,并可以自适应文字内容的大小
[leetcode] day97 remove linked list elements
Zhang Ping'an: accelerate cloud digital innovation and jointly build an industrial smart ecosystem
Google Earth Engine(GEE)——Landsat 全球土地调查 1975年数据集
本周 火火火火 的开源项目!
The cities research center of New York University recruits master of science and postdoctoral students
MetaForce原力元宇宙佛萨奇2.0智能合约系统开发(源码部署)
所谓的消费互联网仅仅只是做行业信息的撮合和对接,并不改变产业本身
How do I dump SoapClient requests for debugging- How to dump SoapClient request for debug?
#yyds干货盘点# 解决名企真题:最大差值
4--新唐nuc980 挂载initramfs nfs文件系统
阿里云易立:云原生如何破解企业降本提效难题?
postgresql之整体查询大致过程
unity webgl自适应网页尺寸
Processus général de requête pour PostgreSQL
The boss is quarantined
进程管理基础
FLIR blackfly s usb3 industrial camera: how to use counters and timers
Argo workflows source code analysis








