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

MySQL AS 關鍵字完整指南:欄位別名、表別名與避坑實戰

     編輯:MySQL 資料庫相關知識

在 MySQL 中,AS 關鍵字用於為查詢欄位或資料表指定別名,雖然語法上可選,但善用它能大幅提升 SQL 可讀性並避免隱蔽 Bug。本文系統梳理用法細節與最佳實踐。

一、欄位別名

基本語法

SELECT CONCAT(last_name, ', ', first_name) AS full_name
FROM mytable
ORDER BY full_name;

AS 可省略,但強烈建議保留

-- 合法但易誤讀
SELECT CONCAT(last_name, ', ', first_name) full_name
FROM mytable ORDER BY full_name;

經典陷阱:忘寫逗號導致誤判別名

SELECT columna columnb FROM mytable;
-- MySQL 解析為:columna 為欄位,columnb 為其別名
-- 實際意圖可能是查詢兩個欄位 columna, columnb
最佳實踐:永遠顯式寫 AS,並在欄位間加逗號,杜絕歧義。

二、表別名

兩種等價寫法

SELECT t1.name, t2.salary
FROM employee AS t1, info AS t2
WHERE t1.name = t2.name;

-- 或省略 AS
SELECT t1.name, t2.salary
FROM employee t1, info t2
WHERE t1.name = t2.name;

多表 JOIN 實戰範例

SELECT e.first_name, j.title, d.task
FROM employee e
LEFT JOIN job j ON e.ID = j.ID
LEFT JOIN duty d ON e.ID = d.ID
WHERE j.title = 'Manager';

三、別名在子句中的使用規則

  • 可用於:GROUP BY、ORDER BY、HAVING
  • 不可用於:WHERE、GROUP BY(某些版本)、JOIN ON 條件中(需重複原表達式或用子查詢/CTE)

四、總結速查表

場景建議寫法備註
欄位別名expr AS alias必寫 AS,防漏逗號
表別名table AS alias 或 table alias兩者皆可,團隊統一風格
ORDER BY/GROUP BY直接用別名標準 SQL 支援
WHERE/HAVING不可直接用別名需重寫表達式或套子查詢

掌握 AS 細節,寫出更健壯、可維護的 SQL。

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