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);

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

相关推荐
黎阳之光3 分钟前
黎阳之光:视频孪生领跑者,铸就中国数字科技全球竞争力
大数据·人工智能·算法·安全·数字孪生
阿里小阿希23 分钟前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神28 分钟前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员38 分钟前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java1 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿1 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb
不知名的老吴1 小时前
Redis的延迟瓶颈:TCP栈开销无法避免
数据库·redis·缓存
YOU OU1 小时前
三大范式和E-R图
数据库
一江寒逸1 小时前
零基础从入门到精通MySQL(上篇):筑基篇——吃透核心概念与基础操作,打通SQL入门第一关
数据库·sql·mysql
@土豆1 小时前
Ubuntu 22.04 运行 Filebeat 7.11.2 崩溃问题分析及解决文档
linux·数据库·ubuntu