Hệ quản trị CSDL MySQL - MySQL View
Bảng ảo View trong MySQL
MySQL cung cấp tính năng bảng ảo kể từ phiên bản 5.x trở đi.
-
View là bảng ảo giúp giới hạn truy cập một số cột dòng trên các bảng dữ liệu.
-
Views đảm bảo tính bảo mật bằng các giới hạn truy cập sau:
- Các hàng trên một bảng
- Các cột trên một bảng
- Các hàng và cột trên một bảng
- Các hàng giữa các bảng sử dụng phép joins
-
Thuận lợi khi sử dụng view
- Cung cấp dữ liệu cần thiết cho người dùng
- Che dấu đi sự phức tạp của dữ liệu
- Tổ chức dữ liệu từ nhiều tài nguyên không đồng nhất
- Giảm kích cỡ của đối tượng
-
Cú pháp tạo view
CREATE VIEW ViewName
AS
//Query
Query là một truy vấn mysql, lưu ý khi sử dụng câu lệnh select:
o Không sử dụng biến local, user hay session
o Những lệnh dịch sẵn cũng không thể sử dụng
o Bảng tạm hay các bảng ảo khác cũng không được sử dụng làm nguồn dữ liệu cho câu truy vấn này.
o Không thể tạo trigger cho bảng ảo.
- Ví dụ tạo view
CREATE VIEW SalePerOrder
AS
SELECT orderNumber,
SUM (quantityOrdered * priceEach) total
FROM orderDetails
GROUP by orderNumber
ORDER BY total DESC
Sử dụng view:
SELECT total
FROM salePerOrder
WHERE orderNumber = 1000
- Ưu nhược điểm của view
- Ưu điểm
- An ninh – Cho phép người quản trị CSDL (DBA) cung cấp cho người sử dụng chỉ những dữ liệu cần thiết
- Đơn giản hóa – Các view cũng có thể sử dụng để ẩn và sử dụng lại các truy vấn phức tạp
- Nhược điểm
- Không thể chứa mệnh ñề COMPUTE hoặc COMPUTE BY
- Vì tạo ra bảng tạm nên view sẽ làm tốn tài nguyên, chậm hệ thống.
- Không thể chứa mệnh ñề ORDER BY trừ khi có TOP n
- Không thể chứa mệnh ñề INTO
- Không thể chứa các table tạm
- Có tối đa 1024 cột
- Xóa view
Có thể xóa view từ database sử dụng cú pháp:
DROP VIEW view_name