函数-1-字符串函数

函数-1-字符串函数

  • 字符串函数
    • 函数
      • 语法
    • 字符串函数的使用
      • 字符串函数语法
      • 案例演示
      • 实战练习

字符串函数

函数

函数是一段可以直接被另一端程序调用的程序或代码

语法

SELECT 函数名(参数名)

大家可能会有那么一点点疑惑, 为什么执行函数还需要加上SELECT语句? 总结一下, 因为SELECT语句是MySQL中执行函数并获取结果的标准方式,它能够方便地与其他SQL操作结合,并以简洁的语法完成各种计算和数据处理任务。

字符串函数的使用

MySQL中内置了很多字符串函数, 常用的几个如下:

函数功能
CONCAT(S1, S2, …, Sn)字符串拼接, 将 S1, S2, …, Sn 拼接成一个字符串
LOWER(str)将字符串 str 全部转为小写
UPPER(str)将字符串 str 全部转为大写
LPAD(str, n, pad)左填充, 用字符串 pad 对 str 的左边进行填充, 达到 n 个字符串长度
RPAD(str, n, pad)右填充, 用字符串 pad 对 str 的右边进行填充, 达到 n 个字符串长度
TRIM(str)去掉字符串头部和尾部的空格
SUBSTRING(str, start, len)返回字符串 str 从 start 位置起的 len 个长度的字符串

字符串函数语法

  1. CONCAT 函数

    SELECT CONCAT(参数)
    
  2. LOWER 函数

    SELECT LOWER(参数)
    
  3. UPPER 函数

    SELECT UPPER(参数)
    
  4. LPAD 函数

    SELECT LPAD(参数)
    
  5. RPAD 函数

    SELECT RPAD(参数)
    
  6. TRIM 函数

    SELECT TRIM(参数)
    

案例演示

  1. 拼接HelloWorld两个字符串

    select concat('Hello', 'World');
    

    拼接语句

    拼接结果

  2. Hello, World 字符串所有字母转换成小写字母

    select lower('Hello, World');
    

    字符串小写示例语句

    字符串小写示例语句执行结果

  3. Hello, World 字符串所有字母转换成大写字母

    select upper('Hello, World');
    

    字符串大写示例语句

    字符串大写示例语句执行结果

  4. 使用 @ 符号对字符串 Hello, World 进行左填充,使其总长度达到 20 个字符

    select lpad('Hello, World', 20, '@');
    

    左补全函数语句

    左补全函数执行结果

  5. 使用 @ 符号对字符串 Hello, World 进行右填充,使其总长度达到 20 个字符

    select rpad('Hello, World', 20, '@');
    

    右补全函数语句

    左补全函数执行结果

  6. 去除字符串 Hello, World 首尾的空格

    select trim(' Hello, World ');
    

    去除首尾空格语句

    去除首尾空格执行结果

  7. 从字符串 Hello, World 中提取子串,得到 llo, Wor

    select substring('Hello, World', 3, 8);
    

    切片函数语句

    切片函数结果

    注意, 此处的起始索引是从1开始算的, 所以需要注意我们切片的时候的起始索引应该是3, 而不是2

实战练习

首先我们需要准备一下数据, 在 test 库的 emp_info 中更新一下数据, 进行如下替换即可

INSERT INTO emp_info (id, work_no, name, gender, age, id_card, work_address, entry_time)
VALUES (1, '1', '张伟', '男', 28, '11010519950101234X', '北京市海淀区中关村科技园', '2020-03-15'),(2, '2', '李娜', '女', 32, '310115199209076542', '上海市浦东新区张江高科技园区', '2019-07-22'),(3, '3', '王超', '男', 25, '440305199801129876', '深圳市南山区高新科技园', '2021-11-05'),(4, '4', '赵敏', '女', 29, '510107199412258765', '成都市高新区天府软件园', '2020-09-18'),(5, '5', '陈阳', '男', 35, '330106198911034567', '杭州市西湖区云栖小镇', '2018-05-30'),(6, '6', '刘婷', '女', 27, '320506199612127890', '苏州市工业园区人工智能产业园', '2022-02-14'),(7, '7', '杨帆', '男', 31, '420111199211156789', '武汉市东湖新技术开发区', '2019-10-21'),(8, '8', '周雨', '女', 26, '440111199712098765', '广州市天河区智慧城', '2021-08-03'),(9, '9', '吴强', '男', 33, '500106198912312345', '重庆市渝北区仙桃数据谷', '2017-04-12'),(10, '10', '郑琳', '女', 30, '610113199310214567', '西安市高新区软件新城', '2020-01-25');
  1. 由于业务需求变更, 企业员工的工号, 统一为 5 位数, 目前不足 5 位数的全部在前面补 0, 例如: 1 号员工的公号应该为 00001

    这题其实不是很复杂, 但咱可以稍微搞复杂一些, 顺便回顾一下之前的知识点

    首先查看一下建表语句, 获取一下各字段信息

    desc emp_info;
    

    建表结构

    查看到表结构, 我们需要统一的企业员工的工号字段为 work_no, 类型为 varchar(10)

    再查看一下表内容

    select *
    from emp_info;
    

    emp表内容

    这里其实可以发现, work_no 字段都不足 5 位数, 但是字段类型却为 varchar(10), 所以我们可以尝试修改以下表的结构, 将其统一为 char(5), 当然只作练习使用, 不适用于生产环境, 生产环境还是得因地制宜, 按照企业的意思进行管理, 这里只做学习!!!

    修改 work_no 字段类型为 char(5)

    alter table emp_infomodify work_no char(5);
    

    再次查看表结构以确认修改结果

    修改表结构

    使用左补全, 补全员工工号字段, 并且更新到表中, 这里其实大家就能明白, 使用函数不一定要带有 SELECT

    update emp_info
    set work_no=lpad(emp_info.work_no, 5, '0');
    

    表修改结果

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

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

相关文章

打破AI落地困局:易路iBuilder的“垂直深耕+开箱即用”破壁之道

中国企业的数字化转型已步入深水区,人力资源管理作为企业核心竞争力的关键引擎,正经历从“信息化”向“智能化”的范式跃迁。在这场以AI为驱动的组织效能革命中,​​易路人力资源科技​​凭借前瞻性的“软件AI服务”战略,推出国内…

Higress离线部署

1.前提条件检查docker和docker compose是否已经具备 [roothost151 ~]# docker -v Docker version 26.1.4, build 5650f9b [roothost151 ~]# docker composeUsage: docker compose [OPTIONS] COMMANDDefine and run multi-container applications with DockerOptions:--all-res…

利用AI技术快速提升图片编辑效率的方法

通过更换背景或进行其他创意编辑,可以为图片赋予新的生命力和视觉效果,使得创意表达更加自由灵活。这款AI抠图工具堪称强大,依托先进的阿尔法通道技术,能够精准、自然地实现图像抠取与背景更换。操作也非常简单,只需将…

Wend看源码-RAGFlow(上)

前言 最近在github上搜罗Rag相关项目的时候,我根据star 搜索到了目前star 最高的一些RAG 项目 ,其中稳居榜首的就是RAGFlow。 RAG stars:>1000 language:Python pushed:>2025-01-01 github RAG 相关项目搜索结果 为了系统性的学习RAG 技术栈&#…

LangChain实现RAG检索增强

1:启动vllm的openai兼容server: export VLLM_USE_MODELSCOPETrue python -m vllm.entrypoints.openai.api_server --model qwen/Qwen-7B-Chat-Int4 --trust-remote-code -q gptq --dtype float16 --gpu-memory-utilization 0.6 2:构建向量数据库 from langchain_…

Redis基础(6):SpringDataRedis

SpringDataRedis简介 SpringData是Spring中专门进行数据操作的模块,包含了对于各种数据库的集成。其中对Redis的集成模块叫做SpringDataRedis(官网地址:Spring Data Redis)。其最核心的特点就是提供了不同Redis客户端的整合&…

B. Shrinking Array/缩小数组

B. Shrinking Array让我们称一个数组 b 为 i 美丽 ,如果它至少包含两个元素,并且存在一个位置 |bi−bi1|≤1 使得 |x| (其中 x 是 #10# #11# 的绝对值)。给定一个数组 a ,只要它至少包含两个元素,你就可以执行以下操作&#xff1a…

【学习笔记】Linux系统中SSH服务安全配置

一、背景知识 以ubuntu为例,查看ssh服务是否安全并配置,执行 ssh -V ssh的配置文件路径:/etc/ssh/sshd_config 二、SSH服务配置文件 1.端口和监听设置 Port 22 含义:指定SSH服务监听的端口号(默认是22&#xff09…

FastAPI + Tortoise-ORM + Aerich 实现数据库迁移管理(MySQL 实践)

在 FastAPI 项目中,Tortoise-ORM 是一个轻量的异步 ORM 框架,适用于 async/await 场景。结合数据库迁移工具 Aerich,可以优雅地管理数据库表结构演进,本文将通过完整流程演示如何在 MySQL 环境下使用。📦 一、环境准备…

7.7日 实验03-Spark批处理开发(2)

使用Spark处理数据文件检查数据检查$DATA_EXERCISE/activations里的数据&#xff0c;每个XML文件包含了客户在指定月份活跃的设备数据。拷贝数据到HDFS的/dw目录样本数据示例&#xff1a;<activations><activation timestamp"1225499258" type"phone&q…

C语言可变参数感悟

#include <stdio.h> #include <stdarg.h> #if 1 /* *在C语言中&#xff0c;可变参函数是指参数数量不固定的函数&#xff0c;比如printf\scanf *可变参函数的语法&#xff1a; *返回类型 函数名&#xff08;固定函数&#xff0c;.....) { //函数体 } *1、包含头文件…

LeetCode 1248.统计优美子数组

给你一个整数数组 nums 和一个整数 k。如果某个连续子数组中恰好有 k 个奇数数字&#xff0c;我们就认为这个子数组是「优美子数组」。 请返回这个数组中 「优美子数组」 的数目。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,2,1,1], k 3 输出&#xff1a;2 解释&#xf…

FastAPI Docker环境管理脚本使用指南

作者: 源滚滚AI编程 创建时间: 2025年07月08日 版本: v1.0.0 文档状态: 完成 版权声明 本文档由源滚滚AI编程创作,版权所有。未经作者书面许可,不得复制、分发或用于商业用途。 免责声明 本文档仅用于技术交流和学习目的。作者不对使用本文档内容导致的任何问题承担责任。…

前端常见 HTTP 状态码

作为前端开发者&#xff0c;与后端 API 交互时&#xff0c;HTTP 状态码是判断请求成败的关键信号。理解常见状态码的含义、责任归属及应对策略&#xff0c;能极大提升调试效率和团队协作。以下是关键状态码的详细解析&#xff1a; 首先说一下如何查看状态码&#xff1a; 如上图…

深度解析C语言内存函数(小米面试题)

目录 一、memcpy1.1 代码演示1.2 memcpy的模拟实现 二、memmove2.1 代码演示2.2 模拟实现&#xff08;小米面试题&#xff09; 三、memset3.1 代码演示3.2 总结 四、memcmp4.1 代码演示4.2 总结 总结 一、memcpy &#xff08;memory copy 内存复制&#xff09; 之前文章中写的…

DK124反激式开关电源芯片

18W 高性能交直流转换芯片 特性 DK124 是一款离线式开关电源芯片&#xff0c;最大输出功率达到 24W。内部集成了 PWM 控制器、700V 功率管和初级峰值电流检测电路&#xff0c;并采用了可以省略辅助供电绕组的专利自供电技术&#xff0c;极大简化了外围应用电路&#xff0c;减…

商品销售数据分析实验

进入虚拟机&#xff0c;启动HDFS和Yarn1.创建表 hive show databases; use test;销售订单表create table t_dml (detail_id bigint,sale_date date, province string,city string,product_id bigint,cnt bigint,amt double )row format delimited fields terminated by ,;商品…

PH热榜 | 2025-07-08

1. TensorBlock Forge 标语&#xff1a;人工智能模型的API 介绍&#xff1a;Forge是一个快速且安全的工具&#xff0c;让你可以跨不同供应商连接和运行AI模型 产品网站&#xff1a; 立即访问 Product Hunt&#xff1a; View on Product Hunt 票数&#xff1a; &#x1f53a…

2025-01)electronjs-v11.2.0升级到新版本electronjs-v37.2.0记录,node版本记录,淘宝镜像配置记录,升级记录

背景:由于22年使用electronjs开发的自助机客户端几年没去维护,现在有需求要修改,电脑也换新了,node环境也没,直接把electron从 之前的 11.2.0 版本 升级到了37.2.0版本,升级最主要的目的是升级谷歌浏览器内核,升级后谷歌浏览器内核直接从87升级到了138,可以支持谷歌最新…

iQOO手机怎样相互远程控制?其他手机可以远程控制iQOO吗?

iQOO是Vivo同一品牌下的产品&#xff0c;它们两款手机都可以使用手机内置的远程控制功能。具体做法是&#xff0c;打开控制端的iQOO手机的【设置】【快捷与辅助】、【远程协助】&#xff0c;然后输入被控端的电话号码&#xff0c;等被控端的手机接受远程协助后&#xff0c;就可…