freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)庫系統(tǒng)原理實驗指導(dǎo)書參考答案計本1電商-資料下載頁

2025-06-07 19:12本頁面
  

【正文】 EAS IF update(課程號)BEGINUPDATE xscj SET 課程號=(SELECT 課程號 FROM inserted)FROM xscj,deletedWHERE =ENDGO(5)創(chuàng)建觸發(fā)器trigger5,實現(xiàn)當(dāng)向?qū)W生成績表(xscj)中插入一條選課記錄時,查看該學(xué)生的信息是否存在在學(xué)生信息表中,如果不存在,則把該學(xué)生的基本信息加入到學(xué)生信息表中。use stuscoregocreate trigger trigger5on xscjfor insertas declare @xh char(8) select @xh=學(xué)號from inserted if not exists(select * from where 學(xué)號=@xh) insert into (學(xué)號,姓名) values(@xh,39。zhangsan39。)測試:insert into xscj values(39。3039。,39。30139。,89,2)(6)創(chuàng)建觸發(fā)器trigger5,實現(xiàn)當(dāng)向?qū)W生成績表(xscj)中插入一條選課記錄時,調(diào)用實驗九中創(chuàng)建的存儲過程proc5,實現(xiàn)統(tǒng)計該生的平均成績功能。存儲過程的創(chuàng)建:CREATE PROCEDURE proc5@sno char(10),@avgscore int OUTPUTAS IF @sno=NULLBEGIN PRINT 39。學(xué)號不能為空!39。 RETURNEND SELECT @avgscore=AVG(成績) from xscj WHERE 學(xué)號=@snoRETURN在觸發(fā)器中調(diào)用存儲過程:create trigger trigger6on xscj for insertas begin declare @xh char(8),@avgscore int select @xh=學(xué)號from inserted exec proc5 @xh,@avgscore output select @avgscore end實驗十二:觸發(fā)器(2)一、 實驗?zāi)康耐ㄟ^實驗使學(xué)生加深對數(shù)據(jù)完整性的理解,學(xué)會創(chuàng)建觸發(fā)器,會用觸發(fā)器實現(xiàn)復(fù)雜的數(shù)據(jù)庫完整性。二、 原理解析觸發(fā)器概述觸發(fā)器是一種特殊類型的存儲過程,用于保證數(shù)據(jù)完整性。事實上,它是一組SQL語句。當(dāng)表中的一行被插入、修改或刪除時,觸發(fā)器被執(zhí)行。觸發(fā)器與一般存儲過程有一些區(qū)別,例如,存儲過程可以直接調(diào)用,但是觸發(fā)器不能被直接調(diào)用執(zhí)行,只能由系統(tǒng)自動激活。觸發(fā)器主要的用途是維護行級數(shù)據(jù)的完整性,而不是返回結(jié)果。觸發(fā)器的類型插入INSERT、更新UPDATE、刪除DELETE。在SQL中創(chuàng)建觸發(fā)器的語法創(chuàng)建觸發(fā)器的語法為:CREATE TRIGGER trigger_name ON { table | view } [ WITH ENCRYPTION ] {{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }[ WITH APPEND ][ NOT FOR REPLICATION ]AS[ { IF UPDATE ( column )[ { AND | OR } UPDATE ( column ) ][ ...n ]| IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask ){ parison_operator } column_bitmask [ ...n ]} ] sql_statement [ ...n ] } }三、實驗內(nèi)容(4) 創(chuàng)建INSERT類型觸發(fā)器。(5) 創(chuàng)建DELETE類型觸發(fā)器。(6) 創(chuàng)建UPDATE類型觸發(fā)器。四、實驗步驟(1)在學(xué)生成績庫中創(chuàng)建觸發(fā)器trigger6,實現(xiàn)如下功能:當(dāng)在學(xué)生成績表(xscj)中插入一條學(xué)生選課信息后,查看該學(xué)生的信息是否存在在學(xué)生信息表中,如果不存在,則給出“該記錄不能被插入!”的錯誤提示,并撤銷插入操作;同樣,如果課程信息在課程信息表中不存在,給出“該記錄不能被插入!”的錯誤提示,并撤銷插入操作。create trigger trigger6on xscjfor insertas declare @sno char(8),@o char(3) select @sno=學(xué)號,@o=課程號from inserted if not exists(select * from xsqk where 學(xué)號=@sno) or not exists(select * from xskc where 課程號=@o) begin raiserror(39。學(xué)生信息或課程信息不存在,該信息不允許插入!39。,10,1) rollback tran return end測試:insert into xscj(學(xué)號,課程號)values(39。20039。,39。20039。)(2)創(chuàng)建觸發(fā)器trigger7,強制實現(xiàn)業(yè)務(wù)規(guī)則:當(dāng)向?qū)W生成績表中插入一條記錄時,自動修改學(xué)生情況表中該學(xué)生的總學(xué)分,要求總學(xué)分為該學(xué)生所有已修課程的學(xué)分總和。create trigger trigger7on xscjfor insertasdeclare @zxf tinyint,@sno char(8)select @sno=學(xué)號from insertedselect @zxf=sum(學(xué)分) from xscjwhere 學(xué)號=@snoupdate xsqk set 總學(xué)分=@zxfwhere 學(xué)號=@sno(3)在數(shù)據(jù)庫中用以下語句創(chuàng)建兩張表:CREATE TABLE 卷煙銷售表(卷煙品牌 VARCHAR(40) PRIMARY KEY NOT NULL,購貨商 VARCHAR(40) NULL,銷售數(shù)量 INT NULL,銷售單價 MONEY NULL,銷售金額 MONEY NULL)GO業(yè)務(wù)規(guī)則:庫存金額 = 庫存數(shù)量 * 庫存單價 業(yè)務(wù)規(guī)則。CREATE TABLE 卷煙庫存表(卷煙品牌 VARCHAR(40) PRIMARY KEY NOT NULL,庫存數(shù)量 INT NULL,庫存單價 MONEY NULL,庫存金額 MONEY NULL)GO創(chuàng)建觸發(fā)器[T_INSERT_卷煙庫存表],實現(xiàn)每當(dāng)[卷煙庫存表]發(fā)生 INSERT 動作,則引發(fā)該觸發(fā)器。觸發(fā)器功能:強制執(zhí)行業(yè)務(wù)規(guī)則,保證插入的數(shù)據(jù)中,庫存金額 = 庫存數(shù)量 * 庫存單價。針對[卷煙庫存表],插入測試數(shù)據(jù):注意,第一條數(shù)據(jù)(紅塔山新勢力)中的數(shù)據(jù)符合業(yè)務(wù)規(guī)則,第二條數(shù)據(jù)(紅塔山人為峰)中,[庫存金額]空,不符合業(yè)務(wù)規(guī)則,第三條數(shù)據(jù)(云南映像)中,[庫存金額]不等于[庫存數(shù)量]乘以[庫存單價],不符合業(yè)務(wù)規(guī)則。第四條數(shù)據(jù)庫存數(shù)量為0。請注意在插入數(shù)據(jù)后,檢查[卷煙庫存表]中的數(shù)據(jù)是否 庫存金額 = 庫存數(shù)量 * 庫存單價。INSERT INTO 卷煙庫存表(卷煙品牌,庫存數(shù)量,庫存單價,庫存金額)values( 39。紅塔山新勢力39。,100,12,1200)INSERT INTO 卷煙庫存表(卷煙品牌,庫存數(shù)量,庫存單價,庫存金額)values( 39。紅塔山人為峰39。,100,22,null)INSERT INTO 卷煙庫存表(卷煙品牌,庫存數(shù)量,庫存單價,庫存金額)values( 39。云南映像39。,100,60,500)INSERT INTO 卷煙庫存表(卷煙品牌,庫存數(shù)量,庫存單價,庫存金額)values( 39。玉溪39。,0,30,0)IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE XTYPE = ’TR’ AND NAME = ’T_INSERT_卷煙庫存表’)DROP TRIGGER T_INSERT_卷煙庫存表GOCREATE TRIGGER T_INSERT_卷煙庫存表ON 卷煙庫存表FOR INSERTAS提交事務(wù)處理BEGIN TRANSACTION強制執(zhí)行下列語句,保證業(yè)務(wù)規(guī)則UPDATE 卷煙庫存表SET 庫存金額 = 庫存數(shù)量 * 庫存單價WHERE 卷煙品牌 IN (SELECT 卷煙品牌 from INSERTED)COMMIT TRANSACTIONGO(4)創(chuàng)建觸發(fā)器[T_INSERT_卷煙銷售表],實現(xiàn)每當(dāng)卷煙庫存表發(fā)生 INSERT 動作,則引發(fā)該觸發(fā)器。觸發(fā)器功能: 實現(xiàn)業(yè)務(wù)規(guī)則:如果銷售的卷煙品牌不存在庫存或者庫存為零,則返回錯誤。否則則自動減少卷煙庫存表中對應(yīng)品牌卷煙的庫存數(shù)量和庫存金額。CREATE TRIGGER T_INSERT_卷煙銷售表ON 卷煙銷售表FOR INSERTASBEGIN TRANSACTION檢查數(shù)據(jù)的合法性:銷售的卷煙是否有庫存,或者庫存是否大于零IF NOT EXISTS (SELECT 庫存數(shù)量FROM 卷煙庫存表WHERE 卷煙品牌IN (SELECT 卷煙品牌FROM INSERTED))BEGIN返回錯誤提示RAISERROR(39。錯誤!該卷煙不存在庫存,不能銷售。39。,16,1)回滾事務(wù)ROLLBACKRETURNENDIF EXISTS (SELECT 庫存數(shù)量FROM 卷煙庫存表WHERE 卷煙品牌IN (SELECT 卷煙品牌FROM INSERTED) AND庫存數(shù)量= 0)BEGIN返回錯誤提示RAISERROR(39。錯誤!該卷煙庫存小于等于,不能銷售。39。,16,1)回滾事務(wù)ROLLBACKRETURNEND(5)分別用觸發(fā)器和存儲過程實現(xiàn)對學(xué)生情況表(xsqk)和學(xué)生成績表(xscj)表的級聯(lián)刪除。存儲過程:create procedure p_del@sno varchar(8)as begindelete scorewhere sno=@snodelete studentwhere sno=@snoend觸發(fā)器:create trigger tr_student_deleteon xsqkfor delete asdeclare @num char(8)select @num=學(xué)號from deleteddelete xscjwhere 學(xué)號=@numgo(6)創(chuàng)建觸發(fā)器8,要求實現(xiàn):當(dāng)向xscj表插入一條記錄時,判斷該學(xué)生的總學(xué)分,如果總學(xué)分大于等于25,則給出“該學(xué)生已修滿,不需要再選修!”的提示信息;否則,自動更新該學(xué)生的總學(xué)分。create trigger tirgger8on xscjfor insertas declare @sno char(8) select @sno=學(xué)號from inserted if (select 總學(xué)分from xsqk where 學(xué)號=@sno)=25 begin raiserror(39。該學(xué)生已修滿,不需要再選修!39。,16,1) rollback tran return end else begin declare @xf tinyint select @xf=學(xué)分from inserted update xsqk set 總學(xué)分=總學(xué)分+@xf where 學(xué)號=@sno end實驗十三:安全性管理一、 實驗?zāi)康耐ㄟ^實驗使學(xué)生理解SQL Server 2000數(shù)據(jù)庫安全性的管理方法。二、 原理解析SQL Server登錄帳號與登錄有關(guān)的存儲過程:sp_addlogin 創(chuàng)建SQL Server登錄帳號sp_droplogin刪除SQL Server登錄帳號sp_grantlogin創(chuàng)建windows登錄帳號sp_revokelogin刪除windows用戶或用戶組在SQL Server上的登錄信息sp_denylogin拒絕某一windows用戶或用戶組連接到SQL Server數(shù)據(jù)庫用戶帳號只有數(shù)據(jù)庫用戶才具有訪問、操作該數(shù)據(jù)庫的權(quán)限,某一登錄帳號要獲得操作數(shù)據(jù)庫的權(quán)限,必須與相應(yīng)的數(shù)據(jù)庫用戶相映射。與數(shù)據(jù)庫用戶帳號有關(guān)的存儲過程:sp_grantdbaccess創(chuàng)建一個數(shù)據(jù)庫用戶sp_revokedbaccess刪除一個數(shù)據(jù)庫用戶角色管理可以把一些用戶歸入某一角色,這樣只要角色具有了一定的權(quán)限,用戶相應(yīng)地從該角色繼承了相應(yīng)的權(quán)限,角色的提出有利于權(quán)限的管理。角色可分為固定服務(wù)器角色和數(shù)據(jù)庫角色。與角色有關(guān)的存儲過程:sp_addsrvro
點擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1