Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tạo View MySQL bằng CREATE VIEW

View MySQL được tạo bằng câu lệnh CREATE VIEW. View có thể tạo từ một bảng, nhiều bảng, hoặc view khác. Người dùng cần quyền thích hợp.

Cú pháp cơ bản

CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]

Giải thích các mệnh đề:

  • CREATE VIEW: tạo view mới.
  • view_name: tên view, thuộc về database hiện tại mặc định.
  • select_statement: câu SELECT định nghĩa view, có thể truy vấn bảng cơ sở hoặc view khác.
  • column_list: tùy chọn, đặt tên lại cột view (phải unique, số lượng khớp SELECT). Có thể dùng AS name trong select list.
  • OR REPLACE: nếu view đã tồn tại thì thay thế, không thì tạo mới.
  • ALGORITHM: tùy chọn, ảnh hưởng cách MySQL xử lý view: MERGE, TEMPTABLE, UNDEFINED (mặc định).
  • DEFINER / SQL SECURITY: xác định ngữ cảnh bảo mật khi kiểm tra quyền truy cập view. Quy tắc: không có SUPER privilege thì chỉ được definer là tài khoản mình; có SUPER thì definer bất kỳ.
  • WITH CHECK OPTION: cho view có thể cập nhật, ngăn chèn/sửa hàng không thỏa WHERE. LOCAL chỉ kiểm tra view hiện tại, CASCADED (mặc định) kiểm tra cả view dưới.

Ví dụ

Tạo view first_view trên bảng Customers:

mysql> Select * from Customers;
+-------------+----------+
| Customer_Id | Name     |
+-------------+----------+
| 1           | Rahul    |
| 2           | Yashpal  |
| 3           | Gaurav   |
| 4           | Virender |
+-------------+----------+
4 rows in set (1.30 sec)

mysql> Create view first_view AS SELECT * FROM Customers;
Query OK, 0 rows affected (0.36 sec)

mysql> Select * from first_view;
+-------------+----------+
| Customer_Id | Name     |
+-------------+----------+
| 1           | Rahul    |
| 2           | Yashpal  |
| 3           | Gaurav   |
| 4           | Virender |
+-------------+----------+
4 rows in set (0.13 sec)