06/04/2021, 14:51

Các lệnh quản lý View trong Oracle - Oracle căn bản

Bài tiếp theo này mình sẽ giới thiệu với các bạn một loại table rất đặc biệt, loại này ta sẽ gọi là view. View là một dạng table đặc biệt, là một table ảo và không hề tồn tại trong danh sách table vật lý vì nó được tạo ra khi câu lệnh được thực hiện. Đặc điểm khá thú vị của View đó là dữ liệu của ...

Bài tiếp theo này mình sẽ giới thiệu với các bạn một loại table rất đặc biệt, loại này ta sẽ gọi là view. View là một dạng table đặc biệt, là một table ảo và không hề tồn tại trong danh sách table vật lý vì nó được tạo ra khi câu lệnh được thực hiện.

Đặc điểm khá thú vị của View đó là dữ liệu của nó có thể lấy từ nhiều bảng khác nhau, bởi vì nó được tạo ra từ câu lệnh select, mà trong lệnh select thì có thẻ join nhiều bảng.

Sau đây sẽ là chi tiết về cách tạo View trong Oracle.

1. Lệnh Create View

Để tạo một view ta sử dụng cú pháp sau:

1
2
3
4
CREATE VIEW view_name AS 
SELECT columns 
FROM tables 
WHERE conditions;

Trong đó view_name là tên view mà bạn muốn tạo, còn các tham số khác thì bạn quá quen thuộc rồi phải không nào ;)

Giả sử ta có hai bảng như sau:

Suppliers table
1
2
3
4
5
CREATE TABLE  "SUPPLIERS" 
   (    "SUPPLIER_ID" NUMBER,  
    "SUPPLIER_NAME" VARCHAR2(4000),  
    "SUPPLIER_ADDRESS" VARCHAR2(4000) 
   )

Orders table
1
2
3
4
5
CREATE TABLE  "ORDERS"  
   (    "ORDER_NO." NUMBER,  
    "QUANTITY" NUMBER,  
    "PRICE" NUMBER 
   )

Bây giờ mình sẽ tạo một view với dữ liệu là tất cả đơn hàng của nhà cung cấp có tên là SAM SUNG.

1
2
3
4
5
6
CREATE VIEW sup_orders AS 
SELECT suppliers.supplier_id, orders.quantity, orders.price 
FROM suppliers 
INNER JOIN orders 
ON suppliers.supplier_id = supplier_id 
WHERE suppliers.supplier_name = 'SAM SUNG';

Sau khi chạy lệnh này là ta đã có một view gồm 3 column supplier_idquantity và price.

2. Lệnh Update View

Để cập nhật View thì bạn sẽ dùng lệnh CREATE OR REPLACE VIEW, lệnh này nó sẽ tạo view mới nếu chưa tồn tại, hoặc cập nhật view cũ nếu đã tồn tại.

Cú pháp
1
2
3
4
CREATE OR REPLACE VIEW view_name AS 
  SELECT columns 
  FROM table 
  WHERE conditions;

Quay lại ví dụ ở trên, mình muốn cập nhật lại view sẽ chứa danh sách order của nhà cung câp tên là NOKIA.

fádfád
1
2
3
4
5
6
CREATE or REPLACE VIEW sup_orders AS 
  SELECT suppliers.supplier_id, orders.quantity, orders.price 
  FROM suppliers 
  INNER JOIN orders 
  ON suppliers.supplier_id = supplier_id 
  WHERE suppliers.supplier_name = 'NOKIA';

3. Xem dữ liệu trong View

Vì View cũng là một dạng table nên bạn có thể sử dụng lệnh SELECT.

1
SELECT * FROM sup_orders;

4. Xóa View

Để xóa view thì ta sử dụng lệnh DROP VIEW với cú pháp như sau:

Cú pháp
1
DROP VIEW view_name;

Ví dụ
1
DROP VIEW sup_orders;

Như vậy là mình đã giới thiệu xong một số tính năng của View trong Oracle, hy vọng bài viết này sẽ hữu ích với các bạn.

Bài này mình dừng tại đây, bài tiếp theo ta sẽ bàn về các lệnh query dùng để xử lý dữ liệu của bảng như lệnh select, delete, insert, update.

 

Trần Trung Dũng

15 chủ đề

2610 bài viết

Cùng chủ đề
0