Danh mục

Giáo trình Thực hành SQL: Phần 2 - Trần Nguyên Phong

Số trang: 15      Loại file: pdf      Dung lượng: 284.08 KB      Lượt xem: 44      Lượt tải: 0    
Hoai.2512

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Giáo trình Thực hành SQL: Phần 2 - Trần Nguyên Phong với nội dung gồm 2 chương: Chương 3 là đề cập đến hai câu lệnh điều khiển là Grant và Revoke sử dụng trong việc cấp phát và hủy bỏ quyền của người sử dụng CSDL. Chương 4 giới thiệu về thủ tục lưu trữ và trigger. Đây là những đối tượng của CSDL được sử dụng nhằm tăng hiệu năng khi sử dụng CSDL.
Nội dung trích xuất từ tài liệu:
Giáo trình Thực hành SQL: Phần 2 - Trần Nguyên Phong Tráön Nguyãn Phong Chæång 3: NGÄN NGÆÎ ÂIÃÖU KHIÃØN GRANT ALL | statement [,...,statementN ] TO account [,...,accountN]GRANT ALL | permission [,...,permissionN] ON table_name |view_name [(column1 [,...,columnN])] |ON stored_procedureTO account [,...,accountN] • • • • • • • • Giaïo trçnh thæûc haình SQL • • • GRANT CREATE TABLE, CREATE VIEW TO db_user GRANT SELECT, UPDATE ON nhanvien(hoten,diachi,dienthoai,hsluong) TO db_user1, db_user2REVOKE ALL | statement [,...,statementN]FROM account [,...,accountN]REVOKE ALL | permission [,...,permissionN]} ON table_name | view_name [(column [,...,columnN])] | stored_procedureFROM account [,...,accountN ] Tráön Nguyãn PhongREVOKE SELECT, UPDATEON nhanvien(hsluong)FROM db_user1REVOKE ALLFROM db_user Giaïo trçnh thæûc haình SQL Chæång 4: THUÍ TUÛC LÆU TRÆÎ VAÌ TRIGGER C¸c thñ tôc lu tr÷ lµ mét trong nh÷ng ®èi tîng c¬ së d÷ liÖu. Cã thÓ xemchóng t¬ng tù nh nh÷ng thñ tôc trong c¸c ng«n ng÷ lËp tr×nh. Mçi mét thñ tôc lutr÷ cã thÓ cã c¸c kh¶ n¨ng sau: • NhËn c¸c tham sè ®Çu vµo, thùc thi c¸c c©u lÖnh bªn trong thñ tôc vµ tr¶ vÒ c¸c gi¸ trÞ. • Bªn trong mçi thñ tôc cã thÓ chøa c¸c c©u lÖnh nh»m thùc hiÖn c¸c thao t¸c trªn c¬ së d÷ liÖu (kÓ c¶ viÖc gäi ®Õn c¸c thñ tôc lu tr÷ kh¸c) • Tr¶ vÒ mét gi¸ trÞ tr¹ng th¸i th«ng qua ®ã cã thÓ x¸c ®Þnh viÖc thùc thi thñ tôc lµ thµnh c«ng hay bÞ lçi. ViÖc sö dông c¸c thñ tôc lu tr÷ bªn trong c¬ së d÷ liÖu sÏ mang l¹i nh÷ng lîiÝch sau: • Thñ tôc lu tr÷ cho phÐp module ho¸ c«ng viÖc, t¹o ®iÒu kiÖn thuËn lîi cho viÖc thùc hiÖn c¸c thao t¸c trªn d÷ liÖu. • Thñ tôc lu tr÷ ®îc ph©n tÝch, tèi u vµ biªn dÞch khi t¹o ra nªn viÖc thùc thi chóng nhanh h¬n nhiÒu so víi viÖc sö dông mét tËp c¸c c©u lÖnh giao t¸c SQL theo nh÷ng c¸ch th«ng thêng. • Thñ tôc lu tr÷ cho phÐp chóng ta thùc hiÖn cïng mét yªu cÇu b»ng mét c©u lÖnh ®¬n gi¶n thay v× ph¶i sö dông nhiÒu dßng lÖnh SQL. §iÒu nµy sÏ lµm gi¶m thiÓu sù lu th«ng trªn m¹ng. • Thay v× cÊp ph¸t quyÒn trùc tiÕp cho ngêi sö dông trªn c¸c c©u lÖnh SQL, ta cã thÓ cÊp ph¸t quyÒn cho ngêi sö dông th«ng qua c¸c thñ tôc lu tr÷, nhê ®ã t¨ng kh¶ n¨ng b¶o mËt ®èi víi hÖ thèng. T¹o c¸c thñ tôc lu tr÷§Ó t¹o mét sp, ta sö dông c©u lÖnh CREATE PROCEDURE cã có ph¸p nh sau: CREATE PROCEDURE procedure_name [;number] [(parameter1 [,parameter2]...[parameter255])] AS sql_statements VÝ dô 4.1: CREATE PROC sp_list @bten char(20) AS SELECT hoten, ngaysinh, diachi FROM nhanvien WHERE hoten= @btenChó ý: NÕu khi gäi thñ tôc, chóng ta truyÒn tham sè cho thñ tôc díi d¹ng: Tráön Nguyãn Phong @tham_sè = gi¸_trÞTh× thø tù c¸c tham sè kh«ng cÇn ph¶i tu©n theo thø tù nh khi t¹o thñ tôc b»ng c©ulÖnh CREATE PROCEDURE. Tuy nhiªn, nÕu nh ®∙ cã mét tham sè ®îc truyÒn gi¸trÞ theo c¸ch trªn th× tÊt c¶ c¸c tham sè cßn l¹i còng ph¶i ®îc truyÒn gi¸ trÞ theo c¸ch®ã. Ta cã thÓ g¸n mét gi¸ trÞ mÆc ®Þnh cho tham sè trong c©u lÖnh CREATEPROCEDURE. Gi¸ trÞ nµy, cã thÓ lµ h»ng bÊt kú, sÏ ®îc lÊy lµm tham sè cña thñ tôckhi ngêi sö dông kh«ng cung cÊp gi¸ trÞ cho tham sè khi gäi thñ tôc. VÝ dô 4.2: CREATE PROC sp_list;2 @bten char(20)=‘Nguyen Van A’ AS SELECT * FROM nhanvien WHERE hoten = @bten Víi thñ tôc trªn, nÕu ta gäi msp_list;2 mµ kh«ng cã tham sè th× thñ tôc sÏ lÊytham sè mÆc ®Þnh lµ ‘NguyÔn V¨n A’ cho @bten. Gi¸ trÞ mÆc ®Þnh cã thÓ NULL. Trong trêng hîp nµy, nÕu ngêi sö dông kh«ngcung cÊp tham sè, SQL Server sÏ thi hµnh thñ tôc theo c¸c tham sè kh¸c. VÝ dô 4.3: Víi c©u lÖnh CREATE PROC sp_list;3 @bten char(20)=NULL,@bluong float AS SELECT * FROM nhanvien WHERE hoten=@bten AND hsluong=@bluong Ta thÓ gäi thñ tôc trªn nh sau: msp_list;3 @btuoi=23 mµ kh«ng bÞ lçi. MÆc ®Þnh cã thÓ bao gåm c¸c ký tù ®¹i diÖn (%, _, [], [^] ) nÕu thñ tôc sö dôngtham sè víi tõ khãa LIKE. VÝ dô 4.4: CREATE PROC sp_list;4 @bten char(20) =’TrÇn%’ AS SELECT * FROM nhanvien WHERE hoten LIKE @bten Th«ng tin tr¶ vÒ tõ c¸c thñ tôc lu tr÷C¸c gi¸ trÞ tr¹ng th¸i tr¶ vÒ: C¸c thñ tôc cã thÓ tr¶ vÒ mét gi¸ trÞ nguyªn ®îc gäi lµ mét tr¹ng th¸i tr¶ vÒ. Gi¸trÞ nµy chØ ra cho biÕt thñ tôc ®îc thùc hiÖn thµnh c«ng hay gÆp lçi vµ nguyªn nh©n ...

Tài liệu được xem nhiều:

Tài liệu cùng danh mục:

Tài liệu mới: