Trong Oracle Database, view là một đối tượng cơ sở dữ liệu đại diện cho một truy vấn SQL đã được lưu trữ. Nó hoạt động như một bảng ảo dựa trên kết quả của truy vấn. View giúp đơn giản hóa các truy vấn phức tạp, cải thiện bảo mật bằng cách hạn chế truy cập trực tiếp vào dữ liệu nhạy cảm và cung cấp một giao diện ổn định cho dữ liệu ngay cả khi cấu trúc bảng thay đổi.
Tạo View
Bạn có thể tạo view bằng câu lệnh CREATE VIEW. Dưới đây là cú pháp cơ bản:
CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;
Ví dụ
Giả sử bạn có một bảng employees với các cột: employee_id, first_name, last_name, email, và department_id. Bạn muốn tạo một view để chỉ hiển thị thông tin nhân viên của phòng ban có department_id = 10.
CREATE VIEW department_10_employees AS SELECT employee_id, first_name, last_name, email FROM employees WHERE department_id = 10;
Sử dụng View
Sau khi tạo view, bạn có thể thực hiện các truy vấn trên view như trên một bảng thông thường.
SELECT * FROM department_10_employees;
Quản trị View
Thay đổi View
Để thay đổi view, bạn có thể sử dụng lệnh CREATE OR REPLACE VIEW, nó sẽ thay thế view hiện tại bằng định nghĩa mới mà không cần phải xóa view cũ.
CREATE OR REPLACE VIEW department_10_employees AS SELECT employee_id, first_name, last_name, email, hire_date FROM employees WHERE department_id = 10;
Xóa View
Để xóa view, sử dụng lệnh DROP VIEW.
DROP VIEW department_10_employees;
View Có Thể Cập Nhật
Không phải tất cả các view đều có thể cập nhật. Một view có thể cập nhật khi các điều kiện sau đây được thỏa mãn:
- View dựa trên một bảng duy nhất.
- View không chứa các hàm tổng hợp như SUM, AVG, COUNT, v.v.
- View không chứa các cụm từ DISTINCT, GROUP BY, hoặc HAVING.
- Không chứa các câu lệnh UNION hoặc UNION ALL.
Ví dụ về View Có Thể Cập Nhật
CREATE VIEW updatable_view AS SELECT employee_id, first_name, last_name, email FROM employees WHERE department_id = 10;
Bạn có thể thực hiện các thao tác INSERT, UPDATE, và DELETE trên view này.
UPDATE updatable_view SET email = 'new.email@oracle.com' WHERE employee_id = 100;
Kiểm Soát Truy Cập với View
View có thể được sử dụng để kiểm soát truy cập đến dữ liệu nhạy cảm. Bạn có thể tạo các view chỉ hiển thị một phần dữ liệu và cấp quyền truy cập view cho người dùng cụ thể.
CREATE VIEW employee_public_view AS SELECT employee_id, first_name, last_name FROM employees;
Sau đó cấp quyền:
GRANT SELECT ON employee_public_view TO public_user;
View với Tùy Chọn Bảo Mật
Oracle hỗ trợ các tùy chọn bảo mật cho view như WITH READ ONLY để đảm bảo rằng dữ liệu trong view không thể bị thay đổi.
CREATE VIEW secure_view AS SELECT employee_id, first_name, last_name FROM employees WHERE department_id = 10 WITH READ ONLY;
View là một công cụ mạnh mẽ trong Oracle Database giúp quản lý và bảo mật dữ liệu hiệu quả. Việc tạo và quản lý view đúng cách sẽ giúp bạn xây dựng các ứng dụng cơ sở dữ liệu an toàn, linh hoạt và dễ bảo trì.