一、MySQL字符串函数基础回顾

在MySQL中,字符串函数用于处理文本数据,常见场景包括数据拼接、格式转换、清洗等。以下是核心函数速览:

函数名作用说明基础示例(独立运行)
CONCAT(s1,s2)拼接多个字符串SELECT CONCAT('heel','test');
LOWER(str)转换为小写SELECT LOWER('HellOW''test');
UPPER(str)转换为大写SELECT UPPER('HellOW''test');
LPAD(str, len, pad)左填充至指定长度SELECT LPAD('set', 5, '5');
RPAD(str, len, pad)右填充至指定长度SELECT RPAD('set', 5, '5');
TRIM(str)去除首尾空格SELECT TRIM(' ss sd ');
SUBSTRING(str, pos, len)截取子串(pos从1开始)SELECT SUBSTRING('test dsfdsf', 1, 5);
LENGTH(str)计算字符串长度-
REPLACE(str, old, new)替换子串-

二、基于emp表的实战练习(10个练习题)

DROP TABLE IF EXISTS `emp`;
CREATE TABLE `emp`  (`id` int(11) NULL DEFAULT NULL COMMENT '编号',`workno` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '工号',`name` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名',`gender` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别',`age` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '年龄',`idcard` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '身份证号',`workaddress` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '工作地址',`entrydate` date NULL DEFAULT NULL COMMENT '入职时间'
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '员工表' ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of emp
-- ----------------------------
INSERT INTO `emp` VALUES (1, '1', '柳岩', '女', 20, '123456789012345678', '北京', '2000-01-01');
INSERT INTO `emp` VALUES (2, '2', '张无忌', '男', 18, '123456789012345678', '北京', '2005-09-01');
INSERT INTO `emp` VALUES (3, '3', '韦一笑', '男', 38, '123456789712345670', '上海', '2005-08-01');
INSERT INTO `emp` VALUES (4, '4', '赵六', '女', 38, '123456757123845670', '北京', '2009-12-01');
INSERT INTO `emp` VALUES (5, '5', '小昭', '女', 16, '123456789012345678', '上海', '2007-07-01');
INSERT INTO `emp` VALUES (6, '6', '杨逍', '男', 28, '12345678912345678', '北京', '2006-01-01');
INSERT INTO `emp` VALUES (7, '7', '常威', '男', 40, '123456789712345670', '北京', '2005-05-01');
INSERT INTO `emp` VALUES (8, '8', '黛绮丝', '女', 35, '1234561517123645670', '北京', '2010-08-01');
INSERT INTO `emp` VALUES (9, '9', '周芷若', '女', 48, '123456789012345678', '北京', '2013-04-01');
INSERT INTO `emp` VALUES (10, '10', '陈友谅', '男', 53, '123456789012345670', '上海', '2011-01-01');
INSERT INTO `emp` VALUES (11, '11', '张士诚', '男', 55, '123456789712345670', '江苏', '2013-05-01');
INSERT INTO `emp` VALUES (12, '12', '常遇春', '男', 82, '123444675715245678', '北京', '2004-02-01');
INSERT INTO `emp` VALUES (13, '13', '张三丰', '男', 58, '123456789012345678', '江苏', '2002-09-11');
INSERT INTO `emp` VALUES (14, '14', '灭绝', '女', 65, '123456719012345670', '西安', '2019-05-01');
INSERT INTO `emp` VALUES (15, '15', '胡青牛', '男', 70, '12345676971234567X', '西安', '2018-04-01');
INSERT INTO `emp` VALUES (16, '16', '周芷若', '女', 18, NULL, '北京', '2012-06-01');SET FOREIGN_KEY_CHECKS = 1;
案例1:拼接员工姓名和部门ID

需求:将员工姓名与部门ID用 - 连接(如 张三-1

SELECT CONCAT(name, '-', dept_id) AS 员工信息 FROM emp;
案例2:姓名转全小写

需求:统一显示员工姓名的小写形式

SELECT LOWER(name) AS 小写姓名 FROM emp;
案例3:姓名转全大写

需求:统一显示员工姓名的大写形式

SELECT UPPER(name) AS 大写姓名 FROM emp;
案例4:左填充员工ID为5位

需求:将员工ID左填充 0,确保固定5位(如 100001

SELECT LPAD(id, 5, '0') AS 填充ID FROM emp;
案例5:右填充姓名至10字符

需求:将姓名右填充 *,补足10个字符(如 张三张三********

SELECT RPAD(name, 10, '*') AS 填充姓名 FROM emp;
案例6:清洗姓名首尾空格

需求:去除姓名字段可能存在的首尾空格

SELECT TRIM(name) AS 清洗后姓名 FROM emp;
案例7:截取姓名前2个字符

需求:提取姓名的前2个字符(假设为中文姓名)

SELECT SUBSTRING(name, 1, 2) AS 姓名缩写 FROM emp;
案例8:统计姓名长度

需求:计算每个员工姓名的字符长度

SELECT name, LENGTH(name) AS 姓名长度 FROM emp;
案例9:替换姓名关键字

需求:将姓名中所有“张”姓替换为“魏”姓(演示批量替换)

SELECT REPLACE(name, '张', '魏') AS 替换后姓名 FROM emp;

三、总结

字符串函数是MySQL数据处理的核心工具,通过 拼接、转换、清洗、截取 等操作,可高效处理文本数据。结合实际业务表(如 emp 员工表)练习,更易理解函数在真实场景的价值。

建议拓展练习:

  • 结合 WHERE 条件筛选后处理(如仅清洗特定部门的姓名);
  • 嵌套使用函数(如先 TRIMCONCAT)。

发布到CSDN的技巧

  1. 标题优化:加入关键词,如 MySQL字符串函数 实战案例 emp表,提升搜索权重。
  2. 代码高亮:使用Markdown代码块(```sql)包裹SQL,增强可读性。
  3. 互动引导:结尾添加“欢迎留言交流你的SQL练习心得!”,促进互动。
  4. 封面图:搭配简约的“MySQL函数”主题图(可通过Canva制作),提升文章吸引力。

这样整理后,内容结构清晰,既有基础讲解,又有实战案例,适合CSDN的技术分享风格。# MySQL字符串函数实战:10个案例掌握核心用法(基于emp表)

引言

在数据处理场景中,字符串函数 是清洗、格式化、拼接文本的核心工具。无论是员工信息整理、报表生成还是日志分析,掌握字符串函数都能大幅提升效率。本文结合 emp 员工表,通过 10个实战案例 带你掌握MySQL字符串函数的核心用法!

一、基础字符串函数速览

先快速回顾常用字符串函数的语法和作用:

函数名作用说明基础示例(可直接运行)
CONCAT(s1, s2, ...)拼接多个字符串SELECT CONCAT('Hello', 'MySQL');
LOWER(str)转换为全小写SELECT LOWER('HeLLo');
UPPER(str)转换为全大写SELECT UPPER('worLD');
LPAD(str, len, pad)左填充至指定长度SELECT LPAD('123', 5, '0');
RPAD(str, len, pad)右填充至指定长度SELECT RPAD('123', 5, '0');
TRIM(str)去除首尾空格SELECT TRIM(' MySQL ');
SUBSTRING(str, pos, len)截取子串(pos从1开始)SELECT SUBSTRING('ABCDEF', 2, 3);
LENGTH(str)计算字符串长度SELECT LENGTH('MySQL');
REPLACE(str, old, new)替换子串SELECT REPLACE('MySQL', 'My', 'Our');

二、基于emp表的实战练习(9个核心案例)

假设 emp 表结构:

CREATE TABLE emp (id INT COMMENT '员工ID',name VARCHAR(20) COMMENT '姓名',dept_id INT COMMENT '部门ID'
);
案例1:拼接姓名与部门ID

需求:将员工姓名和部门ID用 - 连接(如 张三-1

SELECT CONCAT(name, '-', dept_id) AS 员工信息 FROM emp;
案例2:姓名转全小写

需求:统一显示员工姓名的小写形式

SELECT LOWER(name) AS 小写姓名 FROM emp;
案例3:姓名转全大写

需求:统一显示员工姓名的大写形式

SELECT UPPER(name) AS 大写姓名 FROM emp;
案例4:左填充员工ID为5位

需求:将员工ID左填充 0,确保固定5位(如 100001

SELECT LPAD(id, 5, '0') AS 填充ID FROM emp;
案例5:右填充姓名至10字符

需求:将姓名右填充 *,补足10个字符(如 张三张三********

SELECT RPAD(name, 10, '*') AS 填充姓名 FROM emp;
案例6:清洗姓名首尾空格

需求:去除姓名字段可能存在的首尾空格

SELECT TRIM(name) AS 清洗后姓名 FROM emp;
案例7:截取姓名前2个字符

需求:提取姓名的前2个字符(假设为中文姓名)

SELECT SUBSTRING(name, 1, 2) AS 姓名缩写 FROM emp;
案例8:统计姓名长度

需求:计算每个员工姓名的字符长度

SELECT name, LENGTH(name) AS 姓名长度 FROM emp;
案例9:替换姓名关键字

需求:将姓名中所有“张”姓替换为“魏”姓(演示批量替换)

SELECT REPLACE(name, '张', '魏') AS 替换后姓名 FROM emp;

三、进阶拓展思路

  1. 结合条件筛选
    仅处理特定部门的员工:

    SELECT CONCAT(name, '-', dept_id) 
    FROM emp 
    WHERE dept_id = 1; -- 仅技术部
    
  2. 函数嵌套使用
    先清洗空格,再拼接:

    SELECT CONCAT(TRIM(name), '-', dept_id) 
    FROM emp;
    
  3. 与聚合函数结合
    统计不同长度的姓名分布:

    SELECT LENGTH(name) AS 姓名长度, COUNT(*) AS 人数 
    FROM emp 
    GROUP BY LENGTH(name);
    

总结

字符串函数是MySQL数据处理的“瑞士军刀”,通过 拼接、转换、清洗、截取 等操作,可高效处理文本数据。结合实际业务表(如 emp 员工表)练习,更易理解函数在真实场景的价值。

拓展建议

  • 尝试处理更复杂的业务场景(如手机号脱敏、地址格式化);
  • 结合 WHERE 条件和分组统计,深化函数应用。

欢迎留言交流你的SQL练习心得! 🚀

本文同步发布于CSDN,原创内容,转载请注明出处。
关注作者,获取更多MySQL实战技巧!

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

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

相关文章

AI不是“心智的蒸汽机“:重新理解人工智能的本质

当我们谈论人工智能时,最常听到的比喻是"心智的蒸汽机"——一个能够自动化认知任务的强大工具。但这个比喻可能从根本上误导了我们对AI真正潜力的理解。 最近,来自科罗拉多大学丹佛分校和肯尼索州立大学的研究团队发表了一篇论文[1]&#xff0…

免费的AI Logo工具生成的Logo质量怎么样?我对比了7个AI Logo生成器,设计必备

你尝试过用 AI 生成 Logo 吗?在 AI 巨火的今天,什么事情都可以尝试用 AI 去做。在品牌设计上也是如此,用 AI 做品牌设计、用 AI 做电商海报、用 AI 做包装设计等等。不知道你用过哪些 AI 工具,哪些是你觉得好用的。今天我们就来研…

计算机基础:内存模型

专栏导航 上一篇:WIndows 编程辅助技能:格式工厂的使用 回到目录 下一篇:MFC 第一章概述 本节前言 本来呢,没想着在单独的课节中讲解内存模型。但是呢,在我写过的一些个课节中,我发现,内存…

Sigma-Aldrich 细胞培养实验方案 | 通过Hoechst DNA染色检测细胞的支原体污染

目标DNA染色(如间接Hoechst染色技术)一种快速的方法,其可在72小时内获得结果,这相较于通过培养分离检测支原体所需的4周时间相比是更加有利的。用DNA染色剂对细胞系进行直接染色可在24小时内获得结果,但会大大降低灵敏…

需求跟踪深度解析:架构师视角下的全链路追溯体系

需求跟踪(Requirements Traceability)是确保软件系统从业务目标到代码实现全程可追溯的核心实践,尤其在安全关键系统(如航空、医疗)中具有强制性要求。一、需求跟踪的四大核心价值变更影响分析 精确评估需求变更波及范…

《棒球规则介绍》领队和主教练谁说了算·棒球1号位

Baseball 101|GM vs Manager 到底谁是球队话事人? ⚾️权力金字塔:谁说了算?General Manager(总经理/GM)球队建筑师:负责选秀(Draft)、交易球员(Trade&#x…

电力自动化的通信中枢,为何工业交换机越来越重要?

在“新能源数字化”双轮驱动下,电力行业正经历深刻变革,传统变电站也迎来了向智能化、自动化加速转型的时代。作为连接站内各级系统与装置的数据“中枢”,工业以太网交换机已成为现代变电站自动化系统中不可或缺的核心设备。在这场深度重构的…

【Linux仓库】命令行参数与环境变量【进程·伍】

🌟 各位看官好,我是egoist2023! 🌍 Linux Linux is not Unix ! 🚀 今天来学习命令行参数与环境变量的相关知识。 👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享给更多…

R 数据框:深入解析及其在数据分析中的应用

R 数据框:深入解析及其在数据分析中的应用 引言 R语言作为一种强大的统计计算和图形工具,在数据分析领域有着广泛的应用。数据框(DataFrame)是R语言中处理数据的一种重要结构,它类似于其他编程语言中的表格或关系数据库中的表。本文将深入解析R数据框的概念、特点、创建…

机器学习数据集划分全指南:train_test_split详解与实践

目录 一、为什么需要划分数据集? 二、train_test_split基础用法 2.1 最简单的划分方式 2.2 参数说明 三、实际应用案例:Iris数据集划分 四、高级技巧与注意事项 4.1 分层抽样(Stratified Sampling) 4.2 时间序列数据划分 …

python-77-数据序列化框架Avro数据格式编码和解析

文章目录 1 avro简介1.1 关键特点1.2 无需标记2 使用步骤2.1 定义Avro模式2.2 编码Avro数据2.3 解析Avro数据3 DataFileWriter和DataFileReader3.1 写入DataFileWriter3.2 读取DataFileReader3 文件中存储16进制字符串3.1 十六进制字符串3.2 代码示例4 接收kafka中的avro数据5 …

IAR携手矽力杰与普华基础软件,共推RISC-V车规芯片高安全应用落地

芯片 基础软件 开发工具三方协同,赋能国产汽车电子加速自主演进 在“软件定义汽车”持续重塑产业格局的当下,构建安全、高效、可扩展的本土汽车电子生态已成为行业共识。 IAR嵌入式开发解决方案现已全面支持矽力杰SA32B系列和即将量产的SA32D系列车规…

Vscode——报错,加载 Web 视图时出错: Error: Could not register service worker

Vscode——报错完整信息 加载 Web 视图时出错: Error: Could not register service worker: InvalidStateError: Failed to register a ServiceWorker: The document is in an invalid state… 很有意思下班前还是好的,上班发现下载的Ai code 无法正常使用了 解决…

Java-Collections、Map

目录 1.可变参数 2.Collections工具类 不同集合类型的排序方法比较 3.斗地主游戏 4.Map集合 4.1 Map集合概述 4.2 Map集合的常用方法 4.3 Map集合的遍历方式 4.4 Map集合案例—统计投票人数 4.5 HashMap 4.6 LinkedHashMap 4.7 TreeMap 5.集合的嵌套 1.可变参数 import …

开源界迎来重磅核弹!月之暗面开源了自家最新模型 K2

1. 模型简介 Kimi K2 是一款尖端专家混合(MoE)语言模型,激活参数量达320亿,总参数量突破1万亿。该模型采用Muon优化器训练,在前沿知识、推理和编程任务中展现出卓越性能,同时针对智能体能力进行了精细化优…

Grok-4 发布会图文总结

文章目录00:00 - Grok-4:以“全球最智能 AI”之名突破性登场06:41 - 推理能力的大幅飞跃:100 倍训练量铸就的“博士级”大脑13:25 - 工具使用能力的革新:从“原始”到深度整合20:06 - 直面强化学习的挑战与 AI 的终极测试26:45 - 应用演示&am…

AI产品经理面试宝典第1天:机器学习核心算法全景解析

面试官:请解释什么是监督学习?能否用生活案例说明其运作逻辑? 监督学习如同教孩子识字的过程。父母指着"苹果"图片反复说"这是苹果"(带标签的训练数据),孩子逐渐建立"红色圆形水果=苹果"的认知模型(算法生成)。当孩子看到新图片时,模型…

前端开发技术栈概览

前端开发技术栈概览 前端开发是创建Web页面或app等前端界面给用户的过程,从简单的静态页面到复杂的单页应用(SPA),前端技术栈经历了快速的演进。以下是前端开发所需掌握的核心技术分类及相关知识点: 1. 基础层:HTML、CSS、JavaScr…

详解Kafka通过幂等性实现分区消息不重复的机制

一、核心机制:PID与序列号1. Producer ID (PID)唯一标识:每个生产者实例启动时,由Kafka Broker分配一个全局唯一的PID,用于标识消息来源。持久化存储:PID由Broker持久化保存,确保生产者重启后仍能追踪历史状…

压缩包方式在centos7版本上安装mysql8.0

使用tar命令解压 tar -zxvf mysql-8.0.32-el7-x86_64.tar.gz -C /usr/local/到/usr/local/修改解压后的文件名为mysql 创建mysql用户组和用户,自己在mysql下面创建data目录存储信息,把权限交给mysql这个用户 groupadd mysql useradd -r -g mysql mysql c…