數(shù)據(jù)庫試驗答案_第1頁
數(shù)據(jù)庫試驗答案_第2頁
數(shù)據(jù)庫試驗答案_第3頁
數(shù)據(jù)庫試驗答案_第4頁
數(shù)據(jù)庫試驗答案_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機與信息學(xué)院數(shù)據(jù)庫實驗報告專業(yè)班級學(xué)生姓名及學(xué)號課程教學(xué)班號任課教師實驗指導(dǎo)教師實驗地點2012~2013學(xué)年第二學(xué)期實驗1使用向?qū)?chuàng)建和刪除數(shù)據(jù)庫實驗?zāi)康氖煜QLServer中SQLServerManagementStudio的環(huán)境了解SQLServer數(shù)據(jù)庫的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)掌握使用向?qū)?chuàng)建和刪除數(shù)據(jù)庫的方法實驗要求熟練使用SSMS進行數(shù)據(jù)庫的創(chuàng)建和刪除操作。完成實驗報告。實驗內(nèi)容設(shè)有一學(xué)籍管理系統(tǒng),其數(shù)據(jù)庫名為“EDUC”。初始大小為10MB,最大為50MB,數(shù)據(jù)庫自動增長,增長方式是按5%比例增長;日志文件初始為2MB,最大可增長到5MB,按1MB增長。數(shù)據(jù)庫的邏輯文件名為“student_data”,物理文件名為“student_data.mdf,存放路徑為“E:\sql_data”。日志文件的邏輯文件名為“student_log”,物理文件名為“student_log.ldf”,存放路徑為“E:\sql_data”。四、實驗步驟1.使用SQLServerManagementStudio(簡稱SSMS)創(chuàng)建數(shù)據(jù)庫。(1)啟動SSMS在開始菜單中:所有程序-SQLServer2005-SQLServerManagementStudio單擊“連接”按鈕,便可以進入【SQLServerManagementStudio】窗口。如果身份驗證選擇的是“混合模式”,則要輸入sa的密碼。(2)建立數(shù)據(jù)庫在“對象資源管理器”窗口,建立上述數(shù)據(jù)庫EDUC。在數(shù)據(jù)庫節(jié)點上右擊選擇新建。同時建立一個同樣屬性的數(shù)據(jù)庫EDUC1。2.使用向?qū)h除上面建立的數(shù)據(jù)庫。用SSMS刪除建立的數(shù)據(jù)庫EDUC。實驗總結(jié)經(jīng)過本次試驗,對于SQLSERVER有了一個初步的認識,也對于在sqlserver上創(chuàng)建數(shù)據(jù)庫有了一定的了解。實驗2使用SQL語句創(chuàng)建和刪除數(shù)據(jù)庫實驗?zāi)康?.了解SQLServer2005數(shù)據(jù)庫的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。2.掌握使用SQL語句創(chuàng)建和刪除數(shù)據(jù)庫。二、實驗要求1.熟練使用查詢分析器進行數(shù)據(jù)庫的創(chuàng)建和刪除操作。2.完成實驗報告。三、實驗內(nèi)容用SQL語句去創(chuàng)建和刪除數(shù)據(jù)庫。實驗步驟1.創(chuàng)建數(shù)據(jù)庫userdb1。根據(jù)步驟1的sql語句,寫出創(chuàng)建實驗1中數(shù)據(jù)庫EDUC的sql語句,并建立數(shù)據(jù)庫EDUC.createdatabaseEDUCon(name=EDUC_data,--數(shù)據(jù)文件的邏輯名稱,注意不能與日志邏輯同名filename='E:\sql_data\student_data.mdf',--物理名稱,注意路徑必須存在size=10,--數(shù)據(jù)初始長度為Mmaxsize=50,--最大長度為Mfilegrowth=5%)--數(shù)據(jù)文件每次增長Mlogon(name=EDUC_log,filename='E:\sql_data\student_log.ldf',size=2,maxsize=5,filegrowth=1)3.用SQL語句刪除步驟1建立的數(shù)據(jù)庫userdb1。dropdatabaseuserdb1;五、實驗總結(jié)掌握了用SQL語句創(chuàng)建和刪除數(shù)據(jù)庫,對SQLServer都有了進一步的認識和了解,發(fā)現(xiàn)其實SQL語句還是挺好用的。實驗三分別用向?qū)Ш蚐QL語句創(chuàng)建和刪除表實驗?zāi)康?.了解表的結(jié)構(gòu)特點。2.了解SQLServer的基本數(shù)據(jù)類型。3.學(xué)會使用T-SQL語句創(chuàng)建表。二.實驗要求完成SQL語句創(chuàng)建和刪除基本表。完成實驗報告。三.實驗內(nèi)容在數(shù)據(jù)庫EDUC中,創(chuàng)建如下幾個表:表3.1class表(班級信息表)字段名稱類型允許空值主鍵說明ClsNOChar(6)NOTNULL是班號ClsNameVarchar(16)NOTNULL班名DirectorVarchar(10)NULL輔導(dǎo)員SpecialtyVarchar(30)NULL專業(yè)表3.2student表(學(xué)生信息表)字段名稱類型允許空值主鍵說明SnoChar(8)NOTNULL是學(xué)號SnameVarchar(10)NOTNULL姓名SexChar(2)性別:男、女ClsNOChar(6)NULL班級的編號,(外鍵)參照表ClassSaddrVarchar(20)住址Sagenumeric(3,0)年齡,大于10,但小于30歲HeightDecimal(4,2)身高表3.3course表(課程信息表)字段名稱類型允許空值主鍵說明CnoChar(4)NOTNULL是主鍵CnameVarchar(16)NOTNULL課程的名稱Cpnochar(4)NULL先修課程的課程號(外鍵),參照cnoCcreditTinyint學(xué)分表3.4sc表(學(xué)生選課成績表)字段名稱類型允許空值主鍵說明SnoChar(8)NOTNULL是學(xué)號,參照Student,與Cno組成主鍵CNOChar(4)NOTNULL是課程號,參照CoursegradeNumeric(4,1)NULL成績四.實驗步驟打開查詢窗口,輸入創(chuàng)建基本表的sql語句。student表:createtablestudent(snochar(8)NOTNULLprimarykey,--學(xué)號snamevarchar(10)NOTNULL,--姓名sexchar(2)check(sex='女'orsex='男'),--性別:男、女clsnochar(6),--班級編號,(外鍵)參照表classforeignkey(clsno)referencesclass(clsno),sadrrvarchar(20),--住址sagenumeric(3,0),--年齡,大于,但小于歲heightdecimal(4,2)--身高)class表createtableclass(clsnochar(6)NOTNULLprimarykey,--班號clsnamevarchar(16)NOTNULL,--班名directorvarchar(10)NULL,--輔導(dǎo)員specialtyvarchar(30)NULL--專業(yè))course表createtablecourse(cnochar(4)NOTNULLprimarykey,--主鍵cnamevarchar(16)NOTNULL,--課程名稱cpnochar(4),--先修課程的課程號(外鍵),參照cnoccredittinyint--學(xué)分)sc表createtablesc(snochar(8)NOTNULL,--學(xué)號,參照Student,與Cno組成主鍵cnochar(4)NOTNULL,--課程號,參照Coursegradenumeric(4,1)NULL,--成績primarykey(sno,cno),foreignkey(sno)referencesstudent(sno),foreignkey(cno)referencescourse(cno),)五、實驗總結(jié)通過本次試驗,基本掌握了用sql語言創(chuàng)建數(shù)據(jù)庫表的基本方法。實驗四數(shù)據(jù)更新操作一.實驗?zāi)康?.熟悉使用UPDATE/INSERT/DELETE語句進行表操作;2.能將這些更新操作應(yīng)用于實際操作中去;二.實驗要求完成下面的實驗內(nèi)容,并提交實驗報告;在實驗報告中附上相應(yīng)的代碼;三.實驗內(nèi)容(1)向表(Student)中插入數(shù)據(jù)SnoSnameSsexClsNOSaddrSageHeight20090101王軍男CS01下關(guān)40#201.7620090102李杰男CS01江邊路96#221.7220090306王彤女MT04中央路94#191.6519940107吳杪女PH08蓮化小區(qū)74#181.60插入數(shù)據(jù)之后使用命令:Select*fromStudent;檢查插入數(shù)據(jù)的正確性insertintostudentvalues('20090101','王軍','男','cs01','下關(guān)#','20','1.76');insertintostudentvalues('20090102','李杰','男','cs01','江邊路#','22','1.72');insertintostudentvalues('20090306','王彤','女','MT04','中央路#','19','1.65');insertintostudentvalues('19940107','吳杪','女','PH08','蓮化小區(qū)#','18','1.60');select*fromstudent;(2)向表(Class)中插入數(shù)據(jù)ClsNOClsNameDirectorSpecialtyCS01計算機一班王寧計算機應(yīng)用CS02計算機二班王寧計算機應(yīng)用MT04數(shù)學(xué)四班陳晨數(shù)學(xué)PH08物理八班葛格物理插入數(shù)據(jù)之后使用命令:Select*fromClass;檢查插入數(shù)據(jù)的正確性insertintoclassvalues('cs01','計算機一班','王寧','計算機應(yīng)用');insertintoclassvalues('cs02','計算機二班','王寧','計算機應(yīng)用');insertintoclassvalues('MT04','數(shù)學(xué)四班','陳晨','數(shù)學(xué)');insertintoclassvalues('PH08','物理八班','葛格','物理');select*fromclass;(3)向表(Course)中插入數(shù)據(jù)CnoCnameCpnoCredit0001高等數(shù)學(xué)Null60003計算機基礎(chǔ)000130007物理00014插入數(shù)據(jù)之后使用命令:Select*fromCourse;檢查插入數(shù)據(jù)的正確性insertintocoursevalues('0001','高等數(shù)學(xué)',NULL,'6');insertintocoursevalues('0003','計算機基礎(chǔ)','0001','3');insertintocoursevalues('0007','物理','0001','4');select*fromcourse;(4)向表(SC)中插入數(shù)據(jù)SNOCNOGrade20090101000190200901010007862009010200018720090102000376200903060001872009030600039319940106000785insertintoscvalues('20090101','0001','90');insertintoscvalues('20090101','0007','86');insertintoscvalues('20090102','0001','87');insertintoscvalues('20090102','0003','76');insertintoscvalues('20090306','0001','87');insertintoscvalues('20090306','0003','93');insertintoscvalues('19940107','0007','85');select*fromsc;(5).對于student表,將所有班級號為‘CS01’的,并且年齡小于20歲的學(xué)生的班級號改為‘CS02’。updatestudentsetclsno='cs02'whereclsno='cs01'andsage<20;select*fromstudent;(6).對于student表,刪掉所有年齡大于20歲,并且專業(yè)號為‘CS02’的學(xué)生的記錄。對于student表,插入一條新記錄,它的具體信息為,學(xué)號:20071101、姓名:張三、性別:男、年齡:19、班級編號:‘CS01’。由于表student數(shù)據(jù)較少,因而添加數(shù)據(jù),用來滿足要求:insertintostudentvalues('20102702','黃磊','男','cs01','下關(guān)#','18','1.78');insertintostudentvalues('20102712','李超','男','cs01','江邊路#','19','1.72');insertintostudentvalues('20102708','陳明飛','男','cs02','中央路#','22','1.65');deletefromstudentwheresage>20andclsno='cs02';insertintostudent(sno,sname,ssex,sage,clsno)values('20071101','張三','男','19','cs01')(7).對于student表,將年齡最小的學(xué)生的家庭地址去掉。updatestudentsetsadrr=nullwheresage=(selectMIN(s.sage)fromstudents);(8).對于student表,將平均年齡最小的一個班級編號改為‘GL01’由于給定的class表中數(shù)據(jù)不足,因而添加數(shù)據(jù)以用來滿足要求。insertintoclassvalues('gl01','計算機班','王','計算應(yīng)用');updatestudentsetstudent.clsno='gl01'wherestudent.clsno=(selectt1.clsnofrom(selects1.clsno,avg(s1.sage)afromstudents1groupbys1.clsno)t1,(selectMIN(t2.a1)mfrom(selects.clsno,avg(s.sage)a1fromstudentsgroupbys.clsno)t2)t3wheret1.a=t3.m);五、實驗總結(jié)通過本次試驗,懂得了用sql語言來插入數(shù)據(jù),以及一些簡單的數(shù)據(jù)更新操作,也對sqlserver有了更多的了解。在實驗的過程中,也遇到許多的問題,并在實驗的過程中解決。比方說,在往表中插入數(shù)據(jù)時,先插的student表的數(shù)據(jù),結(jié)果就發(fā)現(xiàn)出現(xiàn)錯誤,原來是student表中的clsno是class表的外碼,需要先插入class表,student表內(nèi)容才能插進去;還有在數(shù)據(jù)更新的過程中,比方說“對于student表,將平均年齡最小的一個班級編號改為‘GL01’”,由于class表中沒有班號位“gl01”,因而出錯,這是沒有違反完整性約束條件,在插入一組班號為“gl01”時,該更新操作就能正確的運行。實驗五創(chuàng)建和刪除索引一.實驗?zāi)康牧私馑饕念愋秃蛻?yīng)用。學(xué)會用SQL語句對表創(chuàng)建和刪除索引二.實驗要求1.了解索引類型并比較各類索引的不同之處2.完成索引的創(chuàng)建和刪除,并提交實驗報告。三.實驗內(nèi)容1.用SQL語句分別建立以下索引(1)在student表的Sname列上建立普通降序索引Stusname。(2)在course表的Cname列上建立唯一索引Coucname。(3)在sc表的Sno(升序),Cno(升序)和grade(降序)三列上建立一個普通索引SCno。2.用SQL語句刪除索引Student表的Stusname索引。四、實驗步驟1.用SQL語句分別建立以下索引(1)在student表的sname列上建立普通降序索引Stusname。createindexstusnameonstudent(snamedesc);(2)在course表的cname列上建立唯一索引Coucname。createuniqueindexcoucnameoncourse(cname);(3)在sc表的Sno(升序),Cno(升序)和grade(降序)三列上建立一個普通索引SCno。createindexscnoonsc(sno,cno,gradedesc)2.刪除索引刪除Student表的Stusname索引。dropindexstusnameonstudent;五、實驗總結(jié)通過本次試驗,學(xué)會了用sql語言為基本表創(chuàng)建索引和刪除索引。實驗六數(shù)據(jù)查詢實驗?zāi)康?.觀察查詢結(jié)果,體會SELECT語句實際應(yīng)用;2.要求學(xué)生能夠在查詢分析器中使用SELECT語句進行簡單查詢。3.熟練掌握簡單表的數(shù)據(jù)查詢、數(shù)據(jù)排序和數(shù)據(jù)連接查詢的操作方法。實驗要求1.完成簡單查詢和連接查詢操作,并驗收實驗結(jié)果提交實驗報告實驗內(nèi)容所有的查詢?nèi)坑肨ransact-SQL語句實現(xiàn)。此部分查詢包括投影、選擇條件表達、數(shù)據(jù)排序、使用臨時表等。對EDUC數(shù)據(jù)庫實現(xiàn)以下查詢:查詢計算機應(yīng)用專業(yè)的學(xué)生學(xué)號和姓名;查詢選修了課程的學(xué)生學(xué)號;查詢選修課程0001且成績在80-90之間的學(xué)生學(xué)號和成績,并將成績乘以系數(shù)0.75輸出;查詢計算機應(yīng)用和數(shù)學(xué)專業(yè)的姓“張”的學(xué)生的信息。查詢“0001”課程的成績高于張三的學(xué)生學(xué)號和成績;查詢沒有選修“0002”課程的學(xué)生姓名;實驗步驟打開查詢窗口,輸入SQL查詢語句,點擊“執(zhí)行”按鈕,查看查詢結(jié)果。查詢計算機應(yīng)用專業(yè)的學(xué)生學(xué)號和姓名;selectsno,snamefromstudent,classwherestudent.clsno=class.clsnoandclass.specialty='計算機應(yīng)用';查詢選修了課程的學(xué)生學(xué)號;selectsnofromscwheresnoisnotnull;查詢選修課程0001且成績在80-90之間的學(xué)生學(xué)號和成績,并將成績乘以系數(shù)0.75輸出;selectsno,grade*0.75fromscwherecno='0001'andgradebetween80and90;查詢計算機應(yīng)用和數(shù)學(xué)專業(yè)的姓“張”的學(xué)生的信息。select*fromstudent,classwheresnamelike'張__'andstudent.clsno=class.clsnoand(specialty='計算機應(yīng)用'orspecialty='數(shù)學(xué)');查詢“0001”課程的成績高于張三的學(xué)生學(xué)號和成績;selectstudent.sno,gradefromstudent,scwherecno='0001'andstudent.sno=sc.snoandgradein(selectgradefromstudent,scwheresname='王軍'andstudent.sno=sc.sno)查詢沒有選修“0002”課程的學(xué)生姓名;selectdistinctsnamefromstudent,scwherestudent.sno=sc.snoandcno!='0002五、實驗總結(jié)通過本次試驗,復(fù)習(xí)用sql語言處理數(shù)據(jù)查詢的一些方法,更好的掌握數(shù)據(jù)的查詢。實驗七使用聚集函數(shù)的SELECT語句實驗?zāi)康?.熟練掌握數(shù)據(jù)查詢中的分組、統(tǒng)計、計算和組合的操作方法。2.進一步掌握SQLServer查詢分析器的使用,加深對SQL語言的嵌套查詢語句的理解。實驗要求1.在實驗之前做好準(zhǔn)備。2.完成實驗,并驗收實驗結(jié)果提交實驗報告。實驗內(nèi)容在數(shù)據(jù)庫EDUC中用SQL語句實現(xiàn)如下查詢:1)求學(xué)生的總?cè)藬?shù)。2)求選修了課程的學(xué)生人數(shù)。3)求課程的課程號和選修該課程的人數(shù)。4)求選修課程超過2門課的學(xué)生學(xué)號。四.實驗步驟1)求學(xué)生的總?cè)藬?shù).selectCOUNT(*)fromstudent;2)求選修了課程的學(xué)生人數(shù)。selectCOUNT(distinctsno)fromsc;求課程的課程號和選修該課程的人數(shù)。selectCOUNT(cno)fromscgroupbycno;4)求選修課程超過2門課的學(xué)生學(xué)號。selectsnofromscgroupbysnohavingCOUNT(*)>1;實驗總結(jié)通過本次試驗對聚集函數(shù)的SELECT語句使用更加熟悉。實驗八視圖的定義與使用實驗?zāi)康氖煜ず驼莆諏?shù)據(jù)表中視圖的查詢操作和SQL命令的使用;熟悉和掌握對數(shù)據(jù)表中視圖的更新操作和SQL命令的使用,并注意視圖更新與基本表更新的區(qū)別與聯(lián)系;3.學(xué)習(xí)靈活熟練的進行視圖的操作,認識視圖的作用。二.實驗要求在實驗開始之前做好準(zhǔn)備工作。實驗之后提交實驗報告,思考視圖和基本表的區(qū)別三.實驗內(nèi)容1.定義視圖在EDUC數(shù)據(jù)庫中,已Student、Course和SC表為基礎(chǔ)完成一下視圖定義:將Student,Course和SC表中學(xué)生的學(xué)號,姓名,課程號,課程名,成績定義為視圖V_SC_G;定義一個反映學(xué)生出生年份的視圖V_YEAR;將各位學(xué)生選修課程的門數(shù)及平均成績定義為視圖V_AVG_S_G;將各門課程的選修人數(shù)及平均成績定義為視圖V_AVG_C_G。2.使用視圖查詢以上所建的視圖結(jié)果。查詢平均成績?yōu)?0分及以上的學(xué)生學(xué)號、姓名和成績;查詢課程成績大于平均成績的學(xué)生學(xué)號、課程號、成績和平均成績;查詢1994年出生的學(xué)生學(xué)號和姓名。實驗步驟1.定義視圖1)將Student,Course和SC表中學(xué)生的學(xué)號,姓名,課程號,課程名,成績定義為視圖V_SC_G.createviewv_sc_gasselectstudent.sno,sname,o,cname,gradefromsc,student,coursewheresc.sno=o=o;select*fromv_sc_g;dropviewv_sc_g;定義一個反映學(xué)生出生年份的視圖V_YEAR.createviewv_yearasselectsno,sname,2013-sageagefromstudent;select*fromv_year;3)將各位學(xué)生選修課程的門數(shù)及平均成績定義為視圖V_AVG_S_G.createviewv_avg_s_gasselectstudent.sno,COUNT(cno)cnum,avg(grade)avg_agefromsc,studentwheresc.sno=student.snogroupbystudent.sno;4)將各門課程的選修人數(shù)及平均成績定義為視圖V_AVG_C_G。createviewv_avg_c_gasselectcno,count(*)ascnum,avg(grade)avg_gradefromscgroupbycno;select*fromv_avg_c_g;2.使用視圖查詢以上所建的視圖結(jié)果。查詢平均成績?yōu)?0分及以上的學(xué)生學(xué)號、姓名和成績;selectstudent.sno,sname,avg_agefromv_avg_s_gs,studentwheres.sno=student.snoands.avg_age>='90';.查詢科目成績大于平均成績的學(xué)生學(xué)號、課程號、成績和平均成績;selectstudent.sno,sname,cno,grade,avg_agefromsca,student,v_avg_s_gwherea.sno=student.snoandStudent.sno=v_avg_s_g.snoandnotexists(select*fromscb,v_avg_c_gwherea.Grade<v_avg_c_g.avg_gradeanda.Cno=b.Cno)查詢1994年出生的學(xué)生學(xué)號和姓名。selectsname,snofromv_yearwhereage='1994';實驗總結(jié)視圖的使用很簡單,有時使查詢變得更加簡單,和表的使用很像。視圖就是一種很特殊的表。實驗九觸發(fā)器的創(chuàng)建與使用一、實驗?zāi)康谋緦嶒灥哪康氖鞘箤W(xué)生進一步掌握SQLServer觸發(fā)器的創(chuàng)建及使用方法,加深SQL觸發(fā)器的理解。通過對數(shù)據(jù)的更新操作體會其觸發(fā)器的作用。二、實驗要求1.在實驗之前做好準(zhǔn)備2.試驗之后提交實驗報告,并驗收實驗結(jié)果三、實驗內(nèi)容1.在班級表class中增加班級人數(shù)(c_total)字段2.創(chuàng)建INSERT觸發(fā)器t_inst_stu3.創(chuàng)建DELETE觸發(fā)器t_dele_stu:在學(xué)生表(student)中刪除一名學(xué)生,若其班級編號非空,則將班級表(class)中相應(yīng)班級的人數(shù)(c_total)自動減1。4.創(chuàng)建UPDATE觸發(fā)器t_update_stu。5.體會觸發(fā)器的作用。四、實驗步驟1.在班級表class中增加班級人數(shù)(c_total)字段,默認值是0;并手動統(tǒng)計人數(shù)作為該字段的值;altertableclassaddc_totalintNOTNULLDEFAULT0--altertableclassdropcolumnc_total--刪除一個字段2.創(chuàng)建INSERT觸發(fā)器t_inst_stu:在學(xué)生表(student)中每新增一名學(xué)生,若其班級編號非空,則將班級表(class)中相應(yīng)班級的人數(shù)(c_total)自動加1。createtrigger[dbo].[t_inst_stu]on[dbo].[student]forinsertasbegindeclare@clschar(6)select@cls=ClsNofrominsertedifexists(select*fromstudentwherestudent.ClsNo=@clsandstudent.ClsNoisnotnull)print'開始查找并將班級人數(shù)加1……..'updateclasssetc_total=c_total+1whereClsNo=@clsprint'班級人數(shù)已增加!!??!'End3.創(chuàng)建DELETE觸發(fā)器t_dele_stu:在學(xué)生表(student)中刪除一名學(xué)生,若其班級編號非空,則將班級表(class)中相應(yīng)班級的人數(shù)(c_total)自動減1。createtrigger[dbo].t_dele_stuon[dbo].studentfordeleteasbegindeclare@clschar(6)select@cls=clsnofromdeletedifexists(select*fromstudentwherestudent.clsno=@clsandstudent.clsnoisnotnull)print'開始查找并將班級人數(shù)減……..'updateclasssetc_total=c_total-1whereclass.clsno=@clsprint'班級人數(shù)已減少?。。?!'End4.創(chuàng)建UPDATE觸發(fā)器t_update_stu:當(dāng)某學(xué)生所在班號發(fā)生變化時(即調(diào)到另一班級后),將其原先所在班級的人數(shù)(c_total)減1,將新調(diào)入的班級班級的人數(shù)(c_total)加1。createtriggert_update_stuonstudentforupdateasbegindeclare@oldClsNOchar(8),@newClsNOchar(8);select@oldClsNOfromdeleted;select@newClsNOfrominserted;if@oldClsNOisnotnullupdateclasssetc_total=c_total+1whereClsNO=@oldClsNO;if@newClsNOisnotnullupdateclasssetc_total=c_total-1whereClsNO=@newClsNO;End5.觸發(fā)器的作用:1)查看班級表(class)2)對學(xué)生表(student)分別插入(INSERT)、刪除(DELETE)和修改(UPDATE)元組insertintostudentvalues('20102680','古鑫','男','cs01','合工大','20','1.70');deletefromstudentwheresname='古鑫';3)再次查看班級表(class),檢查其數(shù)據(jù)的變化情況,體會觸發(fā)器的作用。select*fromclass;

五.實驗總結(jié)對觸發(fā)器的創(chuàng)建把握的不是太好,還是需要多加鍛煉。實驗十存儲過程的創(chuàng)建與使用一、實驗?zāi)康谋緦嶒灥哪康氖鞘箤W(xué)生進一步掌握SQLServer存儲過程的創(chuàng)建及使用方法,加深對SQL存儲過程的理解。通過對存儲過程的調(diào)用體會其作用。二、實驗要求1.在實驗之前做好準(zhǔn)備2.試驗之后提交實驗報告,并驗收實驗結(jié)果三、實驗內(nèi)容1、創(chuàng)建一個不帶參數(shù)的存儲過程p_stu_info1,實現(xiàn)對滿足要求的學(xué)生基本信息的查詢。2、創(chuàng)建一個帶有參數(shù)的存儲過程p_stu_info2,實現(xiàn)對滿足要求的學(xué)生基本信息的查詢。3、創(chuàng)建一個存儲過程p_stu_info3,根據(jù)輸入的學(xué)號,查詢某學(xué)生的基本信息。4、創(chuàng)建一個存儲過程p_stu_grade,根據(jù)輸入的學(xué)號,返回其選課及其成績。5.使用SQL語句分別執(zhí)行p_stu_info1、p_stu_info2、p_stu_info3和p_stu_grade,并將結(jié)果顯示出來。四、實驗步驟1.建立不帶參數(shù)的存儲過程p_stu_info1(選擇所有年齡<21歲的男同學(xué))。createprocedurep_stu_infolasbeginselectdistinct*fr

溫馨提示

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

評論

0/150

提交評論