首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

《MySQL必知必會》讀書筆記:第十、十一章 函數處理資料

     編輯:MySQL 資料庫相關知識

前言

本文整理自《MySQL必知必會》第十、十一章,涵蓋字串拼接、去除空白、算術計算、文本/日期/聚合函數等實用技巧,助您直接在 SQL 層完成資料轉換,減少應用層處理。

一、字串拼接 CONCAT()

建立計算欄位(不實際存在於資料表,僅在 SELECT 時產生)。

-- 供應商報表:名稱(所在地)
SELECT CONCAT(vend_name, '(', vend_country, ')') AS vend_title
FROM vendors;

二、去除空白

  • LTRIM() - 去除左側空格
  • RTRIM() - 去除右側空格
  • TRIM() - 去除兩側空格

三、算術計算

-- 發票總價 = 單價 × 數量
SELECT prod_price * quantity AS total_price
FROM orderitems;

四、常用文本函數

函數說明
UPPER()/LOWER()大小寫轉換
LEFT()/RIGHT()取左/右指定長度字元
LENGTH()字串長度
LOCATE()尋找子字串位置
SOUNDEX()語音匹配(按發音而非拼字比對)
SELECT UPPER(vend_name) FROM vendors;

五、日期函數

MySQL 日期格式:YYYY-MM-DD。DATETIME 型別含時間,直接比對日期會失敗,需用 DATE() 擷取日期部分。

函數說明
NOW()目前日期時間
DATE()擷取日期部分
YEAR()/MONTH()/DAY()擷取年/月/日
DATEDIFF()計算兩日期差異天數
DATE_FORMAT()格式化輸出
-- 查詢 2005-09-01 的訂單
SELECT cust_id, order_num FROM orders WHERE DATE(order_date) = '2005-09-01';

-- 查詢 2005 年 9 月所有訂單
SELECT cust_id, order_num FROM orders WHERE YEAR(order_date) = 2005 AND MONTH(order_date) = 9;

六、聚合函數

函數說明
AVG()平均值
COUNT()行數統計
MAX()/MIN()最大/最小值
SUM()加總
-- 平均價格
SELECT AVG(prod_price) AS avg_price FROM products;

-- 計數:COUNT(*) 含 NULL,COUNT(column) 忽略 NULL
SELECT COUNT(*) FROM products;
SELECT COUNT(prod_price) FROM products;

-- 加總
SELECT SUM(quantity * item_price) AS total_revenue FROM orderitems;

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved