当前位置:网站首页>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;
边栏推荐
- 安全交付工程师
- Fundamentals of process management
- Halcon instance to opencvsharp (C openCV) implementation -- bottle mouth defect detection (with source code)
- Integerset of PostgreSQL
- 写作系列之contribution
- Chang'an chain learning notes - certificate model of certificate research
- This week's hot open source project!
- 企业中台建设新路径——低代码平台
- GEE升级,可以实现一件run tasks
- 一本揭秘字节万台节点ClickHouse背后技术实现的白皮书来了!
猜你喜欢
你不可不知道的Selenium 8种元素定位方法,简单且实用
Web3的先锋兵:虚拟人
Sensor: introduction of soil moisture sensor (xh-m214) and STM32 drive code
进程管理基础
leetcode:736. Lisp 语法解析【花里胡哨 + 栈 + 状态enumaotu + slots】
String or binary data will be truncated
B站6月榜单丨飞瓜数据UP主成长排行榜(哔哩哔哩平台)发布!
dotConnect for DB2数据提供者
#夏日挑战赛#数据库学霸笔记(下)~
Douban average 9 x. Five God books in the distributed field!
随机推荐
Web3对法律的需求
New generation cloud native message queue (I)
6-6漏洞利用-SSH安全防御
Lombok makes the pit of ⽤ @data and @builder at the same time
本周 火火火火 的开源项目!
遇到慢SQL该怎么办?(下)
unity中跟随鼠标浮动的面板,并可以自适应文字内容的大小
Integerset of PostgreSQL
unity 自定义webgl打包模板
Decryption function calculates "task state and lifecycle management" of asynchronous task capability
Tiflash source code reading (IV) design and implementation analysis of tiflash DDL module
GEE升级,可以实现一件run tasks
[paper reading | deep reading] graphsage:inductive representation learning on large graphs
MetaForce原力元宇宙佛萨奇2.0智能合约系统开发(源码部署)
一本揭秘字节万台节点ClickHouse背后技术实现的白皮书来了!
Recent applet development records
Argo workflows source code analysis
Web3's need for law
MFC Windows 程序设计[147]之ODBC数据库连接(附源码)
The third season of ape table school is about to launch, opening a new vision for developers under the wave of going to sea