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"。
相关推荐
Jacky(易小天)7 分钟前
MongoDB比较查询操作符中英对照表及实例详解
数据库·mongodb·typescript·比较操作符
Karoku0661 小时前
【企业级分布式系统】ELK优化
运维·服务器·数据库·elk·elasticsearch
莫叫石榴姐1 小时前
数据科学与SQL:组距分组分析 | 区间分布问题
大数据·人工智能·sql·深度学习·算法·机器学习·数据挖掘
小技与小术2 小时前
数据库表设计范式
数据库·mysql
安迁岚2 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作
运维·服务器·数据库·sql·mysql
安迁岚2 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验九 触发器
数据库·sql·mysql·oracle·实验报告
Loganer2 小时前
MongoDB分片集群搭建
数据库·mongodb
LKID体2 小时前
Python操作neo4j库py2neo使用之创建和查询(二)
数据库·python·neo4j
刘大浪3 小时前
后端数据增删改查基于Springboot+mybatis mysql 时间根据当时时间自动填充,数据库连接查询不一致,mysql数据库连接不好用
数据库·spring boot·mybatis
一只爱撸猫的程序猿3 小时前
简单实现一个系统升级过程中的数据平滑迁移的场景实例
数据库·spring boot·程序员