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

MySQL: แสดงข้อมูลของ VIEW ด้วย SELECT *

การสร้างและแสดงข้อมูลจาก VIEW ใน MySQL

VIEW เป็นตารางเสมือน (virtual table) ที่เก็บคำสั่ง SELECT ไว้ ใช้งานเหมือนตารางทั่วไปด้วย SELECT * FROM view_name

สร้างตารางฐานข้อมูล

mysql> create table DemoTable1388 (
    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName varchar(40)
    -> );
Query OK, 0 rows affected (0.71 sec)

mysql> insert into DemoTable1388(StudentName) values('Chris');
mysql> insert into DemoTable1388(StudentName) values('Bob');
mysql> insert into DemoTable1388(StudentName) values('David');
mysql> insert into DemoTable1388(StudentName) values('Mike');

ข้อมูลในตารางหลัก

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 1         | Chris       |
| 2         | Bob         |
| 3         | David       |
| 4         | Mike        |
+-----------+-------------+

สร้าง VIEW

mysql> create view view1388 as select * from DemoTable1388 where StudentId = 3;
Query OK, 0 rows affected (0.13 sec)

แสดงข้อมูลจาก VIEW

mysql> select * from view1388;

ผลลัพธ์

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 3         | David       |
+-----------+-------------+

คำสั่งที่เกี่ยวข้องกับ VIEW

คำสั่งคำอธิบาย
CREATE VIEW name AS SELECT ...สร้าง view
CREATE OR REPLACE VIEW name AS SELECT ...สร้างใหม่หรือแทนที่ view เดิม
SHOW CREATE VIEW nameดูคำสั่งสร้าง view
DROP VIEW nameลบ view
SELECT * FROM information_schema.VIEWS WHERE TABLE_NAME = 'name'ข้อมูลเมตาของ view

ข้อดีของ VIEW

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

ข้อจำกัด

  • ไม่สามารถสร้าง INDEX บน VIEW ได้ (MySQL)
  • VIEW บางประเภทไม่รองรับ UPDATE/INSERT (non-updatable views)
  • ประสิทธิภาพ: optimizer อาจไม่ optimize ได้ดีเท่ากับ query ตรงๆ