Chuyển đến nội dung chính

Views (Bảng ảo) trong SQL

Trong hướng dẫn này, bạn sẽ học view là gì, các loại view hiện có, cùng ưu và nhược điểm khi sử dụng chúng.
Đã cập nhật 5 thg 10, 2026  · 6 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Các quản trị viên và người dùng cơ sở dữ liệu đối mặt với hai thách thức: viết truy vấn SQL phức tạp và bảo mật truy cập cơ sở dữ liệu. Đôi khi truy vấn SQL trở nên phức tạp do sử dụng nhiều phép join, truy vấn lồng và GROUP BY trong cùng một truy vấn.

Để đơn giản hóa các truy vấn như vậy, bạn có thể dùng một lớp trung gian (proxy) trên bảng gốc. Ngoài ra, đôi khi về mặt bảo mật, quản trị viên cơ sở dữ liệu muốn hạn chế truy cập trực tiếp vào cơ sở dữ liệu. Ví dụ, nếu một bảng có nhiều cột nhưng người dùng chỉ cần ba cột dữ liệu, DBA sẽ tạo một bảng ảo chỉ gồm ba cột. Cho cả hai mục đích này, bạn có thể dùng view. View có thể hoạt động như một proxy hoặc bảng ảo. View giúp giảm độ phức tạp của truy vấn SQL và cung cấp quyền truy cập an toàn vào các bảng bên dưới.

View là gì?

View là một phiên bản đặc biệt của bảng trong SQL. Chúng cung cấp một môi trường bảng ảo cho nhiều thao tác phức tạp. Bạn có thể chọn dữ liệu từ nhiều bảng, hoặc chọn dữ liệu cụ thể dựa trên các tiêu chí nhất định trong view. View không lưu trữ dữ liệu thực; nó chỉ lưu định nghĩa của view trong từ điển dữ liệu.

Views (Virtual Tables) in SQL

View là một truy vấn được lưu trong từ điển dữ liệu, người dùng có thể truy vấn lên đó giống như với các bảng. Nó không dùng bộ nhớ vật lý, chỉ có truy vấn được lưu trong từ điển dữ liệu. View được tính toán động mỗi khi người dùng thực hiện truy vấn lên nó. Các thay đổi được thực hiện tại bất kỳ thời điểm nào trên view sẽ được phản ánh vào bảng gốc thực tế.

View chủ yếu có hai mục đích:

  • Đơn giản hóa các truy vấn SQL phức tạp.
  • Hạn chế người dùng truy cập dữ liệu nhạy cảm.
Views (Virtual Tables) in SQL tutorial

Các loại View

  • Simple View: View dựa trên một bảng duy nhất, không chứa mệnh đề GROUP BY và bất kỳ hàm nào.
  • Complex View: View dựa trên nhiều bảng, có chứa mệnh đề GROUP BY và các hàm.

  • Inline View: View dựa trên một truy vấn con trong mệnh đề FROM, truy vấn con đó tạo một bảng tạm và đơn giản hóa truy vấn phức tạp.

  • Materialized View: View lưu cả định nghĩa lẫn dữ liệu. Nó tạo bản sao dữ liệu bằng cách lưu trữ vật lý.

Views (Virtual Tables) in SQL tutorial

Simple View

Views (Virtual Tables) in SQL tutorial

Complex View

Views (Virtual Tables) in SQL
Views (Virtual Tables) in SQL tutorial

Inline View

Inline view là một câu lệnh SELECT trong mệnh đề FROM của một câu lệnh SELECT khác để tạo một bảng tạm có thể được tham chiếu bởi câu lệnh SELECT. Inline view được dùng để viết các truy vấn SQL phức tạp mà không cần các phép join và truy vấn lồng. Gọi là bảng tạm vì bản sao dữ liệu do truy vấn con lưu trữ trả về không được lưu trong cơ sở dữ liệu. Trong Oracle và cộng đồng Postgres, bảng tạm này được gọi là inline view. Nó cũng được gọi là subselect.

Views (Virtual Tables) in SQL tutorial

Materialized View

Materialized view sao chép vật lý dữ liệu đã truy xuất. Dữ liệu đã sao chép này có thể được tái sử dụng mà không cần thực thi lại view. Loại view này còn được gọi là "SNAPSHOTS". Materialized view giúp giảm thời gian xử lý để tái tạo toàn bộ dữ liệu. Nó giúp người dùng từ xa sao chép dữ liệu cục bộ và cải thiện hiệu năng truy vấn. Phần khó ở đây là đồng bộ các thay đổi giữa materialized view và các bảng nền tảng của nó.

Materialized View (Virtual Tables) in SQL
Views (Virtual Tables) in SQL tutorial

So sánh giữa View và Materialized View

Views (Virtual Tables) in SQL tutorial

Tạo và xóa view trong SQL

View có thể được tạo mới và thay thế bằng CREATE VIEW và REPLACE VIEW.

Views (Virtual Tables) in SQL tutorial

View có thể bị xóa bằng lệnh DROP VIEW.

Views (Virtual Tables) in SQL tutorial

Ưu và nhược điểm của View

View có thể được sử dụng như một tập con của dữ liệu thực để thực hiện một số thao tác nhất định. Nó giúp chúng ta cung cấp một lớp trừu tượng cho nhiều người dùng hoặc ẩn đi sự phức tạp đối với người dùng đang truy cập dữ liệu từ bảng. Ví dụ, một người dùng có quyền truy cập vào các cột dữ liệu cụ thể thay vì toàn bộ bảng. Nó có thể giúp đơn giản hóa truy vấn phức tạp thành đơn giản hơn. Nó cũng đơn giản hóa việc truy cập dữ liệu từ nhiều bảng đã join. View có thể được dùng như các bảng tổng hợp bằng các thao tác group by. View có thể phục vụ mục đích bảo mật hoặc bổ sung giá trị từ góc độ bảo mật. Nó không chiếm dung lượng vì chỉ có định nghĩa trong từ điển dữ liệu, không có bản sao dữ liệu thực.

Bên cạnh nhiều ưu điểm, view cũng có một số nhược điểm như phụ thuộc vào cấu trúc bảng gốc, thời gian tính toán và các hạn chế. View phụ thuộc vào cấu trúc bảng. Nếu bạn thay đổi cấu trúc bảng, bạn phải thay đổi định nghĩa view tương ứng.

Kết luận

Chúc mừng bạn đã đi đến cuối hướng dẫn này!

Trong hướng dẫn này, bạn đã tìm hiểu rất nhiều về View. Bạn đã biết View là gì, các loại View, Simple View, Complex View, Inline View, Materialized View, cú pháp tạo và xóa view, cùng ưu và nhược điểm của View.

Giờ hãy áp dụng khái niệm View để phân tích các bộ dữ liệu của riêng bạn. Cảm ơn bạn đã đọc hướng dẫn!

Nếu muốn học thêm về SQL, hãy tham gia khóa học Introduction to Relational Databases in SQL của chúng tôi.

Chủ đề
SQL

Khóa học SQL

Khóa học

Xử lý dữ liệu trong SQL

4 giờ
338.8K
Thành thạo truy vấn SQL phức tạp để giải đáp nhiều câu hỏi về Khoa học dữ liệu và chuẩn bị bộ dữ liệu đáng tin cậy để phân tích trong PostgreSQL.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm