Dạng xem SQL cho phép bạn không chỉ lưu trữ một truy vấn SQL mà còn sử dụng nó như một bảng trong các truy vấn khác. Tìm hiểu cách áp dụng tính năng SQL hữu ích này!
Bạn đang xem : cách xem sql
Chế độ xem là một tính năng nổi tiếng trong SQL. Nó cho phép bạn tạo một bảng ảo dựa trên một truy vấn SQL tham chiếu đến các bảng khác trong cơ sở dữ liệu. Một dạng xem lưu trữ một truy vấn SQL được thực thi bất cứ khi nào bạn tham chiếu đến dạng xem. Đây là một cách thuận tiện để có được dữ liệu mong muốn vì dễ dàng chạy một truy vấn được lưu trữ trong một dạng xem hơn là nhập một truy vấn từ đầu. Do đó, điều cần thiết là có thể áp dụng tính năng này một cách hiệu quả.
Bài viết này giới thiệu các nguyên tắc cơ bản về dạng xem SQL. Đầu tiên, chúng ta sẽ đi qua định nghĩa, cách sử dụng và nguyên tắc hoạt động của một chế độ xem. Sau đó, chúng ta sẽ đi sâu vào các ví dụ về cách tạo, sửa đổi và thả một chế độ xem. Ở cuối bài viết, bạn sẽ tìm thấy các ví dụ ứng dụng trong thế giới thực về dạng xem SQL. Trong một số tình huống, việc sử dụng chế độ xem là không thể tránh khỏi và chúng ta sẽ thảo luận chi tiết về vấn đề này.
Đi sâu vào chế độ xem SQL
Nói một cách đơn giản, một dạng xem là một truy vấn SQL được lưu trữ. Mỗi khi một chế độ xem được sử dụng, nó sẽ thực hiện truy vấn được lưu trữ của nó và tạo ra một tập hợp kết quả bao gồm các hàng và cột.
Chế độ xem SQL được gọi là bảng ảo vì nó không lưu trữ các hàng và cột trên đĩa giống như một bảng cụ thể. Thay vào đó, nó chỉ chứa truy vấn SQL. Hãy xem sơ đồ bên dưới để hiểu rõ hơn chế độ xem là gì.
Sơ đồ trên trình bày một chế độ xem được gọi là EntertainmentView
. Nó lưu trữ một truy vấn đơn giản chọn các cột Name
từ Theater
, Opera
và các bảng Cinema
. Khi EntertainmentView
này được sử dụng (thực thi), nó sẽ trả về tập kết quả bao gồm cột AllEntertainmentPaces
với các hàng từ cả ba bảng.
Để tạo chế độ xem EntertainmentView
được trình bày ở trên, chúng tôi sẽ sử dụng cú pháp sau:
TẠO CHẾ ĐỘ XEM Giải tríXem AS CHỌN Tên NHƯ Tất cả Giải trí TỪ Rạp hát LIÊN HIỆP CHỌN Tên TỪ Oper LIÊN HIỆP CHỌN Tên TỪ Rạp chiếu phim;
Sau khi tạo EntertainmentView
, giờ đây chúng tôi có thể chạy truy vấn sau thay vì nhập truy vấn ở trên:
LỰA CHỌN * TỪ Chế độ xem giải trí;
Dạng xem SQL thường được sử dụng trong cơ sở dữ liệu quan hệ. Cơ sở dữ liệu quan hệ cung cấp các tính năng khác nhau, bao gồm các ràng buộc SQL như khóa chính và khóa ngoại hoặc lập chỉ mục. Những tính năng này có thể dẫn đến các truy vấn phức tạp.
Do đó, sẽ rất tiện lợi khi tạo các dạng xem để lưu trữ các truy vấn phức tạp. Bạn có thể sử dụng chế độ xem như thể đó là một bảng lưu trữ dữ liệu được trả về bởi một truy vấn phức tạp.
Trong trường hợp bạn bỏ lỡ các bài viết của chúng tôi về Ràng buộc SQL , Khóa chính và Khóa ngoại span >, bạn có thể bắt kịp bằng cách truy cập các liên kết này!
Cách sử dụng dạng xem trong truy vấn SQL
Mặc dù dạng xem SQL được coi là bảng ảo, cách sử dụng của chúng không khác với bảng cụ thể. Bạn có thể sử dụng một chế độ xem giống như bất kỳ bảng nào khác.
Hãy xem một ví dụ bằng cách sử dụng chế độ xem có tên FriendView
được tạo trên đầu bảng Person
. Xem bảng Person
bên dưới:
IdNameFriendId
………
Để tạo chế độ xem FriendView
, chúng tôi sẽ sử dụng truy vấn sau:
TẠO CHẾ ĐỘ XEM FriendView AS CHỌN người.Id as Id, person.Name as Name, friend.Name as Friend TỪ Người người THAM GIA NGƯỜI BẠN ON person.FriendId = friend.Id;
Sau đó, chúng tôi có thể chạy một truy vấn xử lý chế độ xem FriendView
giống như một bảng bình thường như được hiển thị bên dưới:
CHỌN Tên, Bạn bè TỪ FriendView WHERE Tên LIKE 'F%';
Truy vấn trên xuất ra hai cột từ chế độ xem FriendView
. Các hàng có trong tập kết quả phải đáp ứng điều kiện mệnh đề WHERE
cho biết rằng tên của người đó phải bắt đầu bằng chữ cái “F.”
Chế độ xem SQL hoạt động như thế nào?
Trong phần trước, chúng ta đã biết rằng một dạng xem SQL có thể được coi như một bảng bình thường. Tuy nhiên, dưới cơ bản, có sự khác biệt giữa chế độ xem và bảng biểu.
Một bảng (bảng cụ thể) lưu trữ dữ liệu của nó trong các cột và hàng trong cơ sở dữ liệu. Một khung nhìn (bảng ảo) được xây dựng trên đầu (các) bảng cụ thể mà nó lấy dữ liệu từ đó và không lưu trữ bất kỳ dữ liệu nào của riêng nó trong cơ sở dữ liệu. Một chế độ xem chỉ chứa truy vấn SQL được sử dụng để tìm nạp dữ liệu.
Tóm lại, tập hợp kết quả của một chế độ xem không được hiện thực hóa trên đĩa và truy vấn được lưu trữ bởi chế độ xem được chạy mỗi khi chúng tôi gọi chế độ xem. Hãy xem sơ đồ bên dưới để hiểu sự khác biệt giữa bảng bê tông và bảng ảo.
Hãy tạo một số chế độ xem SQL
Giờ chúng ta đã biết dạng xem SQL là gì và cách sử dụng chúng, hãy xem cú pháp để tạo dạng xem trong SQL. Xem truy vấn cơ bản bên dưới:
TẠO VIEW view_name AS CHỌN cột_danh sách TỪ_danh_sách_bảng;
Lệnh CREATE VIEW
tạo một dạng xem có tên view_name
. Theo sau mệnh đề AS
là một truy vấn SQL sẽ được lưu trữ trong một dạng xem.
Bây giờ, hãy xem một ví dụ sử dụng bảng Food
và Animals
để tạo Chế độ xem AnimalFoodView
. Xem bảng Thực phẩm
và Động vật
bên dưới:
IdFoodName
1Meat
2lgae
3 Hạt giống
AnimalIdAnimalTypeFoodId
1Lion1
2Fish2
3Bird3
Hãy tạo một chế độ xem có tên là AnimalFoodView
dựa trên các bảng được xác định ở trên:
TẠO CHẾ ĐỘ XEM AnimalFoodView AS CHỌN a.AnimalType, f.FoodName TỪ Động vật a THAM GIA Food f ON a.FoodId = f.Id;
Bây giờ chế độ xem đã được tạo, chúng ta có thể coi nó như một bảng bình thường. Xin lưu ý rằng chế độ xem sẽ chỉ tạo tập hợp kết quả của nó khi tên của nó được gọi như được hiển thị trong truy vấn mẫu bên dưới:
CHỌN * từ AnimalFoodView;
Đầu ra bên dưới tương đương với đầu ra của truy vấn được lưu trữ trong dạng xem:
AnimalTypeFoodName
LionMeat
Cá
BirdSeeds
Có thể có một tình huống mà bạn muốn tạo hoặc thay thế chế độ xem nếu nó đã tồn tại. Cú pháp dưới đây cho thấy một cách để thực hiện việc này:
TẠO HOẶC THAY THẾ VIEW view_name AS CHỌN cột_danh sách TỪ_danh_sách_bảng;
Hãy thay thế AnimalFoodView
của chúng tôi để nó chỉ hiển thị các hàng Fish
và Bird
.
TẠO HOẶC THAY THẾ VIEW AnimalFoodView AS CHỌN a.AnimalType, f.FoodName TỪ Động vật a THAM GIA Food f ON a.FoodId = f.Id WHERE AnimalType = 'Cá' OR AnimalType = 'Chim';
Truy vấn ban đầu được lưu trong AnimalFoodView
hiện được thay thế bằng truy vấn trên. Hãy chạy một câu lệnh SELECT
khác để đảm bảo rằng việc thay thế chế độ xem đã diễn ra:
CHỌN * từ AnimalFoodView;
Đầu ra bên dưới một lần nữa tương đương với đầu ra của truy vấn được lưu trữ trong dạng xem:
AnimalTypeFoodName
Cá
BirdSeeds
Với việc đào tạo và thực hành, thật dễ dàng để làm việc với các dạng xem SQL. Khóa học Khóa học Làm việc với Chế độ xem của chúng tôi là một cách tuyệt vời để thực hiện điều này!
Có thể làm gì khác với chế độ xem SQL?
Sửa đổi chế độ xem
Cũng có thể sửa đổi chế độ xem sau khi nó được tạo. Hãy sử dụng chế độ xem AnimalFoodView
được xác định trong phần trước. Nếu chúng ta muốn sử dụng cột AnimalId
thay vì cột AnimalName
, chúng ta có thể sử dụng câu lệnh ALTER VIEW
như sau:
ALTER XEM AnimalFoodView AS CHỌN a.AnimalId, f.FoodName TỪ Động vật a THAM GIA Food f ON a.FoodId = f.Id;
Bây giờ, câu lệnh SELECT trả về ID động vật thay vì tên.
CHỌN * từ AnimalFoodView;
AnimalIdFoodName
1Meat
2Algae
3 Hạt giống
Nếu chế độ xem tồn tại trong cơ sở dữ liệu, các lệnh CREATE OR REPLACE VIEW
và ALTER VIEW
có cùng tác dụng.
Bỏ qua một lượt xem
Nếu bạn muốn xóa một chế độ xem, chỉ cần sử dụng lệnh DROP VIEW
như hình dưới đây:
DROP XEM AnimalFoodView;
Sau khi thực hiện lệnh DROP VIEW
, chế độ xem không tồn tại trong cơ sở dữ liệu nữa.
Khi nào bạn nên sử dụng dạng xem SQL?
Tình huống I
Một trong những lý do đơn giản nhất để sử dụng dạng xem SQL là khi bạn có một truy vấn dài và phức tạp. Để tiết kiệm thời gian nhập lại và chạy truy vấn, bạn có thể lưu trữ nó trong một dạng xem và chỉ cần chạy câu lệnh SELECT
trên dạng xem đó.
Hãy xem một ví dụ sử dụng bảng Khách hàng
và Đơn hàng
để tạo CustomerOrderView
xem. Xem bảng Khách hàng
và Đơn hàng
bên dưới:
IdCustNameOrderId
1Anne1
2Carl2
3Taylor3
IdProductQuantity
1Apple4
2Apple7
3Pear9
Hãy tạo chế độ xem CustomerOrderView
trên đầu các bảng được xác định ở trên:
TẠO CHẾ ĐỘ XEM CustomerOrderView AS CHỌN Id, CustName Từ khách hàng ĐẶT HÀNG Ở ĐÂU ( CHỌN Id TỪ Đơn đặt hàng WHERE Số lượng & gt; 5 AND (Product = 'Apple' OR Product = 'Pear'));
Bây giờ, thay vì gọi truy vấn phức tạp được lưu trữ trong dạng xem này, bạn có thể sử dụng câu lệnh SELECT đơn giản như được hiển thị bên dưới:
Tình huống II
Kiểm soát truy cập vào dữ liệu được lưu trữ trong cơ sở dữ liệu là một lý do khác tại sao bạn nên sử dụng các dạng xem SQL. Thông thường, quy tắc về đặc quyền ít nhất được tuân theo (nghĩa là người dùng được cấp các đặc quyền hạn chế nhất có thể để đáp ứng các yêu cầu của họ.) Ví dụ: nếu người dùng cần đọc từ bảng A, thì chỉ đặc quyền đọc phải được gán cho anh ấy / cô ấy chứ không phải đặc quyền đọc / ghi.
Giả sử rằng chúng ta có bảng Khách hàng
chứa dữ liệu nhạy cảm về khách hàng của công ty. Các nhân viên hành chính của công ty này sẽ có thể thấy tên và địa chỉ email của khách hàng chứ không có gì khác và họ sẽ không có quyền truy cập trực tiếp vào bảng Clients
để đọc từ hoặc viết vào nó.
Chúng tôi giải quyết vấn đề này như thế nào? Lượt xem! Chúng tôi có thể tạo chế độ xem SQL và cho phép tất cả nhân viên quản trị đọc từ chế độ xem này.
Xem bảng Khách hàng
bên dưới:
IdFirstNameLastNameEmailPhoneNoSSNDateOfBirth
1BenReynoldsben.r@email.com044477733331276430976402-02-1987
2BettyConneybetty.c@email.com033366611115623458734612-08-1985
3AliceKenfordalice.k@email.com044455588884523678365430-09-1977
Truy vấn để tạo dạng xem hiển thị các cột Id
, FirstName
, LastName
và Email
của bảng Khách hàng
được hiển thị bên dưới:
TẠO CHẾ ĐỘ XEM Khách hàng Xem AS CHỌN Id, FirstName, LastName, Email TỪ Khách hàng;
Và giờ đây, chúng tôi có thể chỉ định quyền đọc từ chế độ xem này cho tất cả các nhân viên quản trị.
CHỌN * TỪ ClientsView;
IdFirstNameLastNameEmail
1BenReynoldsben.r@email.com
2BettyConneybetty.c@email.com
3AliceKenfordalice.k@email.com
Tình huống III
Dạng xem SQL cũng hữu ích khi cấu trúc lại cơ sở dữ liệu. Để hiểu vai trò của các dạng xem SQL trong quá trình tái cấu trúc cơ sở dữ liệu, hãy xem các ví dụ bên dưới.
Trước khi tái cấu trúc, chế độ xem View1
được tạo trên đầu trang của Table1
và Table2 < / code> các bảng và chế độ xem
View2
được xây dựng dựa trên Table2
và Table3 < / code> bảng. Người dùng chỉ thao tác trên
View1
và View2
.
Quản trị viên cơ sở dữ liệu quyết định cấu trúc lại cơ sở dữ liệu để bảng Table2
chứa dữ liệu của cả Table2
và Table3
. Sau quá trình tái cấu trúc như vậy, người dùng vẫn sử dụng View1
và View2
như được hiển thị bên dưới, mặc dù truy vấn của View2
đã được sửa đổi trong khi cấu trúc lại. Do đó, người dùng không bị gián đoạn bởi quá trình tái cấu trúc.
Nếu người dùng thao tác trực tiếp trên bảng Table1
và quản trị viên cơ sở dữ liệu quyết định cấu trúc lại bảng này, a chế độ xem có thể được giới thiệu ở vị trí của bảng này. Người dùng sẽ không biết sự khác biệt vì các chế độ xem giống như các bảng bình thường.
Quyết định sử dụng bảng trực tiếp hay dạng xem thay cho bảng là rất quan trọng ở phần đầu của tạo cấu trúc cơ sở dữ liệu . Hãy xem theo dõi khóa học của chúng tôi về Tạo cấu trúc cơ sở dữ liệu để tìm hiểu thêm!
Hãy xem một ví dụ trong thế giới thực về việc tái cấu trúc các bảng cơ sở dữ liệu. Hãy tưởng tượng rằng chúng ta có một bảng Cars
không phù hợp với các dạng bình thường của cơ sở dữ liệu nhưng vẫn được người dùng cơ sở dữ liệu sử dụng. Xem bảng Ô tô
bên dưới:
IdCarNameModelProductionYears
1Ford Kuga2010, 2014, 2019
2Mercedes Benz2013, 2017
3Toyota Yaris2007, 2009
Chúng tôi có thể giới thiệu chế độ xem CarView
thay cho bảng Cars
. Sau đó, chúng tôi có thể cấu trúc lại bảng để làm cho nó phù hợp với các dạng thông thường của cơ sở dữ liệu.
TẠO CHẾ ĐỘ XEM CarView AS LỰA CHỌN * TỪ Ô tô;
Giờ đây, người dùng có thể sử dụng chế độ xem CarView thay vì bảng Cars
và mã Cars > bảng có thể trải qua quá trình tái cấu trúc. Bởi vì chế độ xem được sử dụng giống như các bảng thông thường, người dùng sẽ không gặp bất kỳ tác dụng phụ nào khi sử dụng chế độ xem thay cho bảng.
Kết luận
Để tóm tắt hành trình của chúng tôi thông qua các dạng xem SQL, chúng tương đối dễ sử dụng và có thể mang lại lợi ích cho cơ sở dữ liệu theo nhiều cách khác nhau. Chúng ta có thể sử dụng chúng để tiết kiệm thời gian và công sức cũng như tránh mọi tác dụng phụ của các tác vụ quản trị cơ sở dữ liệu.
Cần biết rằng dạng xem SQL không phải là một bảng cụ thể với dữ liệu: nó chỉ là một truy vấn SQL đã lưu. Tuy nhiên, khi được sử dụng trong các truy vấn SQL, nó hoạt động chính xác như một bảng bình thường. Do đó, nó được coi là một tính năng mạnh mẽ của SQL mà bất kỳ ai quan tâm đến thiết kế cơ sở dữ liệu đều có thể hiểu được.
Xem thêm những thông tin liên quan đến chủ đề cách xem sql
Phần 8 | Hướng dẫn tìm hiểu proc procedure trong SQL Server - Lập trình SQL Server, MySQL
- Tác giả: GokiSoft - Học Lập Trình Online
- Ngày đăng: 2020-08-15
- Đánh giá: 4 ⭐ ( 5385 lượt đánh giá )
- Khớp với kết quả tìm kiếm: [SQL Server] Hướng dẫn tìm hiểu proc procedure trong SQL Server - Lập trình SQL Server, MySQL
https://gokisoft.com/share-code-tim-hieu-ve-view--stored-proceduce--function-trong-sql-server-lap-trinh-sql-server.html
SQL SqlServer GokiSoft
Xem dữ liệu trong SQL Server 2014 (Bài 7)
- Tác giả: giasutinhoc.vn
- Đánh giá: 4 ⭐ ( 1511 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Làm thế nào để xác định phiên bản, phiên bản, và mức độ Cập Nhật SQL Server và các thành phần
- Tác giả: support.microsoft.com
- Đánh giá: 5 ⭐ ( 4436 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Mô tả cách xác định phiên bản SQL Server đang chạy.
Làm cách nào để tìm cổng đang chạy SQL Server?
- Tác giả: qastack.vn
- Đánh giá: 3 ⭐ ( 3536 lượt đánh giá )
- Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Thử cái này: USE master GO xp_readerrorlog 0, 1, N'Server is listening on' GO http://www.mssqltips.com/sqlservertip/2495/identify-sql-server-tcp-ip-port-being-used/
Xem SQL Online
- Tác giả: products.groupdocs.app
- Đánh giá: 3 ⭐ ( 5033 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Trình xem SQL trực tuyến miễn phí. Mở và xem SQL tệp trực tuyến miễn phí.
SQL Server: Câu lệnh SQL hiển thị các bảng
- Tác giả: timoday.edu.vn
- Đánh giá: 4 ⭐ ( 6571 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Hướng dẫn cách viết câu lệnh hiển thị tất cả các bảng (Table) hoặc View trong cơ sở dữ liệu (Database) của hệ quản trị cơ sở dữ liệu SQL Server 2000, 2005 hoặc mới hơn
Cách để Mở tập tin SQL
- Tác giả: www.wikihow.vn
- Đánh giá: 5 ⭐ ( 2701 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Bài viết này sẽ hướng dẫn bạn cách mở và xem nội dung của tập tin dữ liệu SQL (ngôn ngữ truy vấn mang tính cấu trúc). Tập tin này chứa mã (code) cụ thể để chỉnh sửa nội dung của cơ sở dữ liệu quan hệ và cấu trúc cơ sở dữ liệu. Bạn có thể...
Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình