Thứ Ba, 25 tháng 7, 2023

Cách sử dụng VIEW trong SQL Server

Trong bài này bạn sẽ được học về view và các thao tác quản lý view như: tạo view, xóa view, cập nhật dữ liệu cho view, và cuối cùng là các kiến thức liên quan như cơ chế hoạt động của view.

Mục lục

  • 1. View là gì?
  • 2. Tạo View trong SQL Server
  • 3. Các tính năng của View
    • Về bảo mật
    • Đơn giản hóa
    • Tính nhất quán

1. View là gì?

Đặt vấn đề: Giả sử bạn là một nhà quản trị database (DBA) và bạn có nhiệm vụ mỗi cuối ngày sẽ lấy danh sách đơn hàng của hôm đó gửi lên cho leader.

Như vậy mỗi ngày bạn sẽ phải viết một câu truy vấn để lấy dữ liệu, hoặc bạn sẽ phải lưu câu SQL đó vào một file txt rồi mỗi khi cần thì copy và execute.

Giải pháp trên liệu có hay? Rất may là SQL Server cho bạn lưu trữ câu SQL thông qua view, nghĩa là bạn sẽ tạo một view dựa vào cấu trúc câu SQL đó và sau này mỗi khi cần lấy đơn hàng thì chỉ việc lấy trong view là được.

View cũng là một table nhưng chức năng của nó là chỉ để đọc, nên bạn không thể thực hiện các thao tác như insert, update hay delete trên view.

2. Tạo View trong SQL Server

Giả sử ta có hai bảng products và brands, bây giờ mình cần lấy danh sách tất cả sản phẩm kèm theo thương hiệu tương ứng của mỗi sản phẩm thì sẽ viết câu truy vấn như sau:

1
2
3
4
5
6
7
8
SELECT
    product_name,
    brand_name,
    list_price
FROM
    production.products p
INNER JOIN production.brands b
        ON b.brand_id = p.brand_id;

Và để tạo view cho câu SQL này thì ta viết như sau:

1
2
3
4
5
6
7
8
9
10
CREATE VIEW sales.product_info
AS
SELECT
    product_name,
    brand_name,
    list_price
FROM
    production.products p
INNER JOIN production.brands b
        ON b.brand_id = p.brand_id;

Trong đó product_info là tên của view và sales là tên của schema.

Sau này khi muốn lấy danh sách sản phẩm và thương hiệu của nó thì mình chỉ cần chạy câu SQL sau:

1
SELECT * FROM sales.product_info;

Rất đơn giản phải không các bạn, không cần phải nhớ câu SQL dài dòng trên kia.

Mỗi một view có thể lưu trữ dữ liệu của nhiều table khác nhau vì nó là kết quả của câu truy vấn SELECT, đây chính là ưu điểm khiến view trở nên mạnh mẽ.

SQL Server Views png

3. Các tính năng của View

Nói chung khi bạn sử dụng View thì sẽ có những lợi thế sau:

Về bảo mật

Bạn có thể hạn chế người dùng truy cập trực tiếp vào table, thay vào đó cho họ truy cập thông qua view nên sẽ an toàn hơn. Tại sao? Tại vì view chỉ là một khung nhìn nên chỉ cho phép đọc được thông tin tồn trại trong view, không được xem thêm thông tin hoặc thay đổi dữ liệu.

Ví dụ bạn có thể cho phép người dùng truy cập tên khách hàng, điện thoại, email thông qua chế độ xem nhưng hạn chế họ truy cập vào tài khoản ngân hàng và các thông tin nhạy cảm khác.

Đơn giản hóa

Khi viết câu truy vấn với nhiều bảng thì sẽ rất phức tạp, ban phải test nhiều thì mới chắc chắn là ra kết quả đúng, cũng có khi chưa chắc đúng. Tuy nhiên nếu kết hợp view thì bạn phân ra thành nhiều phân đoạn và mỗi view là một phân đoạn, sao đó thực hiện các phép truy vấn trên view thì sẽ dễ hiểu hơn nhiều.

Tính nhất quán

Đôi khi bạn cần viết một công thức phức tạp và được sử dụng trong nhiều câu truy vấn, lúc này bạn sẽ phải viết đi viết lại nhiều lần.

Nhưng nếu đưa công thức đó vào một view, sau đó các câu truy vấn kia tham chiếu từ view thì sẽ tiện lợi và nhất quán, sau này chỉnh sửa công thức thì chỉ cần sửa ở view.

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master