XEM là các bảng ảo không lưu trữ bất kỳ dữ liệu nào của riêng chúng nhưng hiển thị dữ liệu được lưu trữ trong các bảng khác. Nói cách khác, VIEWS không là gì ngoài các Truy vấn SQL. Một dạng xem có thể chứa tất cả hoặc một vài hàng từ một bảng. Chế độ xem MySQL có thể hiển thị dữ liệu từ một bảng hoặc nhiều bảng
MySQL Lượt xem cú pháp
Bây giờ chúng ta hãy xem cú pháp cơ bản được sử dụng để tạo chế độ xem trong MySQL
CREATE VIEW `view_name` AS SELECT statement;
Ở ĐÂU
- “CREATE VIEW `view_name`” yêu cầu máy chủ MySQL tạo một đối tượng dạng xem trong cơ sở dữ liệu có tên `view_name`
- “Câu lệnh AS SELECT” là các câu lệnh SQL được đóng gói trong Chế độ xem MySQL. Nó có thể là một câu lệnh SELECT có thể chứa dữ liệu từ một bảng hoặc nhiều bảng
Cách tạo Chế độ xem trong MySQL
Sau đây là quy trình từng bước để tạo chế độ xem trong MySQL
Bước 1. Tạo chế độ xem đầu tiên của chúng tôi bằng cách sử dụng “myflixdb”
Bây giờ, hãy tạo chế độ xem đầu tiên bằng cách sử dụng “myflixdb”, chúng tôi sẽ tạo một chế độ xem đơn giản giới hạn các cột được thấy trong bảng thành viên
Giả sử các yêu cầu ủy quyền nêu rõ rằng bộ phận tài khoản chỉ có thể xem số, tên và giới tính của thành viên từ bảng của thành viên. Để đạt được điều này, bạn có thể tạo một CHẾ ĐỘ XEM –
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Bước 2. Mở rộng nút lượt xem
Thực thi tập lệnh trên trong bàn làm việc của MySQL dựa trên myflixdb và mở rộng nút chế độ xem trong trình khám phá cơ sở dữ liệu cho chúng tôi kết quả sau
Lưu ý rằng đối tượng account_v_members không hiển thị trong các đối tượng dạng xem cơ sở dữ liệu
Bước 3. Thực hiện câu lệnh SELECT
Bây giờ chúng ta hãy thực thi một câu lệnh CHỌN để chọn tất cả các trường từ dạng xem như trong ví dụ về dạng xem tạo MySQL bên dưới
SELECT * FROM `accounts_v_members`;
Bước 4. Thực hiện một kịch bản
Việc thực thi đoạn script trên trong bàn làm việc của MySQL đối với myflixdb mang lại cho chúng tôi các kết quả sau được hiển thị bên dưới
membership_number full_names gender 1 Janet Jones Female 2 Janet Smith Jones Female 3 Robert Phil Male 4 Gloria Williams Female 5 Leonard Hofstadter Male 6 Sheldon Cooper Male 7 Rajesh Koothrappali Male 8 Leslie Winkle Male 9 Howard Wolowitz Male
Chỉ các cột được ủy quyền cho bộ phận tài khoản đã được trả lại. Các chi tiết khác được tìm thấy trong bảng thành viên đã bị ẩn
Nếu chúng ta muốn xem các câu lệnh SQL tạo nên một dạng xem cụ thể, chúng ta có thể sử dụng tập lệnh được hiển thị bên dưới để thực hiện điều đó
SHOW CREATE VIEW `accounts_v_members`;
Việc thực thi đoạn mã trên cung cấp cho bạn tên dạng xem và các câu lệnh SQL SELECT được sử dụng để tạo dạng xem
Tham gia và xem trong MySQL
Bây giờ chúng ta hãy xem một ví dụ khá phức tạp liên quan đến nhiều bảng và sử dụng phép nối
Chúng tôi sẽ đóng gói THAM GIA được tạo để lấy thông tin từ ba [3] bảng cụ thể là thành viên, phim và cho thuê phim. Dưới đây là kịch bản giúp chúng tôi đạt được điều đó
CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date` FROM `movierentals` AS mr INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number` INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;
Việc thực thi các tập lệnh trên sẽ tạo chế độ xem có tên general_v_movie_rentals trong myflixdb của chúng tôi
Bây giờ, hãy chọn tất cả các trường từ một bảng có tên general_v_movie_rentals
SELECT * FROM `general_v_movie_rentals`;
Việc thực thi tập lệnh trên trong bàn làm việc của MySQL đối với myflixdb mang lại cho chúng tôi các kết quả sau được hiển thị bên dưới
membership_number full_names title transaction_date return_date 1 Janet Jones Pirates of the Caribean 4 20-06-2012 28-06-2012 1 Janet Jones Forgetting Sarah Marshal 22-06-2012 25-06-2012 3 Robert Phil Forgetting Sarah Marshal 22-06-2012 25-06-2012 2 Janet Smith Jones Forgetting Sarah Marshal 21-06-2012 24-06-2012 3 Robert Phil X-Men 23-06-2012 28-06-2012
Lưu ý rằng chúng tôi không phải viết truy vấn THAM GIA phức tạp để nhận thông tin về thành viên, phim và chi tiết thuê phim. Chúng tôi chỉ đơn giản là sử dụng chế độ xem trong câu lệnh CHỌN thông thường như bất kỳ bảng thông thường nào khác. Chế độ xem có thể được gọi từ bất kỳ đâu trong hệ thống ứng dụng chạy trên myflixdb
Giảm lượt xem trong MySQL
Lệnh DROP có thể được sử dụng để xóa chế độ xem khỏi cơ sở dữ liệu không còn cần thiết. Cú pháp cơ bản để thả một view như sau