Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 42 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
42
Dung lượng
759,5 KB
Nội dung
Ch nh s a d li u b ng các l nh INSERT, UPDATE, ỉ ử ữ ệ ằ ệ DELETE, và TRUNCATE TABLE. Th c thi Viewự !" # Vi c b o trì 1 database liên quan đ n vi c b sung ệ ả ế ệ ổ thông tin m i, s a l i d li u không chính xác và xóa ớ ử ạ ữ ệ đi d li u cũ.ữ ệ Nhóm l nh ệ Data Manipulation Language (DML) c a T–ủ SQL đ c dùng đ b o trì d li u, bao g m 3 l nh ượ ể ả ữ ệ ồ ệ sau: $%&'()**+, - L nh dùng đ thêm các hàng vào 1 b ng hay view.ệ ể ả Cú pháp: INSERT [INTO] table_name| view_name[(column_list)] VALUES (values_list)|select_statement | DEFAULT VALUES ./ 0 Giá tr có th đ c phát t đ ng cho các c t sau:ị ể ượ ự ộ ộ Khi dùng giá tr DEFAULT :ị ! " # $$ +1 2 Hãy xem c u trúc c a b ng ấ ủ ả Sales: Create table Sales ( ItemCode char(6) not null, ItemName char(40) null, QtySold int not null, SaleDate datetime not null default getdate() ) +1 3 INSERT Sales VALUES ('I005', 'Printer', 100, '05/12/01') INSERT Sales (ItemCode, ItemName, QtySold, SaleDate) VALUES ('I005', 'Printer', 100, '05/12/01') INSERT Sales (ItemName, ItemCode, QtySold, SaleDate) VALUES ('Printer', 'I005', 100, '05/12/01') INSERT Sales VALUES ('I005', NULL, 100, '05/12/01') INSERT Sales VALUES ('I005', 'Printer', 100, Default) Các l nh trên có cho cùng k t qu khôngệ ế ả ?? +1 4 CREATE TABLE T1 ( column_1 int IDENTITY, column_2 varchar(30)) INSERT T1 VALUES ('Row #1') INSERT T1 (column_2) VALUES ('Row #2') CREATE TABLE T1 ( column_1 int identity, column_2 varchar(30) DEFAULT ('column default'), column_3 timestamp, column_4 int NULL) INSERT INTO T1 DEFAULT VALUES %&'()**&'$'.) 5 Truy v n con SELECT trong l nh INSERT đ c dùng ấ ệ ượ đ thêm giá tr vào b ng t 1 hay nhi u b ng/view ể ị ả ừ ề ả khác. M t hay nhi u hàng đ c thêm vào cùng 1 lúc.ộ ề ượ Ví d :ụ USE pubs INSERT INTO MyBooks SELECT title_id, title, type FROM titles WHERE type = 'mod_cook' $678)' 9 L nh update dùng đ thay đ i giá tr hi n có trong ệ ể ổ ị ệ 1 b ngả . Cú pháp: UPDATE table_name| view_name SET column_name = expression | DEFAULT | NULL | @variable_name = expression | @variable_name = column = expression [FROM table_name] [WHERE search_conditions] [...]... Cung cấp dữliệu thích hợp cho người dùng Che giấu sự phức tạp của dữliệu Kết hợp dữliệu từ các nguồn không đồng nhất View được dùng như 1 cơ chế bảo mật (security mechanism) bằng cách cho phep người dùng truy xuất dữliệu thông qua view mà không cấp cho người dùng quyền được truy xuất tr ực 27 tiếp dữliệu từ bảng gốc Ví dụ: view từ 2 bảng 28 Partitioned view Kết nối dữliệu được phân... mệnh đề SELECT 19 Lệnh CREATE VIEW [ WITH CHECK OPTION ]: bắt buộc tất cả các lệnh chỉnh sửadữliệu liên quan đến view đều phải tuân theo điều kiện lọc trong mệnh đề select Khi 1 hàng bị sửa đổi thông qua view, tuỳ chọn WITH CHECK OPTION này bảo đảm là dữliệu vẫn còn nhìn thấy được thông qua view sau khi việc sửa đổi này được thực hiện 20 Lệnh CREATE VIEW Ví dụ: View được tạo ra để khôi phục... là 1 bảng ảo (virtual table) cho phép truy xuất vào 1 tập con các cột từ 1 hay nhiều bảng View bảo đảm được tính bảo mật cho dữliệu nhờ vào việc hạn chế truy xuất (restricting access), chỉ cho phép hiển thị: • 1 số hàng của bảng • 1 số cột của bảng • Chỉ 1 số hàng và cột của bảng • Một tập con của 1 view khác hay 1 tập con của 1 vài view hay bảng • Số liệu thống kê trong 1 bảng được cho 17 Khái quát... 24 Sửa đổi, xoá và đặt tên lại view Sửa đổi View ALTER VIEW view_name [(column_name)] AS select_statement [WITH CHECK OPTION] Xoá View DROP VIEW view_name Đặt lại tên View sp_rename old_viewname, new_viewname 25 Ba loại view Standard view Indexed view Partitioned view 26 Standard view Kết hợp dữliệu từ nhiều bảng tùy theo m ục đích s ử dụng Các lợi ích khi sử dụng view: Cung cấp dữ. .. 1 bảng được cho 17 Khái quát về View Khi 1 view đã được định nghĩa, thì nó có thể được dùng như bất kỳ bảng nào khác trong cơ sở dữliệu Mặc dù view tương tự như bảng, nhưng nó không được lưu trữ thực sự trong cơ sở dữ liệu Nó chỉ suy dẫn các giá trị từ những bảng dữ liệu gốc 18 Lệnh CREATE VIEW CREATE VIEW [ < database_name >.] [ < owner > ] view_name [ ( column [ , n ] ) ] [ WITH SCHEMABINDING]... chọn SCHEMABINDING Dùng để gán view vào lược đồ Khi đó, mệnh đề select bắt buộc phải dùng tên 2 thành phần (owner.object) cho các bảng, hàm của người dùng View và table tham gia vào view có mệnh đề schema binding không thể xóa (drop) được nếu view không bị xóa hay được thay đổi để không còn schema binding nữa Lệnh ALTER TABLE dùng cho các bảng có tham gia vào view có schema binding cũng sẽ bị lỗi... viên đã tham dự kỳ thi đầu vào hơn hai năm trước trong cơ sở dữ liệu HeadHunt? 14 Lệnh DELETE Use Headhunt DELETE FROM ExternalCandidate WHERE dTestDate < dateadd(yy,-2,getdate()) Ví dụ 2: USE pubs DELETE titleauthor FROM titleauthor INNER JOIN titles ON titleauthor.title_id = titles.title_id WHERE titles.title LIKE '%computers%' Xoá các hàng trong bảng titleauthor dựa vào các tiêu đề sách trong... view sẽ không còn được nhìn thấy nhân viên này nữa Nếu mệnh đề WITH CHECK OPTION được dùng khi định nghĩa view, thì các hàng sẽ không thể bị chỉnhsửa theo cách mà làm cho chúng bị biến mất khỏi view Bất kỳ lệnh sửa đổi nào mà gây ra vấn đề này sẽ bị loại trừ và hiển thị thông báo lỗi 21 Ví dụ CREATE VIEW CAonly AS SELECT au_lname, au_fname, city, state FROM authors WHERE state = 'CA' WITH CHECK OPTION... bảng dữliệu thường xuyên hay cập nhật 33 Tạo Indexed view Để tạo clustered index cho 1 view, cần phải đáp ứng các yêu cầu sau: Không được tham chiếu đến các view khác, chỉ từ bảng g ốc Tất cả bảng gốc này phải cùng 1 database và có cùng 1 owner View phải được tạo ra với tùy chọn SCHEMABINDING Các hàm người dùng được tham chiếu đến trong view phải đuợc ra với tùy chọn SCHEMABINDING Bảng và. .. ALL SELECT * FROM Dec1998Sales Cách sử dụng partitioned view Từ view có thể xem dữliệu bán hàng của bất kỳ tháng nào trong năm 1998 SELECT * FROM Year1998Sales WHERE OrderMonth IN (5,6) AND CustomerID = 64892 32 Indexed view Là view đã được hiện thực hóa (materialized), nghĩa là view đã được tính toán thực thi và lưu trữ như 1 bảng thực View có 1 chỉ mục clustered duy nhất Lý do sử dụng indexed . cho phép truy xu t vào ấ 1 t p con các c t t 1 hay nhi u b ngậ ộ ừ ề ả View b o đ m ả ả đ c ượ tính b o m t cho d li u nh ả ậ ữ ệ ờ vào vi c h n ch truy xu t (ệ ạ ế ấ restricting access), ch. ( column [ , n ] ) ] [ WITH SCHEMABINDING] AS select_statement [ WITH CHECK OPTION ] Column: là tên c t đ c dùng trong view. Ch nên đ t ộ ượ ỉ ặ tên c t cho view khi:ộ ". tên cho c t c a view thì nó s có cùng ế ặ ộ ủ ẽ tên v i các c t trong m nh đ SELECTớ ộ ệ ề . $.('8)'+%'? 9 [ WITH CHECK OPTION ]: b t bu c t t c các l nh ắ ộ ấ ả ệ ch nh