Lệnh Create View Trong MySQL (Tạo View Mới) - Freetuts
Có thể bạn quan tâm
Trong bài viết này chúng ta sử dụng lệnh Create View trong MySQL để tạo mới một View trong Database, hoặc thay thế nội dung của view có sẵn.
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. Về cơ bản lệnh này sẽ phải kết hợp với câu lệnh Select để lấy kết quả từ nhiều table đổ vào trong View. Mỗi khi có thay đổi ở các bảng đó thì data trong View cũng sẽ thay đổi theo.
1. Giới thiệu lệnh Create View trong MySQL
Lệnh Create View sẽ tạo ra một View mới trong Database, sau đây là cú pháp:
CREATE [OR REPLACE] VIEW [db_name.]view_name [(column_list)] AS select-statement;Ý nghĩa của các từ khóa như sau:
Bài viết này được đăng tại [free tuts .net]
Từ khóa Create View cho thấy bạn đang muốn tạo một View mới có tên là view_name, năm trong database db_name.
Nếu bạn dùng thêm từ khóa Or Replace thay thì nó sẽ thay thế View có tên là view_name bằng nội dung SQL mới. Nếu view_name chưa tồn tại thì nó sẽ tạo view mới.
Column_list là danh sách các cột sẽ được đặt tên lại. Nếu bạn không truyền vào thì nó sẽ lấy tên cột mặc định của các table.
Select-statement chính là câu lệnh Select trả về danh sách dữ liệu sẽ được lưu vào trong View. Bạn có thể sử dụng kết hợp các lệnh Join, Order By, Limit, ... miễn là nó trả về kết quả là danh sách dữ liệu.
Theo mặc định thì lệnh Create View sẽ tạo mới một view nằm trong DB hiện tại đang kết nối. Nhưng nếu bạn muốn chỉ định rõ DB nào thì sẽ đặt nó ở vị trí của db_name.
2. Cách sử dụng lệnh Create View trong MySQL
Hãy làm một vài ví dụ để hiểu rõ hơn lệnh này.
Ví dụ 1: Tạo một view đơn giản
Hãy xem cấu trúc của table orderdetails như trong hình dưới đây.

Bây giờ mình sẽ viết một View lưu trữ doanh thu của mỗi đơn hàng, bằng cách sử dụng lệnh Select kết hợp Group By.
CREATE VIEW salePerOrder AS SELECT orderNumber, SUM(quantityOrdered * priceEach) total FROM orderDetails GROUP by orderNumber ORDER BY total DESC;Để kiểm tra View đã xuất hiện chưa thì hãy sử dụng lệnh sau:
SHOW TABLES;Lệnh này sẽ hiển thị danh sách tất cả các table đang có trong DB hiện tai. Vì View cũng là table nên cũng sẽ xuất hiện trong đó.

Ngoài ra, để xem chi tiết đâu là table và đâu là view thì bạn sử dụng lệnh sau:
SHOW FULL TABLES;Kết quả lệnh này như sau:

Bây giờ nếu bạn muốn xem tổng doanh thu của mỗi đơn hàng thì chỉ cần truy vấn trong View SalePerOrder mà đã tạo ở trên.
SELECT * FROM salePerOrder;Kết quả dạng như sau:

Ví dụ 2: Tạo mới một View từ một View khác
Nghe có vẻ kì lạ phải không? Thực tế bạn có thể tạo mới một view với dữ liệu được lấy từ một View khác.
Giả sử mình muốn lấy danh sách những đơn hàng có giá trị hơn 6000, lúc này chỉ cần lấy trong view salesPerOrder mà ta đã tạo ở trên là được.
CREATE VIEW bigSalesOrder AS SELECT orderNumber, ROUND(total,2) as total FROM salePerOrder WHERE total > 60000;Bây giờ dữ liệu trong view bigSalesOrder chính là những đơn hàng có doanh thu hơn 6000. Hãy thử chạy một câu truy vấn xem sao.
SELECT orderNumber, total FROM bigSalesOrder;
Ví dụ 3: Tạo View với lệnh Join
Hãy xem ví dụ dưới đây, mình tạo ra một view có tên là customerOrders để lưu trữ thông tin khách hàng và tổng số tiền mà khách hàng đã mua. Mình đã JOIN 3 bảng gồm: orderDetails, orders và customers
CREATE OR REPLACE VIEW customerOrders AS SELECT orderNumber, customerName, SUM(quantityOrdered * priceEach) total FROM orderDetails INNER JOIN orders o USING (orderNumber) INNER JOIN customers USING (customerNumber) GROUP BY orderNumber;Bây giờ sử dụng lệnh Select trong view customerOrders là được.
SELECT * FROM customerOrders ORDER BY total DESC;Kết quả tham khảo:

Ví dụ 4: Tạo View với truy vấn con
Trong ví dụ dưới đây mình có sử dụng cấu trúc truy vấn con để tạo ra View.
CREATE VIEW aboveAvgProducts AS SELECT productCode, productName, buyPrice FROM products WHERE buyPrice > ( SELECT AVG(buyPrice) FROM products) ORDER BY buyPrice DESC;* Lời kết: Như vậy bản chất của lệnh Select trong View là không quan trọng, bởi View chỉ quan tâm kết quả mà lệnh Select trả về, còn việc nó kết hợp với bao nhiêu lệnh khác đi nữa thì nó không quan tâm.
Như vậy là mình đã hướng dẫn xong cách sử dụng lệnh Create View trong MySQL, đây là lệnh dùng để tạo ra một View mới hoặc thay thế nội dung cho một view có sẵn.
Từ khóa » Cách Tạo Bảng View Trong Sql
-
Khung Nhìn VIEW Trong SQL
-
VIEW Trong SQL Server
-
Giới Thiệu Views Trong SQL Server - Viblo
-
Sử Dụng VIEW Trong SQL - Học Sql Cơ Bản đến Nâng Cao - VietTuts
-
View Trong SQL Server | Comdy
-
Hướng Dẫn Thực Hành SQL | VIEWS - Deft Blog
-
Sử Dụng View Trong SQL Server - Hoclaptrinh
-
CREATE VIEW - Lệnh Tạo Bảng ảo - SQL & Database
-
View Trong SQL Server | How Kteam
-
Bài 41: Làm Việc Với View Trong SQL - TEDU
-
Cách Sử Dụng VIEW Trong SQL Server - Freetuts
-
VIEW Trong SQL, Lệnh VIEW, Cú Pháp Và Ví Dụ Minh Họa - Thủ Thuật
-
Tạo VIEW Trong SQL Server - GreenSQL
-
SQL Server: Khung Nhìn (VIEW) | V1Study