數(shù)據(jù)庫概論實(shí)驗(yàn)報(bào)告書_第1頁
數(shù)據(jù)庫概論實(shí)驗(yàn)報(bào)告書_第2頁
數(shù)據(jù)庫概論實(shí)驗(yàn)報(bào)告書_第3頁
數(shù)據(jù)庫概論實(shí)驗(yàn)報(bào)告書_第4頁
數(shù)據(jù)庫概論實(shí)驗(yàn)報(bào)告書_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、-PAGE . z.數(shù)據(jù)庫系統(tǒng)概論實(shí)驗(yàn)報(bào)告書班級(jí):網(wǎng)141:郭杰*:149074269指導(dǎo)教師:周兵工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院-. z.實(shí)驗(yàn)一:數(shù)據(jù)定義語言 實(shí)驗(yàn)日期 2016年 12 月 9 日 實(shí)驗(yàn)?zāi)康?熟悉Oracle上機(jī)環(huán)境及Oracle客戶端的配置;熟練掌握和使用DDL語言,建立、修改和刪除數(shù)據(jù)庫表、主鍵、外鍵約束關(guān)系和索引。 實(shí)驗(yàn)容 Oracle上機(jī)環(huán)境以及Oracle客戶端的配置參見附錄。1 SQL數(shù)據(jù)定義語句: 例1-1: (建立數(shù)據(jù)庫表) 建立教學(xué)數(shù)據(jù)庫的四個(gè)數(shù)據(jù)庫表,其中Student表中不包含SSE*(C,2) 字段,Sname字段為Sname(C,8)且可為空。1、C

2、REATE TABLE S(SNO CHAR(5),SNAME VARCHAR2(8) ,SDEPT CHAR(2) NOT NULL ,SCLASS CHAR(2) NOT NULL ,SAGE NUMBER(2) CHECK(SAGE BETWEEN 12 AND 60),CONSTRAINT SNO_pk PRIMARY KEY(SNO);2、CREATE TABLE C(O CHAR(3),AME VARCHAR2(16) NOT NULL,CTIME NUMBER(3),CONSTRAINT O_pk PRIMARY KEY(O);3、CREATE TABLE T(TNAME VAR

3、CHAR(8) NOT NULL,TSE* CHAR(2) CHECK(TSe* IN (男,女),O CHAR(3),TDATE DATE,TDEPT CHAR(2),CONSTRAINT T_pk PRIMARY KEY(TNAME,O,TDEPT),CONSTRAINT O_fk FOREIGN KEY(O) REFERENCES C(O);4、CREATE TABLE SC(SNO CHAR(5),O CHAR(3),SCORE NUMBER(5,2),CONSTRAINT SC_pk PRIMARY KEY(SNO,O),CONSTRAINT SNO_fk FOREIGN KEY(S

4、NO) REFERENCES S(SNO),CONSTRAINT O2_fk FOREIGN KEY(O) REFERENCES C(O),CONSTRAINT Ck1 CHECK(SCORE=0 and SCORE19; 例3-7: (比擬大小條件) 求計(jì)算機(jī)系或信息系年齡大于18歲的學(xué)生的、系和年齡。SELECT SNAME,SDEPT,SAGE FROM S WHERE(SDEPT=CS OR SDEPT=IS) AND SAGE18; 例3-8: (確定圍條件) 求年齡在19歲與22歲(含20歲和22歲)之間的學(xué)生的*和年齡。SELECT SNO,SAGE FROM S WHERE S

5、AGE19 AND SAGE=22; 例3-9: (確定圍條件) 求年齡不在19歲與22歲之間的學(xué)生的*和年齡。SELECT SNO,SAGE FROM S WHERE SAGE22;SELECT SNO,SAGE FROM S WHERE SAGE NOT BETWEEN 19 AND 22; 例3-10:(確定集合條件) 求在以下各系的學(xué)生信息:數(shù)學(xué)系、計(jì)算機(jī)系。SELECT * FROM S WHERE SDEPT=MA OR SDEPT=CS;select*fromStudentwheresdeptin(MA,CS);select * from Student where SDEPT=

6、MA union select * from Student where SEPT=CS; 例3-11:(確定集合條件) 求不是數(shù)學(xué)系、計(jì)算機(jī)系的學(xué)生信息。select*fromSwhereSDEPTnotin(MA,CS); 例3-12:(匹配查詢) 求是以打頭的學(xué)生。select*fromSwhereSNAMElike%; 例3-13:(匹配查詢) 求中含有志的學(xué)生。select * from S where SNAME like %志%; 例3-14:(匹配查詢) 求長度至少是三個(gè)漢字且倒數(shù)第三個(gè)漢字必須是馬的學(xué)生。select * from S where SNAME like %馬_

7、; 例3-15:(匹配查詢) 求選修課程001或003,成績?cè)?0至90之間,*為96*的學(xué)生的*、課程號(hào)和成績。select SNO,O,SCORE from SC where O in(001,003)and SCORE between 80 and 90 and SNO like 96%; 例3-16:(匹配查詢) 求課程名中包含 _ 字符的課程號(hào)、課程名和學(xué)時(shí)數(shù)。selectO,AME,CTIMEfromCwhereAMElike%_%escape; 例3-17:(涉及空值查詢) 求缺少學(xué)習(xí)成績的學(xué)生的*和課程號(hào)。selectSNO,OfromSCwhereSCOREisnull; 例

8、3-18:(控制行的顯示順序) 求選修003課程或004課程的學(xué)生的*、課程號(hào)和分?jǐn)?shù),要求按課程號(hào)升序、分?jǐn)?shù)降序的順序顯示結(jié)果。selectSNO,O,SCOREfromSCwhereOin(003,004)orderbyOasc,SCOREdesc; 例3-19:(組函數(shù)) 求學(xué)生總?cè)藬?shù)。selectcount(SNO)fromS; 例3-20:(組函數(shù)) 求選修了課程的學(xué)生人數(shù)。select count(SNO) from S where SNO in (select distinct SNO from SC where SCORE is not null); 例3-21:(組函數(shù)) 求計(jì)

9、算機(jī)系學(xué)生的平均年齡。selectavg(SAGE)fromSwhereSDEPT=CS; 例3-22:(組函數(shù)) 求選修了課程001的最高、最低與平均成績。select ma*(SCORE),min(SCORE),avg(SCORE) from SC where O=001; 例3-23:(分組查詢) 求各門課程的平均成績與總成績。select avg(SCORE),sum(SCORE) from SC group by O; 例3-24:(分組查詢) 求各系、各班級(jí)的人數(shù)和平均年齡。selectSDEPT,SCLASS,count(*),avg(SAGE)fromSgroup by SCL

10、ASS,SDEPT; 例3-25:(分組查詢) 輸入以下查詢語句并執(zhí)行,觀察出現(xiàn)的其結(jié)果并分析其原因。 SELECT SNAME,SDEPT,COUNT*FROM S WHERE SDEPT=CS GROUP BY SDEPT; 例3-26:(分組查詢) 分析以下語句為什么會(huì)出現(xiàn)錯(cuò)誤。并給出正確的查詢語句。 SELECT SAGE FROM S GROUP BY SNO;對(duì)分組后的語句查找滿足條件的,用到HAVING 例3-27:(分組查詢) 求學(xué)生人數(shù)缺乏3人的系及其相應(yīng)的學(xué)生數(shù)。select SDEPT,count(SNO) from Sgroup by SDEPT having coun

11、t(SNO)3;SELECT后所選擇的列,要在后面分組中出現(xiàn),除非SELECT后面用到集函數(shù) 例3-28:(分組查詢) 求各系中除01班之外的各班的學(xué)生人數(shù)。 selectcount(SNO)fromSwhereSCLASS not in(01)groupbySCLASS,SDEPT; 例3-29:(涉及空值的查詢) 分別觀察各組函數(shù)、行的顯示順序以及分組查詢與空值的關(guān)系。SELECT AVG(SCORE) FROM SC; SELECT AVG(SCORE) FROM SC WHERE SCORE IS NOT NULL;結(jié)果都是84.3478261,說明AVG函數(shù)將空值沒有包括在SELEC

12、T MA*(SCORE) FROM SC; SELECT MA*(SCORE) FROM SC WHERE SCORE IS NOT NULL;結(jié)果都是96,說明MA*函數(shù)不受空值影響SELECT MIN(SCORE) FROM SC;SELECT MIN(SCORE) FROM SC WHERE SCORE IS NOT NULL;結(jié)果都是58,說明空值不是MIN函數(shù)的最小值SELECTCOUNT(SCORE)FROMSC;SELECT COUNT(SCORE) FROM SC WHERE SCORE IS NOT NULL;結(jié)果是23,而總共有24個(gè)數(shù)據(jù),因而COUNT函數(shù)對(duì)值為空的選項(xiàng)不

13、予計(jì)算SELECT*FROMSCORDERBYSCORE;結(jié)果中分?jǐn)?shù)為NULL的選項(xiàng)排在最后一個(gè)位置,而默認(rèn)的排列順序是升序的,所以在分組中NULL是在后面的 例3-30:(連接查詢) 求選修了課程001且成績?cè)?0分以下或成績?cè)?0分以上的學(xué)生的、課程名稱和成績。 selectSNAME,AME,SCOREfromS,C,SCwhereS.SNO=SC.SNOandC.O=SC.OandSC.O=001and(SCORE90); 例3-31:(連接查詢與表的別名) 求選修了課程的學(xué)生的學(xué)生、課程號(hào)和成績。select SNAME,O,SCORE from S S1,SC where S1.S

14、NO=SC.SNO; 24行 例3-32:(自身連接查詢) 求年齡大于 麗 的所有學(xué)生的、系和年齡。select S1.SNAME,S1.SDEPT,S1.SAGE from S S1,SS2 where S2.SNAME= 麗andS1.SAGES2.SAGE; 例3-33:(外部連接查詢) 求選修了課程002或003的學(xué)生的*、課程號(hào)、課程名和成績,要求必須將002和003課程的相關(guān)信息顯示出來。 select SNO,C.O,AME,Score from C left outer join SC on (SC.O=C.O) where C.O in(002,003); 例3-34:(子查

15、詢) 求與 黎明 年齡一樣的學(xué)生的和系。AND后面的select SNAME,SDEPT from S where SAGE in(select SAGE from S where SNAME=黎明) and SNAME黎明; 例3-35:(子查詢) 求選修了課程名為 數(shù)據(jù)構(gòu)造 的學(xué)生的*和。select SNO,SNAME from S where SNO in(select SNO from SC where O in(select O from C where AME=數(shù)據(jù)構(gòu)造); 例3-36:(子查詢ANY) 求比數(shù)學(xué)系中*一學(xué)生年齡大的學(xué)生的和系。select SNAME,SDEPT

16、 from S where SAGEany (select SAGE from S where SDEPT=MA); 例3-37:(子查詢ALL) 求比數(shù)學(xué)系中全體學(xué)生年齡大的學(xué)生的和系。select SNAME,SDEPT from S where SAGEall (select SAGE from S where SDEPT=MA); 例3-38:(子查詢E*ISTS) 求選修了課程004的學(xué)生的和系。selectSNAME,SDEPTfromSwheree*ists(select*fromSCwhereSC.SNO=S.SNOandO=004); 例3-39:(返回多列的子查詢) 求與

17、黎明 同系且同齡的學(xué)生的和系。select S1.SNAME,S1.SDEPT from S S1 where e*ists (select * from S S2 where S2.SNAME=黎明 and S1.SDEPT=S2.SDEPT and S1.SAGE=S2.SAGE) and SNAME黎明; 例3-40:(多個(gè)子查詢) 求與 黎明 同系,且年齡大于 麗 的學(xué)生的信息。 select * from S where SDEPT in(select SDEPT from S where SNAME= 黎明) and SAGE(select SAGE from S where SN

18、AME=麗); 例3-41:(子查詢中使用表連接) 求數(shù)學(xué)系中年齡一樣的學(xué)生的和年齡。select SNAME,SAGE from S where SNO in(select S1.SNO from S S1, S S2 where S1.SDEPT=MA and S1.SAGE=S2.SAGE);或selectdistinctS1.SNAME,S1.SAGEfromSS1,SS2whereS1.SDEPT=MAandS1.SAGE=S2.SAGE; 例3-42:(連接或嵌套查詢) 檢索至少選修王成剛教師所授課程中一門課程的女學(xué)生。select SNAME from S where SSE*=

19、女 and SNO in (select SNO from SC where O in(select O from T where TNAME=王成剛); 例3-43:(嵌套與分組查詢) 檢索選修*課程的學(xué)生人數(shù)多于3人的教師。 select distinct TNAME from T where O in(select O from SC group by O having count(SNO)3); 例3-44:(集合查詢) 列出所有教師和同學(xué)的和性別。 select SNAME,SSE* from S union select TNAME,TSE* from T;例3-45:(相關(guān)子查詢

20、) 求未選修課程004的學(xué)生的。 selectSNAMEfromSwhereSNOnotin(selectSNOfromSCwhereO=004); 例3-46:(相關(guān)子查詢) 求選修了全部課程的學(xué)生的。 selectSNAMEfromSwherenote*ists(select*fromCwherenote*ists(select*fromSCwhereSNO=S.SNOandO=C.O);未有學(xué)生選了全部課程。 例3-47:(相關(guān)子查詢) 求至少選修了學(xué)生 96002 所選修的全部課程的學(xué)生的*。 select SNO from S where not e*ists(select * fr

21、om SC Sc1 where Sc1.SNO=96002 and not e*ists(select * from SC Sc2 where Sc2.SNO=S.SNO and Sc1.O=Sc2.O); 例3-48:(相關(guān)子查詢) 求成績比所選修課程平均成績高的學(xué)生的*、課程號(hào)、和成績。select Sc1.SNO,Sc1.O,Sc1.SCORE from SC Sc1 where SCORE(select avg(SCORE) from SC Sc2 where Sc1.SNO=Sc2.SNO); 例3-49:(相關(guān)子查詢) 查詢被一個(gè)以上的學(xué)生選修的課程號(hào)。select O from

22、C where O in(select O from SC group by O having count(SNO)1);例3-50:(相關(guān)子查詢) 查詢所有未選課程的學(xué)生和所在系。select SNAME,SDEPT from S where SNO not in(select distinct SNO from SC ); 實(shí)驗(yàn)要求 對(duì)數(shù)據(jù)庫表進(jìn)展各種查詢操作。 實(shí)驗(yàn)方法 將實(shí)驗(yàn)需求用SQL語句表示; 執(zhí)行SQL語句; 查看執(zhí)行結(jié)果,如果結(jié)果不正確,進(jìn)展修改,直到正確為止。 實(shí)驗(yàn)總結(jié) SQL語句以及執(zhí)行結(jié)果; 對(duì)重點(diǎn)實(shí)驗(yàn)結(jié)果進(jìn)展分析; 實(shí)驗(yàn)中的問題和提高; 收獲與體會(huì)實(shí)驗(yàn)四:視圖、授權(quán)控制

23、與事務(wù)處理 實(shí)驗(yàn)日期 2017 年 12 月 7 日 實(shí)驗(yàn)?zāi)康?通過實(shí)驗(yàn)進(jìn)一步理解視圖的建立和更新、數(shù)據(jù)庫的權(quán)限管理和事務(wù)處理功能。 實(shí)驗(yàn)容 4 SQL視圖的定義與操縱: 例4-1: (建立視圖) 建立計(jì)算機(jī)系的學(xué)生的視圖STUDENT_CS。create view STUDENT_CS as select * from S where SDEPT=CS; 例4-2: (建立視圖) 建立由*和平均成績兩個(gè)字段的視圖STUDENT_GR。createviewSTUDENT_GR(SNO,AVERAGE)asselectSNO,avg(SCORE)fromSCgroupbySNO; 例4-3: (

24、視圖查詢) 利用視圖STUDENT_CS,求年齡大于19歲的學(xué)生的全部信息。select * from STUDENT_CS where SAGE19; 例4-4: (視圖查詢) 利用視圖STUDENT_GR,求平均成績?yōu)?8分以上的學(xué)生的*和平均成績。select*fromSTUDENT_GRwhereAVERAGE88; 例4-5: (視圖更新) 利用視圖STUDENT_CS,增加學(xué)生(96006,然,CS,02,男,19 )。insertintoSTUDENT_CSvalues(96006,然,CS,02,19,男); 例4-6: (視圖更新) 利用視圖STUDENT_CS,將學(xué)生年齡增

25、加1歲。觀察其運(yùn)行結(jié)果并分析原因。update STUDENT_CS set SAGE=SAGE+1; 例4-7: (視圖更新) 利用視圖STUDENT_GR,將平均成績?cè)黾?分。觀察其運(yùn)行結(jié)果并分析原因。 updateSTUDENT_GRsetAVERAGE=AVERAGE+2; 例4-8: (視圖更新) 刪除視圖STUDENT_CS中*為 96006 的學(xué)生的全部數(shù)據(jù)。delete from STUDENT_CS where SNO=96006; 例4-9: (視圖更新) 刪除視圖STUDENT_GR的全部數(shù)據(jù)。deletefromSTUDENT_GR; 例4-10:(刪除視圖) 刪除視圖

26、STUDENT_CS和STUDENT_GR。drop view STUDENT_CS;drop view STUDENT_GR;5 SQL數(shù)據(jù)控制語句: 例5-1: (授權(quán)) 給左右鄰近同學(xué)用戶授予在表Student上的SELECT權(quán)限,并使這兩個(gè)用戶具有給其他用戶授予一樣權(quán)限的權(quán)限。grant select on S to U149074316 with grant option; 例5-2: (授權(quán)) 給鄰近同學(xué)用戶授予Teach表上的所有權(quán)限。grant all privileges on T to U149074316; 例5-3: (授權(quán)) 給所有用戶授予Score表上的SELECT

27、權(quán)限。grant select on SC to public; 例5-4: (授權(quán)驗(yàn)證) 觀察左右鄰近同學(xué)查詢你所授權(quán)的表中的容。 例5-5: (收回授權(quán)) 收回上面例子中的所有授予的權(quán)限。revoke select on Student from U149074266; revoke all privileges on Teach from U149074266; revoke select on Score from public;6 SQL事務(wù)處理: 例6-1: (事務(wù)回退) 將課程名稱表中的 程序設(shè)計(jì) 課程學(xué)時(shí)數(shù)修改為80、微機(jī)原理 課程學(xué)時(shí)數(shù)修改為70學(xué)時(shí),查詢?nèi)空n程的總學(xué)時(shí)數(shù)后

28、,取消所有修改(ROLLBACK)。再次查詢?nèi)空n程的總學(xué)時(shí)數(shù)。注意比擬分析兩次查詢的結(jié)果。update C set CTIME=80 where AME=程序設(shè)計(jì);update C set CTIME=70 where AME=微機(jī)原理;select * from C;rollback;select * from C; 例6-2: (事務(wù)提交) 將課程名稱表中的 程序設(shè)計(jì) 課程學(xué)時(shí)數(shù)修改為80、微機(jī)原理 課程學(xué)時(shí)數(shù)修改為70學(xué)時(shí),查詢?nèi)空n程的總學(xué)時(shí)數(shù)后,確認(rèn)所有修改(MIT)。再次查詢?nèi)空n程的總學(xué)時(shí)數(shù)。注意比擬分析兩次查詢的結(jié)果。update C set CTIME=80 where A

29、ME=程序設(shè)計(jì);update C set CTIME=70 where AME=微機(jī)原理;select*fromC; 實(shí)驗(yàn)要求 建立視圖,視圖查詢,視圖更新; 給*一或全部用戶授權(quán)和收回授權(quán); 事務(wù)回退,事務(wù)提交。 實(shí)驗(yàn)方法 將實(shí)驗(yàn)需求用SQL語句表示; 執(zhí)行SQL語句; 查看執(zhí)行結(jié)果,如果結(jié)果不正確,進(jìn)展修改,直到正確為止。 實(shí)驗(yàn)總結(jié) SQL語句以及執(zhí)行結(jié)果; 對(duì)重點(diǎn)實(shí)驗(yàn)結(jié)果進(jìn)展分析; 實(shí)驗(yàn)中的問題和提高; 收獲與體會(huì)。實(shí)驗(yàn)五:Oracle存儲(chǔ)過程與觸發(fā)器 實(shí)驗(yàn)?zāi)康?通過實(shí)驗(yàn)進(jìn)一步理解和掌握Oracle數(shù)據(jù)庫的存儲(chǔ)過程和觸發(fā)器。 實(shí)驗(yàn)容 4 存儲(chǔ)過程與觸發(fā)器:例7-1: (存儲(chǔ)過程) 創(chuàng)立一

30、個(gè)顯示學(xué)生總?cè)藬?shù)的存儲(chǔ)過程。方法一:常用 CREATE OR REPLACE PROCEDURE STU_COUNT AS A NUMBER; BEGIN SELECT COUNT(*) INTO A FROM STUDENT; DBMS_OUTPUT.PUT_LINE(學(xué)生總?cè)藬?shù)為 |A); END;方法二:例7-2: (存儲(chǔ)過程) 創(chuàng)立顯示學(xué)生信息的存儲(chǔ)過程STUDENT_LIST,并引用STU_COUNT存儲(chǔ)過程。CREATE OR REPLACE PROCEDURE STUDENT_LISTASA NUMBER;CURSOR STUDENT_CURSOR ISSELECT * FROM

31、 STUDENT;BEGINFOR STUDENT_RECORD IN STUDENT_CURSOR LOOPDBMS_OUTPUT.PUT_LINE(STUDENT_RECORD.SNO| |STUDENT_RECORD.SNAME| |STUDENT_RECORD.SDEPT| |STUDENT_RECORD.SCLASS| |STUDENT_RECORD.SSE*| |STUDENT_RECORD.SAGE);END LOOP;STU_COUNT( );END;/例7-3: (存儲(chǔ)過程) 創(chuàng)立一個(gè)顯示學(xué)生平均成績的存儲(chǔ)過程。 CREATE OR REPLACE PROCEDURE STU

32、_AVG(P IN SCORE.SNO%TYPE)ASA NUMBER(5,2);BEGINSELECT AVG(SCORE) INTO A FROM SCORE WHERE SNO=P GROUP BY SNO;DBMS_OUTPUT.PUT_LINE(*為 |P| 的學(xué)生的平均成績?yōu)椋?|A);END;/例7-4: (存儲(chǔ)過程) 創(chuàng)立顯示所有學(xué)生平均成績的存儲(chǔ)過程。 CREATE OR REPLACE PROCEDURE STUDENT_SAVG AS SAVG NUMBER(5,2); SSNO CHAR(5); CURSOR SCORE_CURSOR IS SELECT SNO,AVG

33、(SCORE) FROM SCORE GROUP BY SNO; BEGIN OPEN SCORE_CURSOR; LOOP FETCH SCORE_CURSOR INTO SSNO,SAVG; E*IT WHEN SCORE_CURSOR%NOTFOUND; DBMS_OUTPUT.PUT_LINE(SSNO| |SAVG); END LOOP; CLOSE SCORE_CURSOR; END; /例7-5: (修改數(shù)據(jù)庫表) 在Student表中增加SAVG(N,6,2) 字段。ALTER TABLE STUDENT ADD SAVG NUMBER (6,2);例7-6: (存儲(chǔ)過程) 創(chuàng)

34、立存儲(chǔ)過程,計(jì)算每個(gè)學(xué)生的平均成績保存到學(xué)生表SAVG字段中。CREATE OR REPLACE PROCEDURE STUDENT_INSERTSAVG AS SSAVG NUMBER(5,2); SSNO CHAR(5); CURSOR SCORE_CURSOR IS SELECT SNO,AVG(SCORE) FROM SCORE GROUP BY SNO; BEGIN OPEN SCORE_CURSOR; LOOP FETCH SCORE_CURSOR INTO SSNO,SSAVG; UPDATE STUDENT SET SAVG=SSAVG WHERE SNO=SSNO; E*IT

35、 WHEN SCORE_CURSOR%NOTFOUND; END LOOP; CLOSE SCORE_CURSOR; END;例7-7: (觸發(fā)器) 當(dāng)更新學(xué)生成績表SCORE中的學(xué)生成績時(shí),自動(dòng)計(jì)算該學(xué)生的平均成績保存到學(xué)生表SAVG字段中。CREATEORREPLACETRIGGERSTU_AVGAFTERUPDATEONSCOREFOREACHROWDECLAREPRAGMAAUTONOMOUS_TRANSACTION;BEGINIFUPDATINGTHENUPDATESTUDENTSETSAVG=(SELECTAVG(SCORE)FROMSCOREWHERESNO=:NEW.SNOGR

36、OUPBYSNO)WHERESNO=:NEW.SNO;MIT;ENDIF;END;例7-8: (觸發(fā)器) 創(chuàng)立包含插入、刪除、修改多種觸發(fā)事件的觸發(fā)器DML_LOG,對(duì)SCORE表的操作進(jìn)展記錄。用INSERTING、DELETING、UPDATING謂詞來區(qū)別不同的DML操作。先創(chuàng)立事件記錄表LOGS,該表用來對(duì)操作進(jìn)展記錄。該表的字段含義解釋如下: LOG_ID:操作記錄的編號(hào),數(shù)值型,它是該表的主鍵,自動(dòng)增1,可由序列自動(dòng)生成。 LOG_TABLE:進(jìn)展操作的表名,字符型,非空,該表設(shè)計(jì)成可以由多個(gè)觸發(fā)器共享使用。比方我們可以為Student表創(chuàng)立類似的觸發(fā)器,同樣將操作記錄到該表。 LO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論