Trong hướng dẫn này, các bạn sẽ tìm hiểu về cách làm chủ view như tạo view mới, xóa view và update dữ liệu của những bảng dưới thông qua view.
Khi bạn áp dụng câu lệnh SELECT nhằm truy vấn dữ liệu xuất phát từ 1 hoặc nhiều bảng, các bạn sẽ nhận được một tập kết quả.
Ví dụ: câu lệnh tiếp sau đây trả về tên sản phẩm, nhãn hiệu và niêm yết của toàn bộ các sản phẩm từ bảng products cùng bảng brands:
SELECT product_name, brand_name, list_priceFROM production.products pINNER JOIN production.brands b ON b.brand_id = p.brand_id;Lần tới, nếu bạn muốn có được tập công dụng tương tự, chúng ta có thể lưu truy vấn vấn này vào trong 1 file, mở nó và tiến hành lại.
SQL Server hỗ trợ một cách giỏi hơn nhằm lưu truy nã vấn này trong đại lý dữ liệu trải qua view.
View là 1 trong những truy vấn chọn cái tên và được tàng trữ trong các đại lý dữ liệu chất nhận được bạn áp dụng nó sau này.
Vì vậy, truy hỏi vấn trên rất có thể được lưu trữ dưới dạng dạng view bằng phương pháp sử dụng câu lệnh CREATE VIEW như sau:
CREATE VIEW sales.product_infoASSELECT product_name, brand_name, list_priceFROM production.products pINNER JOIN production.brands b ON b.brand_id = p.brand_id;Sau đó, bạn cũng có thể tham chiếu cho view vào câu lệnh SELECT như sau:
SELECT * FROM sales.product_info;Khi cảm nhận truy vấn này, SQL hệ thống sẽ thực hiện truy vấn sau:
SELECT *FROM ( SELECT product_name, brand_name, list_price FROM production.products p INNER JOIN production.brands b ON b.brand_id = p.brand_id;);Theo định nghĩa, view không tàng trữ dữ liệu nước ngoài trừ các view được lập chỉ mục .
View có thể chứa những cột từ khá nhiều bảng bằng cách sử dụng các mệnh đề join hoặc chỉ là 1 tập thích hợp con những cột của một bảng. Điều này làm cho view hữu ích trong bài toán trừu tượng hóa hoặc ẩn các truy vấn phức tạp.
Hình hình ảnh sau trên đây minh họa view bao hàm các cột từ rất nhiều bảng:
Ưu điểm của View trong SQL Server
Nói chung, view hỗ trợ các ưu thế sau:
Bảo mật
Bạn hoàn toàn có thể hạn chế người dùng truy cập thẳng vào bảng và chất nhận được họ truy vấn tập hợp nhỏ dữ liệu thông qua view.
Ví dụ: chúng ta có thể cho phép người tiêu dùng truy cập tên khách hàng hàng, năng lượng điện thoại, thư điện tử qua view nhưng giảm bớt họ truy cập vào tài khoản ngân hàng và những thông tin mẫn cảm khác.
Sự 1-1 giản
Một cơ sở tài liệu quan hệ có thể có tương đối nhiều bảng với những mối dục tình phức tạp, ví dụ: một-một, một-nhiều và nhiều-nhiều gây trở ngại cho việc điều hướng.
Tuy nhiên, chúng ta có thể đơn giản hóa những truy vấn phức tạp với những mệnh đề join với điều kiện bằng phương pháp sử dụng view.
Tính độc nhất quán
Đôi khi, bạn phải viết một cách làm hoặc logic tinh vi trong phần lớn truy vấn.
Để làm cho nó tuyệt nhất quán, bạn có thể ẩn logic và các phép tính phức tạp vào vào view.
Khi view được định nghĩa, bạn có thể tham chiếu xúc tích từ view thay vị viết lại nó trong các truy vấn riêng biệt.
Quản lý view vào SQL Server
Tạo view new - hướng dẫn bạn cách sản xuất view mới trong cơ sở dữ liệu SQL Server.Đổi tên view - mày mò cách đổi tên view bằng SQL vps Management Studio (SSMS) hoặc lệnh Transact-SQL.Liệt kê view vào SQL hệ thống - bàn thảo về những cách khác nhau để liệt kê toàn bộ các view trong cơ sở tài liệu SQL Server.Lấy thông tin view - cách lấy thông tin về view.Xóa view - hướng dẫn chúng ta cách thực hiện câu lệnh DROP VIEW để xóa một hoặc nhiều view khỏi cơ sở dữ liệu.Tạo view được lập chỉ mục - phía dẫn các bạn cách tạo ra view được lập chỉ mục so với các bảng không thường xuyên update dữ liệu để về tối ưu hóa hiệu suất của view.Tạo view trong SQL Server
Trong phần này, các bạn sẽ tìm gọi cách áp dụng câu lệnh CREATE VIEW vào SQL hệ thống để chế tạo view mới.
Để tạo view new trong SQL Server, bạn thực hiện câu lệnh CREATE VIEW như dưới đây:
CREATE
Nếu bạn không chỉ định rõ ràng danh sách những cột cho view, SQL Server đang sử dụng list cột từ câu lệnh SELECT.
Trong ngôi trường hợp bạn có nhu cầu định nghĩa lại view, ví dụ: thêm nhiều cột vào nó hoặc xóa một trong những cột khỏi nó, chúng ta có thể sử dụng câu lệnh ALTER VIEW.
Chúng tôi vẫn sử dụng các bảng orders, order_items và products từ các cơ sở tài liệu mẫu nhằm minh họa chế tạo ra view vào SQL Server.
Tạo một view đơn giản trong SQL Server
Câu lệnh sau tạo thành một view tên daily_sales dựa trên các bảng orders, order_items với products:
CREATE VIEW sales.daily_salesASSELECT year(order_date) AS y, month(order_date) AS m, day(order_date) AS d, p.product_id, product_name, quantity * i.list_price AS salesFROM sales.orders AS oINNER JOIN sales.order_items AS i ON o.order_id = i.order_idINNER JOIN production.products AS p ON p.product_id = i.product_id;Khi view daily_sales được tạo, bạn cũng có thể truy vấn dữ liệu từ các bảng trên bằng phương pháp sử dụng câu lệnh SELECT đơn giản và dễ dàng như sau:
SELECT * FROM sales.daily_salesORDER BY y, m, d, product_name;Sau đây cho thấy đầu ra:
Định nghĩa lại view trong SQL Server
Để thêm cột tên quý khách hàng vào view sales.daily_sales, bạn thực hiện câu lệnh ALTER VIEW như sau:
ALTER VIEW sales.daily_salesASSELECT year(order_date) as y, month(order_date) as m, day(order_date) as d, concat( first_name, " ", last_name ) as customer_name, p.product_id, product_name, quantity * i.list_price as salesFROM sales.orders AS o INNER JOIN sales.order_items AS i ON o.order_id = i.order_id INNER JOIN production.products AS phường ON p.product_id = i.product_id INNER JOIN sales.customers AS c ON c.customer_id = o.customer_id;Câu lệnh sau tầm nã vấn tài liệu sử dụng view sales.daily_sales:
SELECT * FROM sales.daily_salesORDER BY y, m, d, customer_name;Sau đây cho thấy đầu ra:
Tạo view thực hiện hàm tập hòa hợp trong SQL Server
Câu lệnh sau đây tạo ra một view có tên là staff_sales nhằm thống kê doanh số của nhân viên cấp dưới theo năm áp dụng hàm SUM():
CREATE VIEW sales.staff_sales ( first_name, last_name, year, amount)AS SELECT first_name, last_name, YEAR(order_date), SUM(list_price * quantity) amount FROM sales.order_items i INNER JOIN sales.orders o ON i.order_id = o.order_id INNER JOIN sales.staffs s ON s.staff_id = o.staff_id GROUP BY first_name, last_name, YEAR(order_date);Câu lệnh sau truy hỏi vấn dữ liệu sử dụng view sales.staff_sales:
SELECT * FROM sales.staff_salesORDER BY first_name,last_name,year;Sau đây cho thấy thêm đầu ra:
Xóa view trong SQL Server
Trong phần này, các bạn sẽ tìm phát âm cách áp dụng câu lệnh DROP VIEW vào SQL Server nhằm xóa view.
Để xóa view khỏi cơ sở dữ liệu, bạn áp dụng câu lệnh DROP VIEW như sau:
DROP VIEW
Nếu bạn cố xóa view không tồn tại, SQL Server sẽ báo lỗi. Từ khóa IF EXISTS ngăn ngừa một lỗi xảy ra khi chúng ta xóa view ko tồn tại.
Để xóa các view, bạn áp dụng cú pháp sau:
DROP VIEW
Chúng tôi sẽ áp dụng view sales.daily_sales với sales.staff_sales được tạo nên trong phần hướng dẫn tạo nên view để minh họa xóa view.
Xóa một view vào SQL Server
Ví dụ tiếp sau đây minh họa bí quyết xóa view sales.daily_sales từ các đại lý dữ liệu:
DROP VIEW IF EXISTS sales.daily_sales;
Xóa các view vào SQL Server
Câu lệnh dưới đây tạo view product_catalogs cho mục tiêu minh họa xóa nhiều view trong SQL Server:CREATE VIEW sales.product_catalogASSELECT product_name, category_name, brand_name, list_priceFROM production.products pINNER JOIN production.categories c ON c.category_id = p.category_idINNER JOIN production.brands b ON b.brand_id = p.brand_id;Câu lệnh dưới đây xóa cả hai view sales.staff_sales cùng sales.product_catalog và một lúc:
DROP VIEW IF EXISTS sales.staff_sales, sales.product_catalogs;
Đổi tên view vào SQL Server
Trong phần này, các bạn sẽ tìm phát âm cách thay tên view trong cơ sở tài liệu SQL Server.Trước khi đổi tên view, bạn phải lưu ý rằng tất cả các đối tượng người dùng phụ nằm trong vào view có thể chạm mặt lỗi. Chúng bao hàm stored procedure, hàm người tiêu dùng tự định nghĩa, trigger, truy nã vấn, những view khác và những ứng dụng khách.
Do đó, sau khoản thời gian đổi thương hiệu view, các bạn phải bảo vệ rằng toàn bộ các đối tượng người tiêu dùng tham chiếu đến tên cũ của view đều áp dụng tên mới.
Đổi tên view bởi Server vps Management Studio (SSMS)
Để thay tên tên của view, bạn làm theo công việc sau:
Đầu tiên, trong Object Explorer, mở rộng Database, lựa chọn tên cơ sở dữ liệu chứa view mà bạn muốn đổi tên và mở rộng thư mục Views.
Thứ hai, nhấn vào phải vào view mà bạn có nhu cầu đổi thương hiệu và lựa chọn Rename.
Thứ ba, nhập tên new cho view.
Đổi thương hiệu view bởi câu lệnh Transact-SQL
Nếu bạn có nhu cầu đổi thương hiệu view bởi câu lệnh, bạn cũng có thể sử dụng stored procedure sp_rename: