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
  1. Ư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
  2. 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