การตั้งชื่อเสมือน (Alias) ให้คอลัมน์ใน MySQL ด้วย AS
คำสำคัญ AS ใช้สำหรับตั้งชื่อชั่วคราวให้คอลัมน์หรือตารางในผลลัพธ์ของคำสั่ง SELECT ไม่ได้เปลี่ยนชื่อคอลัมน์จริงในตาราง
รูปแบบคำสั่ง
SELECT column_name AS alias_name FROM table_name;
คำสำคัญ AS สามารถละเว้นได้ (แต่แนะนำให้เขียนเพื่อความชัดเจน):
SELECT column_name alias_name FROM table_name;
ตัวอย่าง: เปลี่ยนชื่อคอลัมน์ StudentFirstNameInCollege เป็น Name
1. สร้างตารางและเพิ่มข้อมูล
CREATE TABLE DemoTable (
Id INT,
StudentFirstNameInCollege VARCHAR(100)
);
INSERT INTO DemoTable VALUES (100, 'Chris');
INSERT INTO DemoTable VALUES (101, 'Bob');
INSERT INTO DemoTable VALUES (102, 'David');
3. ใช้ AS เปลี่ยนชื่อคอลัมน์ในผลลัพธ์
SELECT Id, StudentFirstNameInCollege AS Name FROM DemoTable;
ผลลัพธ์:
+------+-------+
| Id | Name |
+------+-------+
| 100 | Chris |
| 101 | Bob |
| 102 | David |
+------+-------+
การใช้ Alias กับตาราง (Table Alias)
สำคัญมากเมื่อ JOIN หลายตารางหรือ Subquery:
SELECT e.Name, d.DepartmentName
FROM Employees AS e
JOIN Departments AS d ON e.DepartmentId = d.Id;
ข้อควรระวัง
- Alias ใช้ได้เฉพาะในคำสั่ง SELECT, ORDER BY, GROUP BY, HAVING เท่านั้น
- ไม่สามารถใช้ Alias ใน WHERE ได้ (เพราะ WHERE ทำงานก่อน SELECT)
- ตัวอย่างผิด:
SELECT Name AS n FROM Users WHERE n = 'John'→ Error - ตัวอย่างถูกต้อง:
SELECT Name AS n FROM Users WHERE Name = 'John'หรือใช้ Subquery/CTE
การเปลี่ยนชื่อคอลัมน์จริงในตาราง (Permanent)
หากต้องการเปลี่ยนชื่อคอลัมน์ในตารางจริง ใช้ ALTER TABLE ... CHANGE หรือ RENAME COLUMN (MySQL 8.0+):
-- MySQL 8.0+
ALTER TABLE DemoTable RENAME COLUMN StudentFirstNameInCollege TO Name;
-- เวอร์ชันเก่า
ALTER TABLE DemoTable CHANGE StudentFirstNameInCollege Name VARCHAR(100);
สรุปความแตกต่าง
| การดำเนินการ | คำสั่ง | ผลกระทบ |
|---|---|---|
| Alias ใน Query | SELECT col AS alias | ชั่วคราว เฉพาะผลลัพธ์ |
| เปลี่ยนชื่อคอลัมน์จริง | ALTER TABLE ... RENAME COLUMN | ถาวร เปลี่ยน Schema จริง |