当前位置: 首页 > news >正文

函数-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.dtcms.com/a/269510.html

相关文章:

  • Python文件操作(五分钟小白从入门到精通)
  • 微算法科技(NASDAQ MLGO)研究非标准量子预言机,拓展量子计算边界
  • 【QT】-隐式转换 explicit用法
  • linux常用管路命令
  • 【1-快速上手】
  • 部署并运行Spike-Driven-Transformer或QKFormer
  • 香港站群服务器与普通香港服务器对比
  • 算法设计与分析:分治、动态规划与贪心算法的异同与选择
  • 【计算机网络】第三章:数据链路层(下)
  • 89104 PCIe Switch芯片国产替代 - PCIE5.0国产AI服务器高性能扩展,支持海光/龙芯/飞腾等
  • 【零基础学AI】第30讲:生成对抗网络(GAN)实战 - 手写数字生成
  • 从SEO到GEO:优化策略如何应对传统搜索与AI搜索的巨变
  • SpringAI编码实战:使用本地免费部署的大语言模型跑起来
  • NuxtJS中网络请求模块的封装与最佳实战
  • leetcode202.快乐数
  • 算法设计与分析 知识总结
  • Puppeteer 库简介:背景、用法与原理
  • LeetCode--42.接雨水
  • 什么是RAG?
  • 深入解析Java中的“128陷阱“:Integer缓存机制源码分析
  • 容器技术入门之Docker环境部署
  • Docker快速部署Hive服务
  • 【技术应用】CUTTag应用实例解析:比ChIP-seq更精准高效的DNA-蛋白互作研究
  • No static resource druid
  • C++(STL源码刨析/vector)
  • 虚幻引擎UE5专用服务器游戏开发-20 添加基础能力类与连招能力
  • Takebishi旗下智能硬件网关产品devicegateway详细介绍
  • ThreadPoolTaskExecutor 的使用案例
  • 【PTA数据结构 | C语言版】求单链表list中的元素个数,即表长
  • NumPy-随机数生成详解