SQL之表的字符串内置函数详解

目录

[1. 字符串函数](#1. 字符串函数)

[1.1 charset(str)](#1.1 charset(str))

[1.2 concat(string2 , ...)](#1.2 concat(string2 [, …]))

[1.3 instr(string, substring)](#1.3 instr(string, substring))

[1.4 ucase(string2)](#1.4 ucase(string2))

[1.5 lcase(string2)](#1.5 lcase(string2))

[1.6 left(string2, length)](#1.6 left(string2, length))

[1.7 length(string)](#1.7 length(string))

[1.8 replace(str, search_str, replace_str)](#1.8 replace(str, search_str, replace_str))

[1.9 strcmp(string1, string2)](#1.9 strcmp(string1, string2))

[1.10 substring(str, position ,length)](#1.10 substring(str, position [,length]))

[1.11 ltrim(string) rtrim(string) trim(string)](#1.11 ltrim(string) rtrim(string) trim(string))


在这篇文章中,我会讲解表的字符串类的内置函数。

1. 字符串函数

下面这个表格是我们在接下来要进行讲解的函数,我们现在这里简单介绍了它们的名字以及他们的作用,这边之所以这么设计是因为我们学到后面的话这些函数我们已经了解了,这样先写在前面就方便我们查阅。

函数 函数
charset(str) 返回字符串字符集
concat(string2 , ...) 连接字符串
instr(string, substring) 返回 substring 在 string 中出现的位置,没有返回 0
ucase(string2) 转换成大写
lcase(string2) 转换成小写
left(string2, length) 从 string2 中的左边起取 length 个字符
length(string) string 的长度
replace(str, search_str, replace_str) 在 str 中用 replace_str 替换 search_str
strcmp(string1, string2) 逐字符比较两字符串大小
substring(str, position ,length) 从 str 的 postion 开始,取 length 个字符
ltrim(string) rtrim(string) trim(string) 去除前空格或后空格

这张图里面的表是我们接下来在内容中所使用的。

1.1 charset(str)

这个函数的作用就是获取要求的那一列的字符集。

语法:

sql 复制代码
select charset(列名) from 表名;

我们看下面这张图,我们这样使用就可以了。

PS:一般来说的话我们的编码都是utf8的。

1.2 concat(string2 , ...)

这个函数的话本质我认为就是临时性的字符串拼接。可以把一个表里面的内容拼接在一起,当然就算不是字符串类型的意义可以拼接到一起。

语法:

sql 复制代码
select concat(想要拼接的内容) as 要取的名字 from 表名;

我们来看下面这个图片,通过这样的方式就可以把代码拼接在一起。

1.3 instr(string, substring)

这个函数的话就是返回substring在string中出现的位置。

语法:

sql 复制代码
select instr(字符串,字符);
sql 复制代码
select instr(表内容,字符) form 表名;

我们看下面这个图片,通过这样的方式我们就可以找到o这个字符在helloworld这个字符串里面第一次出现的位置。当然如果这个字符出现多次的话会返回第一次出现的位置下标。

我们看下面这个图片,这个函数会按照这个列的行数来返回,又因为只有第一列有a,其他两列没有,所以返回的值是1,0,0。

1.4 ucase(string2)

这个函数的话就是把字符串转换成大写。

语法:

sql 复制代码
select ucase(字符串);
sql 复制代码
select ucase(表列) from 表名;

我们看下面这个图片,这样写就可以返回字符串的大写了。

我们看下面这个图片,这样写就可以返回表中字符串的大写了。

1.5 lcase(string2)

这个函数的话就是把字符串转换成小写。

语法:

sql 复制代码
select lcase(字符串);
sql 复制代码
select lcase(表列) from 表名;

我们看下面这个图片,这样写就可以返回字符串的小写了。

我们看下面这个图片,这样写就可以返回表中字符串的小写了。

1.6 left(string2, length)

这个函数的话很简单,就是返回前length个字符。

语法:

sql 复制代码
select left(string2, length);

我们看下面这个图片。这样就可以返回AAAaaa的前4个了。

要从右边开始去的话直接把left换成right就好。

1.7 length(string)

这个函数的话就是返回里面字符的长度。

语法:

sql 复制代码
select length(string);

1.8 replace(str, search_str, replace_str)

这个函数的话就是替换字符串里面的内容。

语法:

sql 复制代码
replace(原字符串, 要替换的子串, 替换后的子串)

我们看下面这个图片,通过这样的方式就可以完成替换,最重要的是在这里是区分大小写的。

1.9 strcmp(string1, string2)

这个函数的话就是逐字的比较两个字符串的大小(以ASCII码来比较大小)

语法:

sql 复制代码
select strcmp(string1, string2);
  1. 返回 0 :当两个字符串完全相同时(长度和每个字符都一致)。

  2. 返回 1 :当 string1 大于 string2 时(比较时从第一个不同的字符开始,string1 的字符 ASCII 码更大)。

  3. 返回 -1 :当 string1 小于 string2 时(同理,第一个不同字符的 ASCII 码更小)。

我们看下面这个图片,这样子返回的就是0。

1.10 substring(str, position ,length)

这个函数的话我觉得就类似于可以选开始位置的left()函数。

语法:

sql 复制代码
select substring(str, position [,length]);

我们看下面这个图片,就是从第三个位置开始往后获取4个。

1.11 ltrim(string) rtrim(string) trim(string)

这个的话实际上是三个函数,只不过功能意义,只有一些细微上的差别,所以这边就直接放在一起了。他们三个都是用来去除字符串的空格的,只不过ltrim是去除字符串左边的空格,rtrim是去除字符串右边的空格,trim是去除字符串两边的空格。

语法:

sql 复制代码
select trim(string);

我们看下面这个图片,其实这两个都实现了去重,只不过上面那个名字太大了,所以显的好像后面那部分没有去一样。

相关推荐
Leo.yuan6 小时前
企业Data Agent架构选型:帆软Dora基于NL2BI的现有BI体系复用方案
大数据·人工智能
余槐i6 小时前
PostgreSQL 函数索引报错 must be immutable:3种绕法与代价
数据库·后端·sql·postgresql·性能优化
数据库小学妹6 小时前
PostgreSQL表膨胀怎么办?autovacuum清不动的根因与排查命令
数据库·postgresql·表膨胀·mvcc·数据库运维
mister_guo6 小时前
MySQL-1267错误:排序规则冲突的原因与解决方案
数据库·mysql
骇客野人7 小时前
在麒麟操作系统上 分别安装 jdk1.8, 达梦数据库,redis ,memcache 的操作实施方案和步骤
数据库·redis·memcached
Elastic 中国社区官方博客7 小时前
一条 ES|QL 查询,涵盖365天的审计日志:在热数据和可搜索快照上执行相同的搜索
大数据·运维·服务器·elasticsearch·搜索引擎·全文检索
美狐美颜SDK开放平台8 小时前
直播APP如何实现美白滤镜功能?视频美颜SDK技术开发方案详解
前端·数据库·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
亚川楼宇自控系统数据中心厂家8 小时前
事故风机监控:守护机房电池间等特殊区域的安全底线
大数据·安全
科技看点说9 小时前
2026年AI安全上市公司梳理:产品、认证与商业化进展
大数据·人工智能
花间相见10 小时前
【计算基础|MySQL01】【上手】安装连接、数据类型与建库建表
数据库·后端