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

วิธีสร้าง Alias (ชื่อ مستعار) ขณะสร้าง VIEW ใน MySQL

การสร้าง VIEW พร้อม Alias ใน MySQL

ใน MySQL สามารถกำหนดชื่อเสมือน (Alias) ให้กับ VIEW ได้โดยตรงในคำสั่ง CREATE VIEW โดยใช้คำสำคัญ AS

รูปแบบคำสั่ง

CREATE VIEW view_name AS 
SELECT column1, column2, ... 
FROM table_name 
WHERE condition;

ตัวอย่าง: สร้าง VIEW ชื่อ load_data จากตาราง DemoTable

1. สร้างตารางและเพิ่มข้อมูล

CREATE TABLE DemoTable (
    FirstName VARCHAR(100)
);

INSERT INTO DemoTable VALUES ('Chris');
INSERT INTO DemoTable VALUES ('Robert');
INSERT INTO DemoTable VALUES ('Sam');

2. ดูข้อมูลต้นทาง

SELECT * FROM DemoTable;

ผลลัพธ์:

+-----------+
| FirstName |
+-----------+
| Chris     |
| Robert    |
| Sam       |
+-----------+

3. สร้าง VIEW พร้อม Alias

CREATE VIEW load_data AS SELECT * FROM DemoTable;

4. ใช้งาน VIEW

SELECT * FROM load_data;

ผลลัพธ์:

+-----------+
| FirstName |
+-----------+
| Chris     |
| Robert    |
| Sam       |
+-----------+

การใช้ Alias กับคอลัมน์ใน VIEW

สามารถตั้งชื่อคอลัมน์ใหม่ใน VIEW ได้:

CREATE VIEW employee_summary AS 
SELECT 
    EmployeeId AS id,
    CONCAT(FirstName, ' ', LastName) AS full_name,
    Salary * 12 AS annual_salary
FROM Employees;

ประโยชน์ของ VIEW

  • ลดความซับซ้อนของคำสั่ง SQL ซ้ำๆ
  • ความปลอดภัย: ควบคุมสิทธิ์เข้าถึงคอลัมน์เฉพาะเจาะจง
  • นามมูล (Abstraction): ซ่อนโครงสร้างตารางจริง
  • ความสม่ำเสมอ: ให้ Interface คงที่แม้ตารางเปลี่ยน

ข้อจำกัดของ VIEW ใน MySQL

  • ไม่สามารถสร้าง INDEX บน VIEW ได้โดยตรง (MySQL 8.0+ รองรับ Invisible Index แต่ไม่ใช่บน VIEW)
  • VIEW บางประเภทไม่สามารถ UPDATE ได้ (เช่น มี GROUP BY, DISTINCT, JOIN หลายตาราง)
  • ORDER BY ใน VIEW ไม่มีผลหาก Query ภายนอกมี ORDER ของตัวเอง

การจัดการ VIEW

-- ดูรายการ VIEW
SHOW FULL TABLES WHERE Table_type = 'VIEW';

-- ดูคำสั่งสร้าง VIEW
SHOW CREATE VIEW load_data;

-- ลบ VIEW
DROP VIEW load_data;

-- แก้ไข VIEW (ต้อง DROP แล้ว CREATE ใหม่ หรือใช้ CREATE OR REPLACE VIEW)
CREATE OR REPLACE VIEW load_data AS SELECT * FROM DemoTable WHERE FirstName != 'Sam';