Bài giảng Microsoft SQL Server - Bài 10: Làm việc với bảng ảo và chỉ mục - Lê Thị Tú Kiên

Views in the Data Dictionary

Once your view has been created, you can query the data dictionary view called USER_VIEWS to see

the name of the view and the view definition. The text of the SELECT statement that constitutes your

view is stored in a LONG column.

Data Access Using Views

When you access data using a view, the Oracle server performs the following operations:

1. It retrieves the view definition from the data dictionary table USER_VIEWS.

2. It checks access privileges for the view base table.

3. It converts the view query into an equivalent operation on the underlying base table or tables. In

other words, data is retrieved from, or an update is made to, the base tables

pdf27 trang | Chia sẻ: Thục Anh | Ngày: 11/05/2022 | Lượt xem: 459 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Microsoft SQL Server - Bài 10: Làm việc với bảng ảo và chỉ mục - Lê Thị Tú Kiên, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1 Bài 11: Làm việc với bảng ảo và chỉ mục 2 Views in the Data Dictionary Once your view has been created, you can query the data dictionary view called USER_VIEWS to see the name of the view and the view definition. The text of the SELECT statement that constitutes your view is stored in a LONG column. Data Access Using Views When you access data using a view, the Oracle server performs the following operations: 1. It retrieves the view definition from the data dictionary table USER_VIEWS. 2. It checks access privileges for the view base table. 3. It converts the view query into an equivalent operation on the underlying base table or tables. In other words, data is retrieved from, or an update is made to, the base tables. Instructor Note The view text is stored in a column of LONG data type. You may need to set ARRAYSIZE to a smaller value or increase the value of LONG to view the text. í dụ phân biệt truy vấn trực tiếp và truy vấn thông qua view. Cú pháp câu lệnh tạo Bảng ảo (View) - Sau từ khóa CREATE VIEW là tên View cần tạo và tên các cột trong view (tùy chọn). - Hai tùy chọn: WITH ENCRYPTION: Ngăn không cho NSD xem câu lệnh định nghĩa view. WITH SCHEMABINDING: ràng buộc một view với lược đồ CSDL. Khi đó, không thể xóa hoặc cập nhật các bảng có liên quan đến view. - Sau từ khóa AS là một câu lệnh SELECT, câu lệnh này là định nghĩa chính của view. - Tùy chọn WITH CHECK OPTION: Kiểm tra nếu một dòng dữ liệu không thuộc vào view nữa thì sẽ không được cập nhật dữ liệu thông qua view. - Một view được tạo ra sẽ lưu trú trên server và NSD (hoặc chương trình ứng dụng) có thể truy vẫn bằng câu lệnh SELECT trên view này. 3 Ví dụ tạo View DeptInfo. - Bên trên là cấu trúc câu lệnh tạo view DeptInfo. Sau khi view DeptInfo được tạo ra và lưu trú trên sever, NSD có thể truy vấn trên view này giống như một bảng dữ liệu cơ sở. Tuy nhiên, DeptInfo khác bảng dữ liệu cơ sở là không chứa dữ liệu. - Bên dưới là kết quả câu truy vấn “Select * from DeptInfo” trên view DeptInfo. Khi câu lệnh này được gửi tới sever chính là kích hoạt câu lệnh SELECT trong định nghĩa view thực hiện và trả kết quả về cho NSD. 4 Các ví dụ về cách sử dụng View DeptInfo. - Bên trên là 3 ví dụ truy vấn trên view DeptInfo. - Bên dưới là kết quả khi chạy 3 câu lệnh trên cùng một lúc. 5 Một số lợi ích của view: - Thiết kế độc lập - Bảo mật dữ iệu - Mềm dẻo - Đơn giản hóa truy vấn - Có thể cập nhật dữ liệu 6 Ví dụ về view chỉ cho truy cập một số cột trên bảng investors (Nhà đầu tư). - Bên trên là dữ liệu của bảng inventors bao gồm các thông tin mã nhà đầu tư (khóa chính), họ, tên, địa chỉ, bang, mã bưu điện, số điện thoại, tiền đầu tư và lợi nhuận. - Bên dưới là định nghĩa của view InvestorsGeneral. View này chỉ bao gồm một số cột thông tin chung về nhà đầu tư, một số cột thông tin cần được bảo mật (tiền đầu tư) sẽ không được truy cập thông qua view này. 7 8 Những yêu cầu về định nghĩa câu lệnh SELECT trong view để view đó có thể nhập được dữ liệu cho bảng cơ sở: - Mệnh đề SELECT không có DISTINCT hoặc TOP. - Mệnh đề SELECT không có các hàm gộp nhóm. - Mệnh đề SELECT không các cột dẫn xuất (là các cột biểu thức, ví dụ cột tuổi). - Câu lệnh SELECT không có mệnh đề GROUP BY, HAVING. - Định nghĩa view không chứa các phép toán tập hơp ( UNION, EXCEPT, INTERSECTION). 9 Ví dụ về view có thể cập nhật dữ liệu - Bên trên là định nghĩa view LowSalary về danh danh sách các nhân có lương nhỏ hơn 30000 - Bên dưới là ví dụ cập nhật lương cho các nhân viên (trong bảng Employee) có lương nhỏ hơn 25000 thông qua view LowSalary. Khi câu lệnh update này được thực hiện thì các nhân viên trong bảng Employee có ;lương nhỏ hơn 25000 sẽ được tăng thêm 1000. 10 Ví dụ về view chỉ để đọc: trong định nghĩa view có chứa hàm gộp nhóm COUNT(), AVG() và mệnh để GROUP BY 11 Các câu lệnh xóa và sửa định nghĩa View: - Đế xóa view thì dùng câu lệnh DROP VIEW - Đế thay đổi định nghĩa view thì dùng câu lệnh ALTER VIEW. View có tùy chọn WITH ENCRYPTION thì không thể sửa. 12 Đôi khi một view cho phép cập nhật dữ liệu cho bảng cơ sở thông qua nó nhưng khi thực hiện cập nhật lại bị lỗi. Ví dụ trên slide là định nghĩa của view ResearchEmp (đưa ra thông tin các nhân viên phòng Research). Thông qua view này có thể cập nhật dữ liệu cho bảng Employee. Tuy nhiên ở hai slide tiếp sau đây là hai ví dụ thực hiện phép Insert và Delete trên view Research đều bị lỗi 13 Câu lệnh Insert trong trường hợp này bị lỗi vì chèn thêm một dòng mới có cột mã phòng Dno= null trong khi cột này có ràng buộc là NOT NULL (nhân viên nào cũng phải có mã phòng). 14 Câu lệnh Delete này bị lỗi vì khi xóa nhân viên có mã 123456789 sẽ vị phạm ràng buộc tham chiếu giữa bảng Employee và bảng workon. 15 Một số view có sẵn trong hệ thống SQL server. 16 Ví dụ truy vấn dữ liệu trên một số view của hệ thống. 17 18 19 20 21 22 23 24 25 26 27

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_microsoft_sql_server_bai_10_lam_viec_voi_bang_ao_v.pdf