【MySQL】函數學習-字符串函數

一、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…