【MySQL成神之路】MySQL函數總結

以下是MySQL函數的全面總結,包含概念說明和代碼示例:

一、MySQL函數分類

1. 字符串函數
-- CONCAT:連接字符串 
SELECT CONCAT('Hello', ' ', 'World'); 
-- 輸出 'Hello World' 
-- SUBSTRING:截取子串 
SELECT SUBSTRING('MySQL', 2, 3); 
-- 輸出 'ySQ' 
-- UPPER/LOWER:大小寫轉換 
SELECT UPPER('mysql'), LOWER('SQL'); 
-- 輸出 'MYSQL', 'sql' 
-- TRIM:去除首尾空格SELECT TRIM(' MySQL '); 
-- 輸出 'MySQL' 
-- REPLACE:替換字符串 
SELECT REPLACE('Hello World', 'World', 'MySQL'); 
-- 輸出 'Hello MySQL' 
2. 數值函數
-- ROUND:四舍五入 
SELECT ROUND(3.1415, 2); 
-- 輸出 3.14 
-- ABS:絕對值 
SELECT ABS(-15); 
-- 輸出 15 
-- MOD:取余 
SELECT MOD(10, 3); 
-- 輸出 1 
-- CEIL/FLOOR:向上/向下取整 
SELECT CEIL(2.3), FLOOR(2.7); 
-- 輸出 3, 2 
3. 日期時間函數
-- NOW:當前日期時間 
SELECT NOW(); 
-- 輸出 '2023-10-25 14:30:00' 
-- CURDATE/CURTIME:當前日期/時間 
SELECT CURDATE(), CURTIME(); 
-- 輸出 '2023-10-25', '14:30:00' 
-- DATE_FORMAT:格式化日期 
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d'); 
-- 輸出 '2023-10-25' 
-- DATEDIFF:日期差值 
SELECT DATEDIFF('2023-10-31', '2023-10-25'); 
-- 輸出 6 
4. 聚合函數
-- SUM/AVG:求和/平均值 
SELECT SUM(salary), AVG(age) FROM employees; 
-- COUNT:計數 
SELECT COUNT(*) FROM orders WHERE status='completed'; 
-- MAX/MIN:最大/最小值SELECT MAX(price), MIN(quantity) FROM products; 
5. 流程控制函數
-- IF:條件判斷 
SELECT IF(score >= 60, 'Pass', 'Fail') AS result FROM exams; 
-- CASE:多條件分支 
SELECT CASE WHEN temperature > 30 THEN 'Hot' WHEN temperature > 20 THEN 'Warm' ELSE 'Cool' END AS weather FROM sensors; 
6. 系統信息函數
-- VERSION:數據庫版本 
SELECT VERSION(); 
-- USER:當前用戶 
SELECT USER(); 
-- DATABASE:當前數據庫 
SELECT DATABASE(); 
7. 加密函數
-- MD5:生成MD5哈希 
SELECT MD5('password123'); 
-- SHA1:生成SHA1哈希 
SELECT SHA1('secret'); 

二、函數使用注意事項


  1. NULL處理

    • 多數函數遇到NULL參數會返回NULL
    • 使用IFNULL處理NULL值
      SELECT IFNULL(email, 'N/A') FROM users; 
  2. 性能優化

    • 避免在WHERE子句中對字段使用函數(會導致索引失效)
    -- 不推薦: 
    SELECT * FROM logs WHERE DATE_FORMAT(created_at, '%Y-%m') = '2025-05'; 
    -- 推薦: 
    SELECT * FROM logs WHERE created_at BETWEEN '2023-10-01' AND '2025-05-31'; 
  3. 可移植性

    • MySQL特有函數(如DATE_FORMAT)在其他數據庫可能不兼容

三、綜合示例

-- 統計每月銷售總額(使用日期函數和聚合函數) 
SELECT DATE_FORMAT(order_date, '%Y-%m') AS month, SUM(amount) AS total_sales FROM orders GROUP BY month ORDER BY month; -- 用戶信息格式化(字符串函數嵌套) 
SELECT CONCAT(UPPER(last_name), ', ', first_name) AS full_name, YEAR(birthdate) AS birth_year FROM users WHERE DATEDIFF(CURDATE(), birthdate)/365 > 18; 
-- 篩選成年用戶 

四、總結

MySQL函數體系提供了強大的數據處理能力,覆蓋字符串操作、數值計算、日期處理、邏輯控制等場景。使用時需注意:

  • 合理選擇函數類型和參數
  • 關注NULL值的處理邏輯
  • 在性能敏感場景謹慎使用函數
  • 注意不同數據庫系統的函數差異

掌握這些函數的使用方法,可以顯著提升SQL查詢的靈活性和數據處理效率。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/906966.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/906966.shtml
英文地址,請注明出處:http://en.pswp.cn/news/906966.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaScript 異步編程、對象/數組操作

異步編程 JavaScript 是單線程語言,通過事件循環機制處理異步操作。任務分為兩種: 宏任務(Macrotask): script整體代碼、setTimeout(時間結束執行)、setInterval(間隔執行)、I/O、UI渲染 微任務(Microtas…

中小制造企業網絡安全防護指南

考慮到文章內容較長,簡要內容圖片在文檔末尾,請直接翻閱到底部查看 引言:中小制造企業面臨的獨特網絡安全挑戰 中小制造企業 (SME) 在當今數字化浪潮中扮演著至關重要的角色,然而,伴隨技術進步而來的是日益嚴峻且獨特…

es學習小結

1.?客戶端類型? ?推薦場景? ?版本兼容性? Elasticsearch Java API Client 新項目、ES 8.x集群 8.x及以上 Spring Data Elasticsearch Spring生態項目、簡化ORM操作 ES 7.x-8.x(需版本匹配) Low-Level REST Client 需要底層HTTP控制、兼容多版本ES …

Axure項目實戰:智慧運輸平臺后臺管理端-訂單管理2(多級交互)

親愛的小伙伴,在您瀏覽之前,煩請關注一下,在此深表感謝!如有幫助請訂閱專欄! Axure產品經理精品視頻課已登錄CSDN可點擊學習https://edu.csdn.net/course/detail/40420 課程主題:訂單管理2 主要內容:中繼器篩選、表單跟隨菜單拖動、審批數據互通等 應用場景:訂單管理…

2025年——ComfyUI_連接HuggingFace及更改緩存路徑

本篇分享在 ComfyUI 中連接 huggingface 以及更改模型緩存路徑。 我們在使用 ComfyUI 的一些插件時,有些必要模型只能通過連接 huggingface 來緩存才能讓流程得以進行。但目前在上網不科學的情況下是無法打開 huggingface 網站的,好在國內有其鏡像網站&a…

wx.getPrivacySetting接口needAuthorization一直返回false

我們在開發小程序的隱私協議授權時往往會使用到wx.getPrivacySetting接口,當返回的needAuthorization為true時候提示我們需要去授權,但你們有沒有遇到過needAuthorization一直為false的情況呢,下面是最常見的三個解決方法,都完善了…

旅游信息檢索

旅游信息檢索 旅游信息檢索是系統中實現數據獲取和處理的關鍵環節,負責根據用戶輸入的目的地城市和出游天數,動態獲取并生成高質量的旅游數據。 模塊的工作流程分為以下幾個階段:首先,對用戶輸入的信息進行標準化處理&#xff0…

機器學習筆記【Week2】

一、多變量線性回歸(Multivariate Linear Regression) 為什么需要多變量? 現實問題中,一個目標可能受多個因素影響,比如預測房價時: x 1 x_1 x1?:面積 x 2 x_2 x2?:臥室數量 x 3…

Axure 基本用法學習筆記

一、元件操作基礎 1. 可見性控制 隱藏/顯示:可以設置元件的可見性,使元件在特定條件下隱藏或可見 應用場景:創建動態交互效果,如點擊按鈕顯示隱藏內容 2. 層級管理 層級概念:元件有上下層關系,上層元件…

aws平臺s3存儲桶夸域問題處理

當我們收到開發反饋s3存在跨域問題 解決步驟: 配置 S3 存儲桶的 CORS 設置: 登錄到 AWS 管理控制臺。轉到 S3 服務。選擇你存儲文件的 存儲桶。點擊 權限 標簽頁。在 跨域資源共享(CORS)配置 部分,點擊 編輯。 登陸…

【后端高階面經:微服務篇】7、1秒響應保障:超時控制如何成為高并發系統的“救火隊長”?

一、全鏈路超時建模:從用戶需求到系統分解 1.1 端到端時間預算分配 黃金公式: 用戶期望響應時間 = 網絡傳輸時間 + 服務處理時間 + 下游調用時間 + 緩沖時間典型分配策略(以1秒目標為例): 環節時間預算優化目標客戶端渲染100ms骨架屏(Skeleton)預渲染邊緣節點(CDN)…

前端遇到高并發如何解決重復請求

在前端開發中遇到高并發場景時,若不加控制容易出現重復請求,這可能導致接口壓力增加、數據異常、用戶體驗變差等問題。以下是前端防止/解決重復請求的常見方法,按不同場景歸類總結: 🌟 一、常見重復請求場景 用戶頻繁點…

老牌協議再升級,Ethernet IP轉Modbus TCP網關橋接精準灌裝系統

對于消費品包裝制造商而言,灌裝機是最關鍵且昂貴的設備之一。然而,許多公司卻難以應對生產過程中的灌裝波動,從而造成嚴重的財務和生產后果。 在本次網絡研討會中,我們將探討穩聯技術的ethernet ip轉modbus tcp(WL-ABC…

骰子游戲(2023睿抗省賽)

骰子游戲 題目描述: 在某個游戲中有一個骰子游戲。 在游戲中,你需要投擲 5 個標準六面骰子(骰子為一個正方體,6個面上分別有 1、2、3、4、5、6中的一個數字,骰子的質量均勻),投出的點數根據組合會獲得一…

CMake跨平臺編譯生成:從理論到實戰

一、引言 在當今軟件開發中,跨平臺開發已成為常態。無論是需要在Windows、Linux、macOS等多操作系統上運行,還是在不同的硬件架構(如x86、ARM等)間部署,跨平臺編譯生成都是一個無法回避的關鍵問題。CMake,…

Python經典算法實戰

在編程的世界里,算法是解決問題的靈魂,而Python以其簡潔優雅的語法成為實現算法的理想語言。無論你是初學者還是有一定經驗的開發者,《Python經典算法實戰》都能帶你深入算法的殿堂,從理論到實踐,一步步構建起扎實的編…

QT的自定義控件

1.比如對label控件進行提升為QPaintPointLabel類,基類選擇QLabel,頭文件建議加上相對路徑,有時候VS識別不出來直接的頭文件,在提升的類中重寫pointEvent()函數。

flutter 常用組件詳細介紹、屏幕適配方案

一、常用組件 1.基礎組件 組件說明示例Text顯示文本Text(‘Hello Flutter’, style: TextStyle(fontSize: 20))Image顯示圖片Image.network(‘https://example.com/image.jpg’)Icon顯示圖標Icon(Icons.home, size: 30, color: Colors.blue)RaisedButton / ElevatedButton按鈕…

leetcode 17. Letter Combinations of a Phone Number

題目描述 17. Letter Combinations of a Phone Number 代碼: class Solution {string table[10] {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz&qu…

Web前端大模型實戰:端側翻譯+朗讀流程線+模型音頻數據編碼 - 讓網站快速支持多語言多模態輸出

在以前的文章 前端大模型入門:實戰篇之Vue3Antdvtransformers本地模型實現增強搜索 中介紹了前端使用大模型的文本RAG實現。本文將更進一步,介紹多模態輸出的端側實現。 本文將通過端側大模型技術實現網頁端的實時翻譯與語音合成功能,無需服…