VIEW trong SQLite



Một view là không gì khác ngoài môt lệnh SQLite mà được lưu giữ trong Database với một tên liên kết. Một view thực sự là một thành phần của một bảng trong form của một truy vấn SQLite đã được định nghĩa trước.

Một view có thể chứa tất cả các hàng của một bảng hoặc các hàng đã được chọn từ một bảng. Một view có thể được tạo từ một hoặc nhiều bảng, phụ thuộc vào truy vấn SQLite đã viết để tạo một view.

View, về bản chất giống các Virtual Table (bảng ảo), cho phép người dùng thực hiện:

  • Cấu trúc dữ liệu theo cách mà người dùng tìm thấy tính tự nhiên hoặc tính trực quan.

  • Giới hạn truy cập tới dữ liệu để mà một người dùng có thể thấy và (đôi khi) sửa đổi một cách chính xác nhưng gì họ cần.

  • Tổng kết dữ liệu từ các bảng đa dạng để tạo các bản báo cáo.

View trong SQLite là read-only và vì thế bạn không thể thực thi một lệnh DELETE, INSERT hoặc UPDATE trên một View. Nhưng bạn có thể tạo một Trigger trên một View mà kích hoạt trên một nỗ lực để DELETE, INSERT hoặc UPDATE một View và thực hiện những gì cần thiết trong phần thân Trigger đó.

Tạo View trong SQLite

View trong SQLite được tạo bởi sử dụng lệnh CREATE VIEW. Các View có thể được tạo từ một bảng đơn, nhiều bảng hoặc từ view khác.

Cú pháp cơ bản của lệnh CREATE VIEW trong SQLite là như sau:

CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];

Bạn có thể bao nhiều bảng trong lệnh SELECT theo cách tương tự như bạn sử dụng chúng trong truy vấn SELECT thông thường. Nếu từ khóa tùy ý TEMP hoặc TEMPORARY có mặt, View sẽ được tạo trong cơ sở dữ liệu tạm thời TEMP.

Ví dụ

Bạn theo dõi bảng COMPANY có các bản ghi sau:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Bây giờ là một ví dụ để tạo một view từ bảng này. View này sẽ được sử dụng để có một số cột từ bảng này.

sqlite> CREATE VIEW COMPANY_VIEW AS
SELECT ID, NAME, AGE
FROM  COMPANY;

Bây giờ, bạn có thể truy vấn COMPANY_VIEW theo cách tương tự bạn truy vấn một bảng thực sự. Sau đây là ví dụ:

sqlite> SELECT * FROM COMPANY_VIEW;

Ví dụ trên sẽ cho kết quả:

ID          NAME        AGE
----------  ----------  ----------
1           Paul        32
2           Allen       25
3           Teddy       23
4           Mark        25
5           David       27
6           Kim         22
7           James       24

Xóa View trong SQLite

Rõ ràng là, khi bạn đã có một view, và không cần thiết sử dụng view này nữa thì điều cần làm là xóa chúng đi. Để xóa một View, bạn sử dụng lệnh DROP VIEW với view_name trong SQLite. Cú pháp cơ bản để xóa view trong SQLite như sau:

sqlite> DROP VIEW view_name;

Ví dụ sau để xóa COMPANY_VIEW đã được tạo trước đó.

sqlite> DROP VIEW COMPANY_VIEW;

Các bài học SQLite phổ biến khác tại VietJack: