SlideShare a Scribd company logo
1 of 3
Chương 5: View
1. Khái niệm view
       Views là một table ảo, được dùng để lưu trữ một truy vấn (query) đã định nghĩa
 trước thành một đối tượng trong database và có thể dùng lại sau này. View là một cách
 để che dấu những dữ liệu của một thiết kế database và cung cấp các thông tin mà không
 đòi hỏi người dùng phải biết cách viết hoặc thực hiện các lệnh Transact-SQL. Chúng ta
 có thể đặt tên và lưu trữ bất kỳ một lệnh SELECT nào thành một VIEW. Lệnh SELECT
 này có thể được trích từ một hoặc nhiều table hoặc view có trước đó.




 a) Lợi ích của view
 Tập trung vào dữ liệu cần thiết
       Views tạo ra một môi trường mà chỉ cho phép user truy xuất các thông tin trong
 quyền hạn của user, còn các dữ liệu không cần thiết, hoặc cần bảo mật hoặc không phù
 hợp với mục địch yêu cầu sử dụng sẽ bị che/ẩn. User có thể thao tác, sử dụng view như
 là một table. Trong một số trường hợp thuộc quyền hạn cũng như một số hạn chế, Users
 có thể thao tác (modify) dữ liệu mà view xuất ra.
 Che dấu sự phức tạp của database
       Views che đậy tính phức tạp của thiết kế database đối với user, qua đó, developers
 có thể thay đổi thiết kế database mà không ảnh hưởng đến sự tương tác của user với
 database. Các query phức tạp, ví dụ như các query được phân bố tới các dữ liệu hỗn
 hợp, cũng có thể che đậy thông qua view, user truy vấn view thay vì phải viết và thực
 hiện script.
 Đơn giản hoá việc quản lý quyền
       Thay vì phải gán quyền cho user để truy vấn đến một một số field nào đó trong các
 table, chúng ta có thể gán quyền cho user truy vấn dữ liệu thông qua view.
 views only.
Hoàn thiện tính thực hiện (Improve Performance)
       Views cho phép chúng ta lưu trữ kết quả của một query phức tạp và các query
 khác có thể dùng lại kết quả này . View cũng cung cấp cho chúng ta cách để chia dữ liệu
 thành nhiều phần và các phần có thể được đặt trên các máy tính khác nhau.
 Tổ chức dữ liệu để xuất ra cho các ứng dụng khác
 Chúng ta có thể tạo view dựa trên một query phức tạp được kết nối từ hai hay nhiều
 tables rồi xuất kết quả cho một ứng dụng khác.
 b) Tạo view
   Để tạo view chúng ta sử dụng lệnh CREATE VIEW theo cú pháp sau:
   CREATE VIEW view_name [(column [,n ])]
   [WITH {ENCRYPTION | SCHEMABINDING | VIEW_METADATA} [,n ]]
   AS
   select_statement
   [WITH CHECK OPTION]
 Trong đó,
 column: là danh sách tên các field của view. Mỗi tên field cách nhau dấu phẩy.
 WITH CHECK OPTION: ép buộc việc cậo nhật dữ liệ thông qua view phải thoả điều
 kiện trong câu lệnh select của view.
 WITH ENCRYPTION: Khi chúng ta tạo một view, đoạn mã lệnh (text) để tạo ra view
 sẽ được lưu vào table syscomments. Khi chúng ta dùng tham số WITH ENCRYPTION
 thì nội dung lưu vào table syscomments sẽ bị mã hoá.
 SCHEMABINDING: Ràng buộc view với schema. Khi SCHEMABINDING được chỉ
 định, lệnh select_statement phải bao gồm 2 phần tên (owner.object) của tables, views,
 hoặc các user-defined functions mà view tham chiếu.
 Các view hoặc table có tham gia trong view được tạo với tham số SCHEMABINDING
 thì không thể bị xoá trừ khi view bị xoá hoặc thay đổi để không còn tham chiếu đến đối
 tượng cần xoá nữa.
 VIEW_METADATA: chỉ định rằng SQL Server sẽ trả về DBLIB, ODBC, và OLE DB
 APIs các thông tin metadata về view.
2. Quản trị view
       Cũng tương tư như các đối tượng khác trong database, để sửa và xoá view, chúng
 ta cũng dùng lệnh Alter view và Drop view.
 Cú pháp lệnh ALTER VIEW như sau:
   ALTER VIEW view_name [(column[,...n])]
   AS    select_statement
[WITH {ENCRYPTION | SCHEMABINDING | VIEW_METADATA}]
   [WITH CHECK OPTION ]
3. Những lưu ý khi tạo view
      Chúng ta chỉ tạo được view trong database hiện hành mặc dù dữ liệu của view
 được lấy từ các table hoặc view của các database khác.
 Query trong định nghĩa view không thể chứa mệnh đề ORDER BY mà không có TOP,
 COMPUTE, hoặc COMPUTE BY hoặc từ khoá INTO.
 View không thể truy xuất đến dữ liệu của table tạm
 Bình thường, view có thể được dùng để cập nhật (thêm, xoá và sửa) dữ liệu.

More Related Content

What's hot

Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)khanhtoankmz
 
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất NghệMvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất NghệMasterCode.vn
 
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theoBài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theoMasterCode.vn
 
00 overview of_sql_server
00 overview of_sql_server00 overview of_sql_server
00 overview of_sql_serverthai
 
Trigger, Cursor, Function in SQL Server
Trigger, Cursor, Function in SQL ServerTrigger, Cursor, Function in SQL Server
Trigger, Cursor, Function in SQL ServerNguyễn Phúc
 
Sinh vienit.net --sinhvienit.net-giao-trinh-oracle-sql-plsql-co-ban
Sinh vienit.net --sinhvienit.net-giao-trinh-oracle-sql-plsql-co-banSinh vienit.net --sinhvienit.net-giao-trinh-oracle-sql-plsql-co-ban
Sinh vienit.net --sinhvienit.net-giao-trinh-oracle-sql-plsql-co-banSon Nguyen Ba
 

What's hot (9)

Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)
 
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất NghệMvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
 
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theoBài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
 
ôn tập dbms
ôn tập dbmsôn tập dbms
ôn tập dbms
 
00 overview of_sql_server
00 overview of_sql_server00 overview of_sql_server
00 overview of_sql_server
 
Mô hình 3 lớp trong C#
Mô hình 3 lớp trong C#Mô hình 3 lớp trong C#
Mô hình 3 lớp trong C#
 
Mo hinh-3-lop
Mo hinh-3-lopMo hinh-3-lop
Mo hinh-3-lop
 
Trigger, Cursor, Function in SQL Server
Trigger, Cursor, Function in SQL ServerTrigger, Cursor, Function in SQL Server
Trigger, Cursor, Function in SQL Server
 
Sinh vienit.net --sinhvienit.net-giao-trinh-oracle-sql-plsql-co-ban
Sinh vienit.net --sinhvienit.net-giao-trinh-oracle-sql-plsql-co-banSinh vienit.net --sinhvienit.net-giao-trinh-oracle-sql-plsql-co-ban
Sinh vienit.net --sinhvienit.net-giao-trinh-oracle-sql-plsql-co-ban
 

Similar to Qtu.vn sql - chuong 5

Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3 VIEW
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3 VIEWSlide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3 VIEW
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3 VIEWpisu412
 
BÀI 7 - CHUYÊN ĐỀ KHÁC.pptx
BÀI 7 - CHUYÊN ĐỀ KHÁC.pptxBÀI 7 - CHUYÊN ĐỀ KHÁC.pptx
BÀI 7 - CHUYÊN ĐỀ KHÁC.pptxVinhNguyen547113
 
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPT
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPTBài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPT
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPTMasterCode.vn
 
Trong bài viết hôm nay
Trong bài viết hôm nayTrong bài viết hôm nay
Trong bài viết hôm nayledoanduc
 
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Minh Tri Lam
 
Asp.net mvc framework qua cac vi du
Asp.net mvc framework  qua cac vi duAsp.net mvc framework  qua cac vi du
Asp.net mvc framework qua cac vi duKim Hyun Hai
 
Bài 6: Điều khiển DetailsView, FormView, ListView, DataPager
Bài 6: Điều khiển DetailsView, FormView, ListView, DataPagerBài 6: Điều khiển DetailsView, FormView, ListView, DataPager
Bài 6: Điều khiển DetailsView, FormView, ListView, DataPagerMasterCode.vn
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLmTrn286060
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLmTrn286060
 
Session 07_Creating and Management DB.ppt
Session 07_Creating and Management DB.pptSession 07_Creating and Management DB.ppt
Session 07_Creating and Management DB.pptChauNguyenThiMinh6
 
Qtu.vn sql - chuong 7
Qtu.vn  sql - chuong 7Qtu.vn  sql - chuong 7
Qtu.vn sql - chuong 7Hoang le Minh
 
Thương mại điện tử
Thương  mại điện tửThương  mại điện tử
Thương mại điện tửgacon2009
 

Similar to Qtu.vn sql - chuong 5 (20)

Mvc 3
Mvc 3Mvc 3
Mvc 3
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3 VIEW
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3 VIEWSlide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3 VIEW
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 3 VIEW
 
BÀI 7 - CHUYÊN ĐỀ KHÁC.pptx
BÀI 7 - CHUYÊN ĐỀ KHÁC.pptxBÀI 7 - CHUYÊN ĐỀ KHÁC.pptx
BÀI 7 - CHUYÊN ĐỀ KHÁC.pptx
 
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPT
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPTBài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPT
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPT
 
Trong bài viết hôm nay
Trong bài viết hôm nayTrong bài viết hôm nay
Trong bài viết hôm nay
 
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
 
Aspnet 3.5_03
Aspnet 3.5_03Aspnet 3.5_03
Aspnet 3.5_03
 
View sp trigger_udf
View sp trigger_udfView sp trigger_udf
View sp trigger_udf
 
Mô Hình MVC 3.0
Mô Hình MVC 3.0Mô Hình MVC 3.0
Mô Hình MVC 3.0
 
Asp.net mvc framework qua cac vi du
Asp.net mvc framework  qua cac vi duAsp.net mvc framework  qua cac vi du
Asp.net mvc framework qua cac vi du
 
Bài 6: Điều khiển DetailsView, FormView, ListView, DataPager
Bài 6: Điều khiển DetailsView, FormView, ListView, DataPagerBài 6: Điều khiển DetailsView, FormView, ListView, DataPager
Bài 6: Điều khiển DetailsView, FormView, ListView, DataPager
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
 
Session 07_Creating and Management DB.ppt
Session 07_Creating and Management DB.pptSession 07_Creating and Management DB.ppt
Session 07_Creating and Management DB.ppt
 
3250
32503250
3250
 
Aspnet 3.5 _02
Aspnet 3.5 _02Aspnet 3.5 _02
Aspnet 3.5 _02
 
Yii
YiiYii
Yii
 
Aspnet 3.5 -06
Aspnet 3.5 -06Aspnet 3.5 -06
Aspnet 3.5 -06
 
Qtu.vn sql - chuong 7
Qtu.vn  sql - chuong 7Qtu.vn  sql - chuong 7
Qtu.vn sql - chuong 7
 
Thương mại điện tử
Thương  mại điện tửThương  mại điện tử
Thương mại điện tử
 

Qtu.vn sql - chuong 5

  • 1. Chương 5: View 1. Khái niệm view Views là một table ảo, được dùng để lưu trữ một truy vấn (query) đã định nghĩa trước thành một đối tượng trong database và có thể dùng lại sau này. View là một cách để che dấu những dữ liệu của một thiết kế database và cung cấp các thông tin mà không đòi hỏi người dùng phải biết cách viết hoặc thực hiện các lệnh Transact-SQL. Chúng ta có thể đặt tên và lưu trữ bất kỳ một lệnh SELECT nào thành một VIEW. Lệnh SELECT này có thể được trích từ một hoặc nhiều table hoặc view có trước đó. a) Lợi ích của view Tập trung vào dữ liệu cần thiết Views tạo ra một môi trường mà chỉ cho phép user truy xuất các thông tin trong quyền hạn của user, còn các dữ liệu không cần thiết, hoặc cần bảo mật hoặc không phù hợp với mục địch yêu cầu sử dụng sẽ bị che/ẩn. User có thể thao tác, sử dụng view như là một table. Trong một số trường hợp thuộc quyền hạn cũng như một số hạn chế, Users có thể thao tác (modify) dữ liệu mà view xuất ra. Che dấu sự phức tạp của database Views che đậy tính phức tạp của thiết kế database đối với user, qua đó, developers có thể thay đổi thiết kế database mà không ảnh hưởng đến sự tương tác của user với database. Các query phức tạp, ví dụ như các query được phân bố tới các dữ liệu hỗn hợp, cũng có thể che đậy thông qua view, user truy vấn view thay vì phải viết và thực hiện script. Đơn giản hoá việc quản lý quyền Thay vì phải gán quyền cho user để truy vấn đến một một số field nào đó trong các table, chúng ta có thể gán quyền cho user truy vấn dữ liệu thông qua view. views only.
  • 2. Hoàn thiện tính thực hiện (Improve Performance) Views cho phép chúng ta lưu trữ kết quả của một query phức tạp và các query khác có thể dùng lại kết quả này . View cũng cung cấp cho chúng ta cách để chia dữ liệu thành nhiều phần và các phần có thể được đặt trên các máy tính khác nhau. Tổ chức dữ liệu để xuất ra cho các ứng dụng khác Chúng ta có thể tạo view dựa trên một query phức tạp được kết nối từ hai hay nhiều tables rồi xuất kết quả cho một ứng dụng khác. b) Tạo view Để tạo view chúng ta sử dụng lệnh CREATE VIEW theo cú pháp sau: CREATE VIEW view_name [(column [,n ])] [WITH {ENCRYPTION | SCHEMABINDING | VIEW_METADATA} [,n ]] AS select_statement [WITH CHECK OPTION] Trong đó, column: là danh sách tên các field của view. Mỗi tên field cách nhau dấu phẩy. WITH CHECK OPTION: ép buộc việc cậo nhật dữ liệ thông qua view phải thoả điều kiện trong câu lệnh select của view. WITH ENCRYPTION: Khi chúng ta tạo một view, đoạn mã lệnh (text) để tạo ra view sẽ được lưu vào table syscomments. Khi chúng ta dùng tham số WITH ENCRYPTION thì nội dung lưu vào table syscomments sẽ bị mã hoá. SCHEMABINDING: Ràng buộc view với schema. Khi SCHEMABINDING được chỉ định, lệnh select_statement phải bao gồm 2 phần tên (owner.object) của tables, views, hoặc các user-defined functions mà view tham chiếu. Các view hoặc table có tham gia trong view được tạo với tham số SCHEMABINDING thì không thể bị xoá trừ khi view bị xoá hoặc thay đổi để không còn tham chiếu đến đối tượng cần xoá nữa. VIEW_METADATA: chỉ định rằng SQL Server sẽ trả về DBLIB, ODBC, và OLE DB APIs các thông tin metadata về view. 2. Quản trị view Cũng tương tư như các đối tượng khác trong database, để sửa và xoá view, chúng ta cũng dùng lệnh Alter view và Drop view. Cú pháp lệnh ALTER VIEW như sau: ALTER VIEW view_name [(column[,...n])] AS select_statement
  • 3. [WITH {ENCRYPTION | SCHEMABINDING | VIEW_METADATA}] [WITH CHECK OPTION ] 3. Những lưu ý khi tạo view Chúng ta chỉ tạo được view trong database hiện hành mặc dù dữ liệu của view được lấy từ các table hoặc view của các database khác. Query trong định nghĩa view không thể chứa mệnh đề ORDER BY mà không có TOP, COMPUTE, hoặc COMPUTE BY hoặc từ khoá INTO. View không thể truy xuất đến dữ liệu của table tạm Bình thường, view có thể được dùng để cập nhật (thêm, xoá và sửa) dữ liệu.