Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีเปลี่ยนชื่อคอลัมน์ในผลลัพธ์ Query MySQL ด้วย AS (Alias)

การตั้งชื่อเสมือน (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 ใน QuerySELECT col AS aliasชั่วคราว เฉพาะผลลัพธ์
เปลี่ยนชื่อคอลัมน์จริงALTER TABLE ... RENAME COLUMNถาวร เปลี่ยน Schema จริง