SQL 文本函数

前言

SQL文本函数是SQL语言中非常有用的一类函数,它们用于处理和操作字符串数据。在实际应用中,我们经常需要对数据库中的文本数据进行各种操作,比如提取子串、替换子串、拼接字符串等等。而SQL文本函数可以帮助我们轻松地完成这些任务,提高我们的工作效率。

目录

前言

常用简单函数

查找子串位置

🍁LOCATE()

字符串截取

🍁LEFT()

🍁RIGHT()

🍁SUBSTRING()

🍁SUBSTRING_INDEX()

字符串替换

🍁REPLACE()



常用简单函数

函数 说明
CONCAT() 将两个或多个字符串连接在一起。
LENGTH() 返回字符串的长度。
UPPER() 将字符串转换为大写字母。
LOWER() 将字符串转换为小写字母。
LTRIM() 删除字符串左侧的空格。
RTRIM() 删除字符串右侧的空格。
TRIM() 删除字符串两侧的空格。
REVERSE() 反转字符串。

查找子串位置

🍁LOCATE()

语法:

sql 复制代码
LOCATE(substring, string, [start_position])

其中:

  • substring是要查找的子字符串。
  • string是主字符串。
  • start_position(可选)是开始搜索的位置,默认为1。

该函数返回子串 substring 在字符串 string 中第一次出现的位置,如果字符 substring 在字符串string 中不存在,则返回0;

示例:

sql 复制代码
mysql> SELECT LOCATE('world', 'Hello world!');
-- 返回结果为6,因为子字符串"world"在主字符串"Hello world!"中的位置是从第6个字符开始的。

POSITION() 与LOCATE()函数类似,但POSITION()函数是MySQL的扩展功能,不是标准SQL中的一部分。

其语法:

sql 复制代码
POSITION(substring IN string)

其中:

  • substring是要查找的子字符串。
  • string是主字符串。

字符串截取

🍁LEFT()

语法:

sql 复制代码
LEFT(string, length)

其中:

  • string 是要提取字符的字符串。
  • length 是要提取的字符数。

该函数用于从字符串的左侧提取指定数量的字符。如果提取的字符数超过了字符串的长度,那么将返回整个字符串。

示例:

sql 复制代码
mysql> SELECT LEFT('Hello World', 5);
-- 返回结果为 "Hello",因为从字符串 "Hello World" 的左侧提取了前5个字符。

🍁RIGHT()

该函数与LEFT()函数类似,不同的是RIGHT()函数用于从字符串的右侧提取指定数量的字符。


🍁SUBSTRING()

语法:

sql 复制代码
SUBSTRING(string, start_position, length)

其中:

  • string 是要提取子字符串的原始字符串。
  • start_position 是子字符串的起始位置(从1开始计数)。
  • length 是要提取的字符数。

该函数用于提取字符串的子字符串。如果省略了 length 参数,那么将返回从 start_position 到原始字符串末尾的所有字符。

示例:

sql 复制代码
mysql> SELECT SUBSTRING('Hello World', 7, 5);
-- 返回结果为 "World",因为从字符串 "Hello World" 的第7个字符开始提取了后5个字符。

🍁SUBSTRING_INDEX()

语法:

sql 复制代码
SUBSTRING_INDEX(string, delimiter, count)

其中:

  • string 是要提取子字符串的原始字符串。
  • delimiter 是分隔符,用于指定要提取子字符串的位置。
  • count 是要提取的子字符串的数量。

该函数返回字符delimiter 在str中第count 次出现位置之前的字符串。如果省略了 count 参数,那么将返回从 delimiter 开始到原始字符串末尾的所有字符。若count为负数,将从末尾往前开始计数。

示例:

sql 复制代码
mysql> SELECT SUBSTRING_INDEX('www.example.com', '.', 2);
-- 返回结果为 "www.example"

    -> SELECT SUBSTRING_INDEX('www.example.com', '.', -2);
-- 返回结果为 "example.com"

字符串替换

🍁REPLACE()

语法:

sql 复制代码
REPLACE(string, from_substring, to_substring)

其中:

  • string 是要进行替换操作的原始字符串。
  • from_substring 是要被替换的子串。
  • to_substring 是用于替换的新子串。

该函数将返回一个新的字符串,其中所有的 from_substring 都被替换为 to_substring。如果原始字符串中没有找到 from_substring,则返回原始字符串。

示例:

sql 复制代码
mysql-> SELECT REPLACE('Hello World', 'World', 'MySQL');
-- 返回结果为 "Hello MySQL",因为将字符串 "Hello World" 中的 "World" 替换为了 "MySQL"。
相关推荐
这个DBA有点耶11 小时前
NULL不是空——数据库里最反直觉的设计,90%新人踩过的坑
数据库·mysql·代码规范
这个DBA有点耶13 小时前
AI写的SQL跑崩了生产库,这锅谁背?
数据库·人工智能·程序员
镜舟科技14 小时前
Databricks 再提 LTAP,AI 时代的数据底座为何重回大一统叙事?
数据库·架构·agent
Databend15 小时前
从湖仓升级为 Agent 时代的数据控制面,Snowflake 和 Databricks 有哪些布局
大数据·数据库·agent
ClouGence18 小时前
SQL Server CDC 能放到 Always On 备库读吗?一文讲透原理与实践
数据库·sql server
先吃饱再说1 天前
存储的进化:从 MySQL 到浏览器缓存,数据到底住在哪?
数据库
Nturmoils1 天前
字段太多看不全,ksql 的展开模式和输出控制怎么用
数据库·后端
Databend2 天前
Agent 轨迹分析与归因的数据工程实践
大数据·数据库·agent
这个DBA有点耶2 天前
SQL改写进阶:标量子查询的“隐形代价”与消除实战
数据库·mysql·架构
smallyoung2 天前
数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南
数据库·mysql·postgresql