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

news/2024/5/3 0:24:25/文章来源:https://blog.csdn.net/weixin_44953658/article/details/126826661

文章目录

    • 1.函数的概念以及常用的几种函数
    • 2.常用的字符串函数以及基本使用
      • 2.1.常用的几种字符串函数
      • 2.2.CONCAT将多个字符串拼接
      • 2.3.LOWER将字符串转换为小写
      • 2.4.UPPER将字符串转换为小写
      • 2.5.LPAD/RPAD字符串左右填充
      • 2.6.TRIM去除字符串两侧的空格
      • 2.7.SUBSTRING截取字符串
      • 2.8.字符串函数的综合使用案例

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

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

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

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

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

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

典型的几个案例:

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

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

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

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

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

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

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

函数格式功能
CONCATconcat(字符串1,字符串2,…)字符串拼接,将指定的所有字符串拼接成一个字符串
LOWERlower(字符串)将字符串全部转换成小写
UPPERupper(字符串)将字符串全部转换为大写
LPADlpad(字符串,字符串总长度,要填充的内容)左填充,意思就是在字符串的左边填充内容,首先计算出现有字符串的长度,然后根据指定的字符串总长度进行比较,如果小于总长度那么就在字符串的左侧进行填充,具体填充什么就要看第三部分指定的填充内容,可以是字符串也可以是数字、特殊符号等。
RPADrpad(字符串,字符串总长度,要填充的内容)右填充,意思就是在字符串的右边填充内容,首先计算出现有字符串的长度,然后根据指定的字符串总长度进行比较,如果小于总长度那么就在字符串的右侧进行填充,具体填充什么就要看第三部分指定的填充内容,可以是字符串也可以是数字、特殊符号等。
TRIMtrim(字符串)去除字符串头部和尾部包含的空格
SUBSTRINGsubstring(字符串,起始位,截取的长度)用于截取字符串的长度,首先指定要使用的字符串,然后指定起始位,这个起始位就是从第几个字符串处开始截取,第一个起始位是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个字段,不足五个字段,自动填充。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_7033.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

环境搭建+hello world!

php动态网页设计 1 环境下载搭建1.phpstudy服务器环境软件 下载链接:https://www.xp.cn/ 安装完毕之后可能需要重新配置端口号(默认为80,但是有可能被占用了,修改一个端口号即可) 启动apache、mysql新建一个网站(可能已经有个默认的,就用默认的) 点击管理,启动这个网站 然后…

nodejs基于微信小程序的图书销售商城系统 uniapp 小程序

伴随着社会以及科学技术的发展,互联网已经渗透在人们的身边,网络慢慢的变成了人们的生活必不可少的一部分,随着互联网的飞速发展,系统这一名词已不陌生,越来越多的书店都会使用系统来定制一款属于自己个性化的系统。书籍销售系统采用nodejs技术, mysql数据库进行开发,实现了首页…

用python找出400多万次KDJ金叉死叉,胜率有多高?附代码

引言: 邢不行的系列帖子“量化小讲堂”,通过实际案例教初学者使用python进行量化投Z,了解行业研究方向 这是邢不行第90期量化小课堂分享 作者 l 邢不行 不知道大家有没有发现,打开任意一个交易软件,无论是针对A股、美股、期货、…

spring+SpringMVC+MyBatis之配置多数据源

数据库准备   1、准备2个数据库,本例以mysql为例 在第一个数据库新建表user -- ---------------------------- -- Table structure for user -- ---------------------------- DROP TABLE IF EXISTS user; CREATE TABLE user (id int(11) NOT NULL AUTO_INCREME…

gateway过滤器

简介 1 作用: 过滤器就是在请求的传递过程中,对请求和响应做一些手脚 2 生命周期: Pre Post 3 分类: 局部过滤器(作用在某一个路由上) 全局过滤器(作用全部路由上) 在Gateway中, Filter的生命周期只有两个:“pre” 和 “post”。 PRE: 这种过滤器在请…

【蓝桥杯国赛真题24】Scratch货物运输 第十三届蓝桥杯 图形化编程scratch国赛真题和答案讲解

目录 scratch货物运输 一、题目要求 编程实现 二、案例分析 1、角色分析

PostGIS是什么

1. 什么是GIS(知识地图定位) 1.1. GIS概念 地理信息系统(Geographic Information System或 Geo-Information system,GIS)有时又称为“地学信息系统”。它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下&a…

注册中心对比和选型:Zookeeper、Eureka、Nacos、Consul和ETCD

转自:https://juejin.cn/post/7068065361312088095 下面是文章目录:注册中心基本概念 什么是注册中心? 注册中心主要有三种角色:服务提供者(RPC Server):在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态。 服务消费者(RPC Client):在启…

【Linux虚拟机安装】在VMware Workstation上安装ubuntu虚拟机

目录0、工具清单1、下载操作系统镜像2、创建虚拟机3、设置ubuntu系统0、工具清单 虚拟机软件:VMware Workstationubuntu镜像版本:Ubuntu 20.04.4 LTS (Focal Fossa)宿主机操作系统:Windows 10 专业版 1、下载操作系统镜像 官方下载网址&am…

氨基聚苯乙烯包覆硅胶微球SG-PS-NH2/聚苯乙烯/硫化镉PS/CdS复合材料/聚苯乙烯支载井冈霉素微球制备

今天小编给大家分享了氨基聚苯乙烯包覆硅胶微球SG-PS-NH2/聚苯乙烯/硫化镉PS/CdS复合材料/聚苯乙烯支载井冈霉素微球的制备方法,一起来看看! 小编分享-氨基聚苯乙烯包覆硅胶微球SG-PS-NH2的制备方法: 通过对硅胶微球进行聚苯乙烯包覆,然后功…

javascript为什么叫脚本语言

脚本script是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。 脚本通常可以由应用程序临时调用并执行。 各类脚本目前被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度&#xf…

为什么ASO很重要?

由于用户对多功能App的需求量增大,导致榜单影响力下滑,越来越多的用户通过搜索相关词来查找目标App。同时搜索对排名的影响权重也被各家应用商店加大。数据库显示,用户越来越习惯直接搜索关键词来搜索想要的应用。各应用商店收录热词现阶段有…

压缩网络相关

同样搬运模式 勿怪呀 大佬们 自从深度学习(Deep Learning)开始流行,已经在很多领域有了很大的突破,尤其是AlexNet一举夺得ILSVRC 2012 ImageNet图像分类竞赛的冠军后,卷积神经网络(CNN)的热潮便…

【JY】YJK前处理参数详解及常见问题分析:控制信息(二)

点击蓝字 求求关注【写在前文】本文介绍计算控制信息之控制信息。【计算信息参数详解】一、控制信息A区参数详解1、水平力与整体坐标夹角该参数为地震作用、风荷载计算时的X正向与结构整体坐标系下X轴的夹角,逆时针方向为正,单位为度。常见问题&#xf…

10、MyBatis-Plus 多数据源

第一篇:1、Mybatis-Plus 创建SpringBoot项目 第二篇:2、Mybatis-Plus 测试增、删、改、查 第三篇:3、Mybatis-Plus 自定义sql语句 第四篇:4、Mybatis-Plus 通用service的操作 第五篇:5、Mybatis-Plus 常用注解 第六篇&…

004-GoingDeeperConvolutions2014(googLeNet)

Going Deeper with Convolutions #paper1. paper-info 1.1 MetadataAuthor:: [[Christian Szegedy]], [[Wei Liu]], [[Yangqing Jia]], [[Pierre Sermanet]], [[Scott Reed]], [[Dragomir Anguelov]], [[Dumitru Erhan]], [[Vincent Vanhoucke]], [[Andrew Rabinovich]] 作者机…

UNIAPP----video标签层级问题的三种解决方法

uniapp的app端,video标签层级过高,无法轻易被遮盖。 三种解决方法,真机测试没问题。代码复制即可。 1.cover-view或者cover-image,放在video标签内使用,子绝父相 缺点:只能改变cover-view样式&#xff0…

算法落地思考:如何让智能运维更智能

嘉宾 | 王鹏 整理人 | 西狩xs 出品 | CSDN云原生 AIOps是人工智能与运维的结合,能够基于已有的运维数据,利用人工智能算法,通过机器学习的方式帮助企业提升运维效率,解决自动化运维无法管理的问题。 2022年8月30日&#xff0…

spring底层原理初探

一,spring原理初探 1,bean的创建生命周期 userService.class --> 推断构造方法 --> 实例化对象 --> 依赖注入(属性填充) --> 初始化前(PostConstruct) --> 初始化 (Initializingbean) --> 初始化后(AOP,bean的后置处理器…

Wireshark分析https流量

这里写自定义目录标题本文介绍使用wireshark分析https流量的方法。适用chromium内核的浏览器和firefox浏览器,前提是这些浏览器内核都支持如下选项: –ssl-key-log-file 浏览器配置 添加启动参数 例如: firefox.exe --ssl-key-log-filec:/s…