第16讲:MySQL中常用的字符串函数以及基本使用

1.函数的概念以及常用的几种函数

所谓的函数指的是一段可以直接被另一个程序调用的程序或者代码,将这一段经常被调用的代码放到一个子集中,并且给这个子集命名,其他程序咋调用这段代码时,指定子集的名称,就可以运行相应的一段代码,这个子集就是函数。

无论是在各种编程语言还是数据库中都有函数的术语,例如在Shell脚本中,我们可以将经常执行的动作代码做成一个函数,既可以美观我们的代码,又可以减少代码的重复量,哪里需要使用这个逻辑调用函数名即可。

在MySQL数据库中,提供了大量的函数,像前面用到的聚合函数,也是MySQL函数中的一种,按照分类,MySQL常用的函数包含以下几种类型:

  • 字符串函数
  • 数值函数
  • 日期函数
  • 流程函数

函数的应用场景非常广泛,在实际工作中,为了更加方便的查询到需要的数据,会大量的使用MySQL提供的函数。

典型的几个案例:

1)公司OA系统会显示出员工入职公司的天数,在员工信息表中记录的都是员工的入职日期,例如2020-10-1,这个日期如何才能转换成具体至今的一个天数。

2)考试系统中对于考试成绩有类别划分,优、中、差,但是在数据库中记录的只是分数,如何才能更好的分类。

基于上述的典型案例,都可以通过MySQL自身提供的函数来快速查询,如果函数不满足我们的需求,还可以人为编写。

使用函数的命令格式:SELECT 函数名(内容)

2.常用的字符串函数以及基本使用

2.1.常用的几种字符串函数

字符串函数是处理内容为字符串的函数。

函数 格式 功能
CONCAT concat(字符串1,字符串2,…) 字符串拼接,将指定的所有字符串拼接成一个字符串
LOWER lower(字符串) 将字符串全部转换成小写
UPPER upper(字符串) 将字符串全部转换为大写
LPAD lpad(字符串,字符串总长度,要填充的内容) 左填充,意思就是在字符串的左边填充内容,首先计算出现有字符串的长度,然后根据指定的字符串总长度进行比较,如果小于总长度那么就在字符串的左侧进行填充,具体填充什么就要看第三部分指定的填充内容,可以是字符串也可以是数字、特殊符号等。
RPAD rpad(字符串,字符串总长度,要填充的内容) 右填充,意思就是在字符串的右边填充内容,首先计算出现有字符串的长度,然后根据指定的字符串总长度进行比较,如果小于总长度那么就在字符串的右侧进行填充,具体填充什么就要看第三部分指定的填充内容,可以是字符串也可以是数字、特殊符号等。
TRIM trim(字符串) 去除字符串头部和尾部包含的空格
SUBSTRING substring(字符串,起始位,截取的长度) 用于截取字符串的长度,首先指定要使用的字符串,然后指定起始位,这个起始位就是从第几个字符串处开始截取,第一个起始位是1,例如我们指定的字符串是jiangxl,要从第三个字符串处开始截取,截取两位,就可以这么写substring(jiangxl,3,2),最终输出的结果就是an

2.2.CONCAT将多个字符串拼接

CONCAT函数可以将多个字符串进行拼接,形成一个字符串。

select concat('hello','jiangxl');

concat函数可以将多个字符串进行拼接,效果如下,已经将两个字符串hello和jiangxl拼接在了一起。

image-20220511232213242

2.3.LOWER将字符串转换为小写

LOWER函数可以将指定的字符串转换为小写。

select lower('JIAngxl');

lower函数主要是将包含大写字母的字符串转换成了小写字母。

image-20220511232404904

2.4.UPPER将字符串转换为小写

UPPER函数可以将指定的字符串转换为大写。

select upper('jiangxl');

upper函数是将包含小写字母的字符串全部转换成了大写字母。

image-20220511232536613

2.5.LPAD/RPAD字符串左右填充

1)LPAD左填充

UPAD函数主要是在字符串的左侧填充内容,最终达到指定的字符串数量。

select lpad('江' , '5' , '-'); 

如下图所示,我们指定的字符串是江,要求字符串的长度为5,但是江只是一个字符串,指定的填充内容是-,最终通过lpad左填充函数判断字符串是否与指定的字符串数量一致,如果不一致,则在字符串的最左侧填充-,直到满足字符串的长度。

江字符串只有1个,因此会在江字符串左侧填充4个短横线。

image-20220511233441065

2)RPAD右填充

LPAD函数主要是在字符串的又侧填充内容,最终达到指定的字符串数量,LPAD与RPAD函数的意义相反。

select rpad('江' , '5' , '-'); 

结果如下,江字符串只有1个,我们指定了字符串的长度为5,通过右填充函数,在字符串的右侧填充4个短横线。

image-20220511233629049

2.6.TRIM去除字符串两侧的空格

指定一串字符串,在字符串的前后都添加很多个空格,通过TRIM函数去除字符串前后的空格。

select trim('  jiangxl devops dba python   ')

查询效果如下,字符串前后的空格都被去除了,但是字符串中间的空格不会被去除。

image-20220511234138730

2.7.SUBSTRING截取字符串

SUBSTRING函数用于截取字符串中的部分内容,根据指定的起始位,从起始位处开始截取字符串的内容,最后指定要截取的字符串长度,字符串截取的起始位从1开始。

字符串内容Jiangxl DevOps,从第一个起始位处开始截取,共截取5个长度。

select substring('Jiangxl DevOps',1,5);

查询效果如下,被截取了5个字符串。

image-20220511234634875

2.8.字符串函数的综合使用案例

通过字符串的函数,来实现批量调整人员的ID,当前每个人员的ID都是1/2/3/4/5这种单一数字的ID,我们希望每个人的ID都至少五位,即1调整为00001,10调整为00010。

调整人员的ID就需要用到UPDATE语句了,通过UPDATE语句配合LPAD做填充函数即可实现。

在使用函数处理字符串时,字符串可以是写死的值,也可以是一个字段。

update jszx_xgymjzxxb set id = lpad(id, 5, '0');

修改完成之后,效果如下,至少5个字段,不足五个字段,自动填充。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44953658/article/details/126826661
今日推荐