Chế độ xem VIEWS trong cơ sở dữ liệu là gì? Và tại sao chúng lại cần thiết? Chế độ xem trong SQL

Cập nhật lần cuối: 14/08/2017

Chế độ xem hoặc Chế độ xem đại diện cho các bảng ảo. Nhưng không giống như các bảng tiêu chuẩn thông thường trong cơ sở dữ liệu, các khung nhìn chứa các truy vấn truy xuất động dữ liệu đang được sử dụng.

Lượt xem mang lại cho chúng tôi một số lợi thế. Chúng đơn giản hóa các hoạt động SQL phức tạp. Chúng bảo vệ dữ liệu vì các chế độ xem có thể cấp quyền truy cập vào một phần của bảng thay vì toàn bộ bảng. Chế độ xem cũng cho phép bạn trả về các giá trị được định dạng từ các bảng một cách hữu ích và hữu ích.

Để tạo chế độ xem, hãy sử dụng lệnh CREATE VIEW, có dạng sau:

TẠO VIEW view_name [(cột_1, cột_2, ....)] NHƯ biểu thức SELECT

Ví dụ: giả sử chúng ta có ba bảng liên quan:

TẠO BẢNG Sản phẩm (Id INT IDENTITY PRIMARY KEY, ProductName NVARCHAR(30) NOT NULL, Nhà sản xuất NVARCHAR(20) NOT NULL, ProductCount INT DEFAULT 0, Giá TIỀN KHÔNG NULL); TẠO BẢNG Khách hàng (Id INT IDENTITY PRIMARY KEY, FirstName NVARCHAR(30) NOT NULL); TẠO BẢNG Đơn hàng (Id INT IDENTITY PRIMARY KEY, ProductId INT NOT NULL THAM KHẢO Sản phẩm(Id) TRÊN XÓA CASCADE, CustomerId INT KHÔNG NULL THAM KHẢO Khách hàng(Id) TRÊN XÓA CASCADE, CreatedAt DATE NOT NULL, ProductCount INT MẶC ĐỊNH 1, Giá TIỀN KHÔNG NULL );

Bây giờ, hãy thêm chế độ xem sau vào cơ sở dữ liệu chứa dữ liệu bảng:

TẠO XEM Đơn hàngSản phẩmKhách hàng NHƯ Đơn hàng CHỌN.CreatedAt AS Ngày đặt hàng, Khách hàng.FirstName AS Khách hàng, Products.ProductName Là Sản phẩm TỪ Đơn hàng INNER THAM GIA Sản phẩm TRÊN Đơn hàng.ProductId = Products.Id INNER THAM GIA Khách hàng TRÊN Đơn hàng.CustomerId = Khách hàng.Id

Nghĩa là, chế độ xem này thực sự sẽ trả về dữ liệu tóm tắt từ ba bảng. Và sau khi tạo, chúng ta có thể thấy nó trong nút Lượt xem của cơ sở dữ liệu đã chọn trong SQL Server Management Studio:

Bây giờ chúng tôi sử dụng chế độ xem được tạo ở trên để lấy dữ liệu:

CHỌN * TỪ Đơn hàngSản phẩmKhách hàng

Khi tạo dạng xem, hãy nhớ rằng dạng xem, giống như bảng, phải có tên duy nhất trong cùng một cơ sở dữ liệu.

Chế độ xem có thể có tối đa 1024 cột và có thể truy cập tối đa 256 bảng.

Bạn cũng có thể tạo chế độ xem dựa trên các chế độ xem khác. Những khung nhìn như vậy còn được gọi là khung nhìn lồng nhau. Tuy nhiên, mức lồng nhau không thể lớn hơn 32.

Lệnh SELECT được sử dụng trong dạng xem không thể bao gồm mệnh đề INTO hoặc ORDER BY (trừ khi mệnh đề TOP hoặc OFFSET cũng được sử dụng). Nếu bạn cần sắp xếp dữ liệu trong dạng xem thì mệnh đề ORDER BY được sử dụng trong lệnh SELECT để truy xuất dữ liệu từ dạng xem.

Ngoài ra, khi tạo chế độ xem, bạn có thể xác định một tập hợp các cột của nó:

TẠO XEM Đơn hàngSản phẩmKhách hàng2 (Ngày đặt hàng, Khách hàng,Sản phẩm) NHƯ LỰA CHỌN Đơn hàng.CreatedAt, Khách hàng.FirstName, Sản phẩm.ProductName TỪ Đơn hàng INNER THAM GIA Sản phẩm TRÊN Đơn hàng.ProductId = Products.Id INNER THAM GIA Khách hàng TRÊN Đơn hàng.CustomerId = Khách hàng.Id

Thay đổi chế độ xem

Để thay đổi chế độ xem, hãy sử dụng lệnh ALTER VIEW. Lệnh này có cú pháp gần như giống với CREATE VIEW :

THAY ĐỔI XEM view_name [(cột_1, cột_2, ....)] NHƯ biểu thức CHỌN

Ví dụ: hãy thay đổi chế độ xem Đơn hàngSản phẩmKhách hàng được tạo ở trên:

THAY ĐỔI XEM Đơn hàngSản phẩmKhách hàng NHƯ Đơn hàng CHỌN.CreatedAt AS Ngày đặt hàng, Khách hàng.FirstName AS Khách hàng, Products.ProductName AS Product, Products.Nhà sản xuất NHƯ Nhà sản xuất TỪ Đơn hàng INNER THAM GIA Sản phẩm TRÊN Đơn hàng.ProductId = Products.Id INNER THAM GIA Khách hàng TRÊN Đơn hàng.CustomerId = Khách hàng .Nhận dạng

Xóa chế độ xem

Để xóa chế độ xem, hãy sử dụng lệnh DROP VIEW:

DROP XEM Đơn hàngSản phẩmKhách hàng

Cũng cần lưu ý rằng khi xóa bảng, bạn cũng nên xóa các dạng xem sử dụng các bảng đó.

1) Khái niệm về biểu diễn
Chế độ xem là các đối tượng cơ sở dữ liệu không chứa bảng riêng của chúng nhưng nội dung của chúng được lấy từ các bảng hoặc chế độ xem khác bằng cách thực hiện truy vấn.

2) Tạo chế độ xem
TẠO CHẾ ĐỘ XEM
[()]
BẰNG
KIỂM TRA TÙY CHỌN]

Ghi chú:
Trong SQL Server, văn bản của chế độ xem có thể được mã hóa bằng tùy chọn VỚI ENCRYPTION sau tên chế độ xem.

3) Xóa lượt xem
THẢ XEM CASDADE|HẠN CHẾ

Ghi chú:
HẠN CHẾ– Không được có tham chiếu đến chế độ xem bị xóa trong chế độ xem và các ràng buộc, nếu không việc xóa sẽ bị từ chối.
CASADE– có nghĩa là xóa tất cả các đối tượng tham chiếu chế độ xem này.

4) Từ khóa
Một) đệ quy
Một đại diện được tạo ra để nhận các giá trị từ chính nó.
b) VỚI TÙY CHỌN KIỂM TRA
Ngăn chặn cập nhật bảng dựa trên chế độ xem nếu dữ liệu được thay đổi hoặc thêm vào không được phản ánh trong chế độ xem.
Việc cấm chỉ áp dụng cho các giá trị không đáp ứng các điều kiện được chỉ định trong mệnh đề WHERE.
c) ĐỊA PHƯƠNG
Các điều khiển thay đổi bảng cơ sở chỉ được phản ánh trong chế độ xem hiện tại.
d) TUYỆT VỜI
Kiểm soát xem các thay đổi có được phản ánh trong tất cả các chế độ xem được xác định trên một chế độ xem nhất định hay không.

5) Hạn chế và tính năng
1. Tên cột thường được chỉ định khi một số cột được tính toán và do đó không được đặt tên và khi hai hoặc nhiều cột có cùng tên trong các bảng tương ứng trong truy vấn. Luôn có trong InterBase.
2. Trong một số DBMS, bạn không thể sử dụng phần ORDER BY, phần này cung cấp khả năng sắp xếp.
3. Chế độ xem có thể được kết nối với cả bảng cơ sở và các chế độ xem khác bằng cách sử dụng truy vấn trên cả hai đối tượng.

6) Tiêu chí cập nhật lượt xem
1. Nó chỉ nên dựa trên một bảng. Điều mong muốn là nó bao gồm khóa chính của bảng.
2. Nó không được chứa các cột do các hàm tổng hợp tạo ra.
3. Nó không được chứa đặc tả DISTINCT trong định nghĩa của nó.
4. Nó không thể sử dụng GROUP BY hoặc HAVING trong định nghĩa của nó.
5. Nó không được chứa các truy vấn phụ.
6. Nếu nó được xác định trên một khung nhìn khác thì nó phải có thể cập nhật được.
7. Nó không thể bao gồm các hằng số, chuỗi hoặc biểu thức trong danh sách các trường đầu ra. Không được phép sắp xếp lại và đổi tên các trường.
8. Đối với câu lệnh INSERT, nó phải bao gồm bất kỳ trường nào từ các khung nhìn cơ bản của bảng cơ sở có các ràng buộc NOT NULL, nhưng giá trị mặc định có thể được đặt thành một giá trị khác.

7) Ví dụ

1. TẠO VIEW LondonStaff
NHƯ CHỌN * TỪ Nhân viên bán hàng WHERE City='London'

2. TẠO CHẾ ĐỘ XEM SalesOwn
NHƯ CHỌN SNum, SName, Thành phố TỪ Nhân viên bán hàng

3. TẠO Tên Đơn hàng XEM
NHƯ CHỌN ONum, Amt, A.SNum, SName, CName
TỪ Đơn hàng A, Khách hàng B, Nhân viên bán hàng C
Ở ĐÂU A.CNum=B.CNum VÀ A.SNUM=C.SNum

Ví dụ về chặn cập nhật:

1. TẠO VIEW HighRating NHƯ SELECT CNum, Rating

2. Thêm một dòng mà view không nhìn thấy:
CHÈN VÀO CÁC GIÁ TRỊ HighRating(2018, 200)
3. Chúng tôi cấm thêm các dòng ngoài tầm nhìn:
TẠO XEM HighRating NHƯ CHỌN CNum, Xếp hạng
TỪ Khách hàng Ở ĐÂU Xếp hạng=300
VỚI TÙY CHỌN KIỂM TRA
4. Tạo một cái mới cho phép bạn thêm lại:
TẠO XEM MyRating NHƯ CHỌN * TỪ HighRating

Hiệu suất là một bảng ảo. Trong thực tế, một khung nhìn chỉ là kết quả của câu lệnh SELECT, được lưu trữ trong cấu trúc bộ nhớ giống như SQL bảng, ví dụ, Lời tiên tri. Đối với những người làm việc với một view, việc thao tác với dữ liệu của nó không khác gì thao tác với dữ liệu bảng. Trong một số trường hợp, người dùng có thể nhập dữ liệu vào dạng xem như thể đó là một bảng. Khi làm việc với một bài thuyết trình bạn cần nhớ rằng:

  • Chế độ xem thêm một lớp bảo mật dữ liệu (ví dụ: bạn có thể tạo chế độ xem trên bảng trong đó người dùng thực hiện CHỌN trên chế độ xem chỉ nhìn thấy thông tin về lương)
  • Chế độ xem có thể ẩn độ phức tạp của dữ liệu bằng cách kết hợp thông tin liên quan từ nhiều bảng
  • Chế độ xem có thể ẩn tên cột thực tế, đôi khi khó hiểu và hiển thị các tên đơn giản hơn.

Chế độ xem được tạo bằng lệnh. Sau khi được tạo, các khung nhìn sẽ trở thành một phần trong lược đồ của người dùng đã tạo ra chúng. Bạn có thể gán lại chúng cho người dùng khác khi anh ta có đặc quyền hệ thống TẠO BẤT KỲ CHẾ ĐỘ XEM NÀO.

TẠO XEM Cú pháp lệnh Oracle

Cú pháp tạo lệnh xem

Từ khóa và thông số cơ bản TẠO XEM Oracle :
HOẶC THAY THẾ, FORCE, NOFORCE, Lược đồ, Xem, Bí danh, NHƯ truy vấn con, VỚI TÙY CHỌN KIỂM TRA, Ràng buộc

HOẶC THAY THẾ- tạo lại chế độ xem nếu nó đã tồn tại. Bạn có thể sử dụng tùy chọn này để thay đổi định nghĩa của một khung nhìn mà không cần phải xóa nó, tạo lại nó và gán lại bất kỳ đặc quyền đối tượng nào đã được gán cho khung nhìn đó;

LỰC LƯỢNG- tạo chế độ xem bất kể các bảng cơ bản của chế độ xem có tồn tại hay không và liệu chủ sở hữu của lược đồ chứa chế độ xem có đặc quyền trên các bảng đó hay không. Điều cần thiết là phải đáp ứng cả hai điều kiện này trước khi đưa ra bất kỳ đề xuất nào về giải trình này. LỰA CHỌN, CHÈN, CẬP NHẬT hoặc XÓA BỎ. Cài đặt mặc định là KHÔNG CÓ LỰC LƯỢNG;

KHÔNG CÓ LỰC LƯỢNG- chỉ tạo chế độ xem nếu các bảng cơ sở của chế độ xem này tồn tại và chủ sở hữu lược đồ chứa chế độ xem có các đặc quyền trên các bảng này;

Lược đồ- lược đồ trong đó biểu diễn được tạo ra. Nếu SCHEME bị bỏ qua thì ORACLE tạo chế độ xem trong lược đồ của người dùng;

Xem- từ khóa xemđây là tên của dạng xem cần tạo;

Bí danh— chỉ định tên cho các biểu thức được chọn bởi truy vấn dạng xem. Số bí danh phải khớp với số biểu thức được truy vấn phụ chọn. Bí danh phải tuân thủ quy tắc đặt tên cho các đối tượng lược đồ. Bí danh phải là duy nhất trong một chế độ xem. Nếu bí danh bị bỏ qua thì ORACLE xác định chúng theo tên cột hoặc bí danh trong truy vấn dạng xem. Do đó, bạn cần sử dụng bí danh nếu truy vấn dạng xem chứa các biểu thức ngoài tên cột;

NHƯ truy vấn con— xác định các cột và hàng của bảng làm cơ sở cho dạng xem. Yêu cầu đệ trình có thể là bất kỳ đề xuất nào LỰA CHỌN, không chứa cụm từ ĐẶT BỞI hoặc ĐỂ CẬP NHẬT. Danh sách lựa chọn của nó có thể chứa tới 254 biểu thức;

VỚI TÙY CHỌN KIỂM TRA- chỉ ra rằng các thao tác chèn và cập nhật sẽ được thực hiện thông qua truy vấn này sẽ chỉ dẫn đến các hàng có thể được chọn bởi truy vấn của cùng một chế độ xem. Lựa chọn KIỂM TRA TÙY CHỌN không thể đảm bảo điều này nếu có truy vấn phụ trong yêu cầu cho chế độ xem này hoặc bất kỳ chế độ xem nào dựa trên chế độ xem này. Nói cách khác, khi xác định tham số VỚI TÙY CHỌN KIỂM TRA người dùng không thể nhập, xóa hoặc cập nhật thông tin từ một bảng mà từ đó anh ta không thể đọc thông tin thông qua một chế độ xem đơn giản (được tạo từ dữ liệu trong một bảng duy nhất). Không thể tạo chế độ xem có thể cập nhật sử dụng nhiều bảng liên quan bằng tùy chọn này;

Hạn chế- tên được gán cho ràng buộc KIỂM TRA TÙY CHỌN. Nếu mã định danh này bị bỏ qua thì ORACLE tự động gán cho ràng buộc này một cái tên như thế này:

SYS_Cn trong đó n là số nguyên làm cho tên ràng buộc là duy nhất trong cơ sở dữ liệu.

Ưu điểm của việc sử dụng dạng xem thay vì bảng cơ sở là nó tự động cập nhật khi các bảng hình thành nên nó thay đổi. Nội dung của chế độ xem không cố định nhưng được tính toán lại bất cứ khi nào bạn tham chiếu chế độ xem trong lệnh.

Nếu lệnh cập nhật DML (CHÈN, CẬP NHẬT, XÓA BỎ) có thể được áp dụng cho một khung nhìn, khung nhìn đó được cho là có thể cập nhật được; nếu không thì nó ở chế độ chỉ đọc. Một chế độ xem có thể cập nhật nếu các tiêu chí sau được tính đến khi tạo chế độ xem:

  • chế độ xem phải bao gồm khóa chính của bảng
  • không được chứa các trường thu được do áp dụng các hàm tổng hợp
  • không được chứa DISTINCT, GROUP BY, HAVING trong định nghĩa của nó
  • có thể được xác định trên một chế độ xem khác, nhưng chế độ xem đó phải có thể cập nhật được
  • không thể chứa hằng số, chuỗi hoặc biểu thức (ví dụ: comm*100) trong danh sách các trường đầu ra có thể chọn

Ví dụ 1.
TẠO XEM Oracle.
Một chế độ xem đơn giản được tạo từ dữ liệu từ một bảng duy nhất:

Luân Đôn_view NHƯ CHỌN * TỪ Nhân viên bán hàng Ở ĐÂU thành phố = 'London';

Ví dụ 2.
TẠO XEM Oracle.
Khi tạo chế độ xem, bạn có thể chỉ định tên trường mới:

Rating_view(xếp hạng, số) BẰNG LỰA CHỌN Xếp hạng, ĐẾM(*) TỪ Khách hàng NHÓM THEO Xếp hạng;

Ví dụ 3.
TẠO XEM Oracle.
Chế độ xem có thể nhận thông tin từ bất kỳ số lượng bảng cơ sở nào:

Thứ tự đặt tên BẰNG LỰA CHỌN onum, amt, a.snum, sname, cname TỪĐơn đặt hàng a, Khách hàng b, Nhân viên bán hàng C Ở ĐÂU a.cnum = b.cnum a.snum = c.snum;

Ví dụ 4.
TẠO XEM Oracle.
Khi tạo chế độ xem, bạn có thể sử dụng truy vấn phụ, bao gồm các truy vấn phụ có liên quan:

lượt xem bán hàng BẰNG LỰA CHỌN b.odate, a.snum, a.sname, TỪ Nhân viên bán hàng a, Đơn đặt hàng b Ở ĐÂU a.snum = b.snum b.amt = ( CHỌN TỐI ĐA(amt) TỪĐơn đặt hàng từ Ở ĐÂU c.odate = b.odate);

Ví dụ 5.
TẠO XEM Oracle.

Emmpl_v04 NHƯ CHỌN e.eid, e.sname, e.fname, e.otch, p.pname, d.dname TỪ bài p, phòng ban d, nhân viên e Ở ĐÂU e.did = d.did e.pid = p.pid;

đại diện

Gỡ bỏ

Đổi tên

Thay đổi

Quản lý thủ tục lưu trữ

Để thay đổi một thủ tục hiện có, hãy sử dụng câu lệnh ALTER PROC; các tham số của lệnh này tương tự như các tham số của lệnh tạo một thủ tục.

Để thực hiện việc này, bạn cần sử dụng một quy trình lưu trữ hệ thống đặc biệt:

sp_rename 'Tên đối tượng' 'Tên đối tượng mới'.

Để xóa một thủ tục đã lưu trữ, hãy sử dụng lệnh Transact‑SQL:

Tên thủ tục DROP PROC.

Hiệu suất(Chế độ xem) là một đối tượng khác tạo nên cấu trúc logic của bất kỳ cơ sở dữ liệu nào. Chế độ xem của người dùng cuối trông giống như một bảng, nhưng không chứa dữ liệu mà chỉ thể hiện nó. Dữ liệu được biểu diễn vật lý nằm trong các bảng cơ sở dữ liệu khác nhau.

Chế độ xem được triển khai dưới dạng một truy vấn đã lưu, trên cơ sở đó việc lựa chọn được thực hiện từ các bảng cơ sở dữ liệu khác nhau.

Lượt xem có những lợi ích sau:

· đảm bảo bí mật thông tin, bởi vì cho phép bạn chỉ hiển thị những thông tin cần thiết, ẩn một số trường nhất định;

· đơn giản hóa việc trình bày dữ liệu, bởi vì người dùng làm việc với dạng xem dưới dạng một bảng duy nhất, được tạo dựa trên việc lựa chọn dữ liệu từ một số bảng;

· quản lý quyền truy cập dữ liệu, ví dụ, thay vì cấp quyền thực hiện truy vấn trên các trường bảng nhất định, việc cho phép thực hiện truy vấn thông qua chế độ xem sẽ dễ dàng hơn.

MS SQL Server cung cấp nhiều cách khác nhau để tạo chế độ xem: sử dụng công cụ Transact-SQL và trong tiện ích quản trị Xưởng quản lý.

Để tạo chế độ xem, hãy sử dụng lệnh CREATE VIEW và các thành viên có vai trò có quyền thực thi nó quản trị hệ thống, db_owner, db_dlladmin:

TẠO CHẾ ĐỘ XEM ViewName [(field [,...n])]

Mẫu truy vấn

Khi được chỉ định Tên xem cần phải tuân thủ các quy tắc đặt tên đối tượng đã xác định trước đó, tên này không được trùng với tên của bảng hiện có trong cơ sở dữ liệu. Tham số VỚI MÃ HÓA xác định mã hóa mã yêu cầu và đảm bảo rằng người dùng không thể xem hoặc sử dụng nó.

Mẫu truy vấn là một câu lệnh SELECT có các tham số xác định nội dung của khung nhìn. Tên trường xem được chỉ định bằng cách sử dụng bí danh trong câu lệnh chọn hoặc được chỉ định trong tham số cánh đồng.

Ví dụ: hãy tạo chế độ xem chỉ chứa thông tin sau về nhân viên của công ty Tác phẩm Phiêu lưu , chẳng hạn như: vị trí và thông tin đăng nhập của nhân viên, ngày sinh.

TẠO XEM Thông tin Nhân viên ([Số], [Họ], [Ngày sinh]) NHƯ

CHỌN BusinessEntityID, JobTitle + "(" + ID đăng nhập + ")",

CHUYỂN ĐỔI (char(10), Ngày sinh, 104)

TỪ HumanResources.Employee

Để xem nội dung của phép chiếu, truy vấn sau được thực hiện:

CHỌN * TỪ Thông tin nhân viên

Sử dụng chế độ xem này, quyền truy cập vào một số trường của bảng nguồn bị hạn chế Người lao động, trong trường hợp này họ nói rằng cái bàn được xếp chồng lên nhau bộ lọc dọc, I E. Quyền truy cập vào một số trường bảng bị hạn chế nếu không có bảo vệ cấp cột.

Nếu một điều kiện để chọn bản ghi được xác định trong mã truy vấn lựa chọn thì bảng được cho là phải tuân theo bộ lọc ngang. Ví dụ: chế độ xem sau cung cấp quyền truy cập vào thông tin về các nhà sản xuất có dịch vụ đặt hàng trực tuyến:

TẠO CHẾ ĐỘ XEM Trực tuyếnNhà cung cấp

TỪ Mua hàng.Vendor

Ở ĐÂU PurchaseWebServiceURL KHÔNG CÓ NULL

Lệnh CHỌN ở bất kỳ mức độ phức tạp nào có thể được chỉ định trong yêu cầu lựa chọn, nhưng bị cấm sử dụng các phần ĐẶT BỞI, sau này có thể được sử dụng khi truy xuất dữ liệu từ chế độ xem đã tạo. Bạn cũng nên tạo chế độ xem dựa trên các bảng có liên kết bên trong.

Ví dụ: hãy tạo một chế độ xem hiển thị tổng chi phí của mỗi đơn hàng, cho biết khách hàng và mã số của khách hàng:

TẠO XEM Thông tinĐơn hàng

CHỌN Tên + " " + Họ làm [Tên công ty],

SalesOrderHeader.SalesOrderID dưới dạng [Số đơn hàng],

Chuyển đổi (tiền, sum(UnitPrice*OrderQty*(1-UnitPriceDiscount)),0) thành [Tổng cộng]

TỪ (Person.Liên hệ INNER THAM GIA Sales.SalesOrderHeader

TRÊN Contact.contactID=SalesOrderHeader.contactID)

INNER THAM GIA Sales.SalesOrderDetail

TRÊN SalesOrderHeader.SalesOrderID=SalesOrderDetail.SalesOrderID

NHÓM THEO SalesOrderHeader.SalesOrderID, FirstName + " " + LastName

Hãy nhớ rằng việc sử dụng chế độ xem không cải thiện hiệu suất. Việc gọi một khung nhìn sẽ khiến mã nội bộ của nó được thực thi, vì vậy trong trường hợp tốt nhất, khung nhìn KHÔNG sẽ làm giảm hiệu suất cơ sở dữ liệu.

Nhiều quản trị viên và người lập trình cơ sở dữ liệu mới làm quen và chỉ đơn giản là quản trị viên hệ thống duy trì một cơ sở dữ liệu nhất định không biết chế độ xem là gì hoặc LƯỢT XEM và tại sao chúng lại cần thiết. Bây giờ chúng ta sẽ cố gắng tìm hiểu nó là gì.

Hãy bắt đầu với một lý thuyết nhỏ.

XEM là gì?

LƯỢT XEM– biểu diễn, hoặc ví dụ như trong PostgreSQL, chúng được gọi là “ Giống loài"(tức là Chế độ xem), quản trị viên người Nga thường gọi chúng là chế độ xem, tức là một chế độ xem là một chế độ xem. Nó là một truy vấn được lưu trữ vào cơ sở dữ liệu, nó cũng có thể được gọi là bảng ảo, nhưng bảng này không lưu trữ dữ liệu mà chỉ lưu trữ chính truy vấn đó. Tuy nhiên, chế độ xem có thể được truy cập dưới dạng bảng thông thường và dữ liệu có thể được truy xuất từ ​​​​nó.

Chúng ta đang nói về cơ sở dữ liệu sử dụng ngôn ngữ SQL, dựa trên điều này, chúng ta có thể kết luận rằng VIEWS có thể được tạo bằng ngôn ngữ này. Đây là một đối tượng rất phổ biến trong cơ sở dữ liệu, vì vậy tất cả các DBMS đều có khả năng tạo các khung nhìn trong GUI bằng cách nhấp vào " Tạo chế độ xem" hoặc " Tạo chế độ xem mới", và tất nhiên, cũng sử dụng câu lệnh "TẠO CHẾ ĐỘ XEM".

Nhưng trước khi học cách tạo chế độ xem, hãy nói về lý do tại sao chúng cần thiết và chúng sẽ mang lại lợi ích gì cho chúng ta.

Tại sao cần có sự đại diện?

Một trong những ưu điểm chính của khung nhìn là chúng đơn giản hóa rất nhiều việc tương tác với dữ liệu trong cơ sở dữ liệu. Giả sử bạn luôn cần tạo một mẫu có cấu trúc phức tạp và như bạn biết, yêu cầu về một mẫu có thể rất phức tạp và không có giới hạn cho điều này. Và nếu không có chế độ xem nào, thì bạn sẽ phải chạy yêu cầu này mọi lúc hoặc thậm chí sửa đổi nó, chẳng hạn như để chèn điều kiện. Và vì chúng ta có các đối tượng như khung nhìn nên chúng ta không phải làm điều này. Chúng tôi sẽ chỉ tạo một chế độ xem cho mọi thứ và sau đó chúng tôi sẽ truy cập chế độ xem đó bằng các truy vấn đơn giản, cũng có thể trở nên phức tạp nếu cần. Ví dụ: các khung nhìn cũng có thể được nối với các bảng khác hoặc các khung nhìn khác.

Chế độ xem cũng có thể được truy cập từ các ứng dụng, ví dụ: bạn cần hiển thị một số loại báo cáo, việc hình thành báo cáo này yêu cầu một số tính toán; điều này có thể dễ dàng thực hiện bằng cách viết truy vấn cần thiết ( trong đó dữ liệu sẽ được tính toán, ví dụ từ các bảng khác nhau) và chèn yêu cầu này vào dạng xem. Và sau đó truy cập vào chế độ xem này, ví dụ: bằng cách sử dụng một yêu cầu đơn giản như:

CHỌN * TỪ Tên bảng

Làm cách nào để tạo chế độ xem XEM?

Bây giờ hãy nói về cách tạo ra những khung nhìn tương tự. Đầu tiên, tôi sẽ nói ngay rằng việc này đòi hỏi kiến ​​thức về SQL ( để xây dựng các truy vấn phức tạp). Thứ hai, bạn phải quyết định trước những gì bạn cần xuất ra do một yêu cầu cụ thể. Chúng tôi sẽ không xem xét quá trình tạo chế độ xem bằng cách nhấn nút vì nó khá đơn giản. Chúng ta sẽ xem xét việc tạo VIEWS bằng ngôn ngữ SQL ( mặc dù điều này cũng đơn giản).

Ví dụ: trong PostgreSQL, yêu cầu tạo chế độ xem sẽ trông như thế này:

TẠO XEM MyView NHƯ CHỌN id, tên, tổ chức TỪ công việc.TableName

  • TẠO XEM – lệnh để tạo chế độ xem;
  • MyView – tên chế độ xem trong tương lai của bạn;
  • CHỌN id, tên, tổ chức TỪ công việc.TableName – yêu cầu lựa chọn.

Ở đây chúng tôi đã sử dụng một truy vấn lựa chọn đơn giản. Đến lượt bạn, bạn có thể viết bất kỳ truy vấn nào, thậm chí kết hợp một số bảng và điều kiện cho chúng.

Cú pháp đầy đủ cho lệnh CREATE VIEW (trong PostgreSQL) như sau:

TẠO VIEW view_name [(column_list)] AS select_statement KIỂM TRA TÙY CHỌN]

Khi bạn đã tạo chế độ xem, bạn có thể truy cập chế độ xem đó. Và dữ liệu mà chế độ xem sẽ hiển thị sẽ thay đổi tùy thuộc vào những thay đổi trong dữ liệu trong bảng nguồn, vì dữ liệu trong chế độ xem được hình thành khi chế độ xem này được truy cập. Dựa trên điều này, chúng ta có thể kết luận rằng dữ liệu mà chế độ xem hiển thị sẽ luôn được cập nhật.

Vậy là xong, tôi hy vọng bây giờ bạn đã biết VIEWS là gì, tạm biệt!