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

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

相关推荐
F***74171 小时前
数据库课设---酒店管理系统(MySQL、VBNet)
android·数据库·mysql
亿坊电商1 小时前
24H-无人共享KTV:如何实现安全的自助服务?
大数据·物联网·安全
1***t8271 小时前
MySQL 8.0安装
数据库·mysql·adb
c***69301 小时前
使用mysql报Communications link failure异常解决
数据库·mysql
t***q331 小时前
关于Mysql 中 Row size too large (> 8126) 错误的解决和理解
数据库·mysql
马克学长2 小时前
SSM贫困区教育资源捐赠平台m6y9w(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·教育资源捐赠·贫困区帮扶
草莓熊Lotso4 小时前
Git 分支管理:从基础操作到协作流程(本地篇)
大数据·服务器·开发语言·c++·人工智能·git·sql
@游子4 小时前
SQL注入语法和介绍(一)
数据库·oracle
蒋士峰DBA修行之路7 小时前
实验十三 WDR诊断报告
数据库