![數(shù)據(jù)庫(kù)原及其應(yīng)用實(shí)驗(yàn)(作業(yè))_第1頁(yè)](http://file4.renrendoc.com/view/9a6523652d1425f18414641819c76d86/9a6523652d1425f18414641819c76d861.gif)
![數(shù)據(jù)庫(kù)原及其應(yīng)用實(shí)驗(yàn)(作業(yè))_第2頁(yè)](http://file4.renrendoc.com/view/9a6523652d1425f18414641819c76d86/9a6523652d1425f18414641819c76d862.gif)
![數(shù)據(jù)庫(kù)原及其應(yīng)用實(shí)驗(yàn)(作業(yè))_第3頁(yè)](http://file4.renrendoc.com/view/9a6523652d1425f18414641819c76d86/9a6523652d1425f18414641819c76d863.gif)
![數(shù)據(jù)庫(kù)原及其應(yīng)用實(shí)驗(yàn)(作業(yè))_第4頁(yè)](http://file4.renrendoc.com/view/9a6523652d1425f18414641819c76d86/9a6523652d1425f18414641819c76d864.gif)
![數(shù)據(jù)庫(kù)原及其應(yīng)用實(shí)驗(yàn)(作業(yè))_第5頁(yè)](http://file4.renrendoc.com/view/9a6523652d1425f18414641819c76d86/9a6523652d1425f18414641819c76d865.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)1、數(shù)據(jù)定義實(shí)驗(yàn)?zāi)康氖煜QL的數(shù)據(jù)定義語(yǔ)言,能夠熟練地使用SQL語(yǔ)句來(lái)創(chuàng)立和更改根本表,創(chuàng)立和取消索引.實(shí)驗(yàn)內(nèi)容用企業(yè)治理器創(chuàng)立數(shù)據(jù)庫(kù)University_Mis使用CREAT踣句創(chuàng)立根本表.更改根本表的定義:增加列,刪除列,修改列的數(shù)據(jù)類型.創(chuàng)立表的升、降序索引.刪除根本表的約束、根本表的索引或根本表.實(shí)驗(yàn)步驟(1)用企業(yè)治理器創(chuàng)立數(shù)據(jù)庫(kù)University_Mis(2)在查詢分析器中用SQL語(yǔ)句創(chuàng)立關(guān)薪據(jù)庫(kù)根本表:學(xué)生表Students(Sno,Sname,Semail,Scredit,Sroom)教師表Teachers(Tno,Tname,Temail,Tsalary)課程表Courses(Cno,Cname,Ccredit);成績(jī)表Reports(Sno,Tno,Cno,Score);其中:Sno、Tno、Cno分別是表Students、表Teachers表Courses的主鍵,具有唯一性約束,Scredit具有約束“大于等于0";Reports中的Sno,Tno,CnoH外鍵,它們共同組成Reports的主鍵.(3)更改表Students:增加屬性Ssex簧型是CHAR長(zhǎng)度為2),取消Scredit〞大于等于0〞約束.把表Courses中的屬性Cname的數(shù)據(jù)類型改成長(zhǎng)度為30.(4)刪除表Students的一個(gè)屬性Sroom.(5)刪除表Reports.(6)為Courses表創(chuàng)立按Cno降序排列的索引.(7)為Students表創(chuàng)立按Sno升序排列的索引.(8)創(chuàng)立表Students的按Sname升序排列的唯一性索引.(9)刪除Students表Sno的升序索引.實(shí)驗(yàn)2、SQL的數(shù)據(jù)查詢實(shí)驗(yàn)?zāi)康氖煜QL語(yǔ)句的數(shù)據(jù)查詢語(yǔ)言,能夠SQL語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行單表查詢、連接查詢、嵌套查詢、集合查詢和統(tǒng)計(jì)查詢.實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容主要是對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢操作,包括如下四類查詢方式:?jiǎn)伪聿樵儾樵兊哪繕?biāo)表達(dá)式為所有列、指定的列或指定的列的運(yùn)算三種不同.使用DISTINCT呆留字消除重復(fù)行.對(duì)查詢結(jié)果排序和分組.集合分組使用集函數(shù)進(jìn)行各項(xiàng)統(tǒng)計(jì).連接查詢笛卡兒連接和等值連接.自連接.外連接復(fù)合條件連接.多表連接.嵌套查詢通過(guò)實(shí)驗(yàn)驗(yàn)證對(duì)子查詢的兩個(gè)限制條件.體會(huì)相關(guān)子查詢和不相關(guān)子查詢的不同.考察四類謂詞的用法,包括:第一類,IN、NOTIN第二類,帶有比擬運(yùn)算符的子查詢;第三類,SOMEANY或ALL謂詞的子查詢,查詢最大值和最小值;第四類,帶有EXISTS胃詞的子查詢,實(shí)現(xiàn)“所有〞等情況(如王宏的“所有〞課程,“所有〞女生選修的課程)集合運(yùn)算使用保存字UNION進(jìn)行集合或運(yùn)算.采用邏輯運(yùn)算符AND或OR來(lái)實(shí)現(xiàn)集合交和減運(yùn)算.實(shí)驗(yàn)步驟以University_Mis數(shù)據(jù)庫(kù)為例,該數(shù)據(jù)庫(kù)中有四張如實(shí)驗(yàn)1,其中Score是每門(mén)課的測(cè)試成績(jī),Scredit是學(xué)生所有測(cè)試合格課程所獲得的積分總數(shù),Ccredit每門(mén)課程的學(xué)分?jǐn)?shù).在數(shù)據(jù)庫(kù)中,存在這樣的聯(lián)系:學(xué)生可以選擇課程,一個(gè)課程對(duì)應(yīng)一個(gè)教師.在表Reports中保存學(xué)生的選課記錄和測(cè)試成績(jī).請(qǐng)先輸入如下符合條件的元組后,再對(duì)數(shù)據(jù)庫(kù)進(jìn)行有關(guān)的查詢操作:ISnain電王建平如伴共室偉河江
李黃根en23.1LH?ijiit.wdu.ch34.6FLJCrjut.tdu.en15.6U@zjut,eduun153IfUM曲洞Ejut4d'13.4ChfiTigjiijijt1Z.4圖、Students表nnn££號(hào)eb9-hHmt-m=3.1||T叁m411llsilsryTOI劃濤LTSijut.^4300T02吳碧燕W冊(cè)Riju七一2500703張瑩ZT@ijut.?3000TM條字費(fèi)ZHYQ-an5500T05葉勝I(mǎi)tyeG53300T06桶蘭YLQzjiat.^35007UT程蛾媒ChengRSijutodacn500.圖、Teachers表Cftt1匚力麗色|Cct*sdit|?C01C++4C02UML3CC3JAVA3C04算法分析與設(shè)計(jì)2COS數(shù)據(jù)庫(kù)原理及其應(yīng)用2C06懣據(jù)給構(gòu)與算法分析2COT英語(yǔ)4柒圖、Courses表Sa4TncCfkOSiar41S01TOIcof-83SOITD3C0383雙TO]C01T5502T028259SD2T03S3<UULL>sozT04C04<SULL>302T05Ct)577S02ToeC0686SOSTOTcorSDS03TOZC呢3Bm84T6S04T05859QS04T06C0689SKro4CCi472S2SrosCCiE££26TD7COT55s爾TQ18151S52T05COE90SS2TOTCUT<NULL>圖、Reports表(1)查詢性別為“男〞的所有學(xué)生的名稱并按學(xué)號(hào)升序排列SELECTSnameFROMStudentsWHERESsex='男'ORDERBYSnoASC(2)查詢學(xué)生的選課成績(jī)合格的課程成績(jī),并把成績(jī)換算為積分.積分的計(jì)算公式為:[1+(測(cè)試成績(jī)-60)*]*Ccredit.測(cè)試成績(jī)>=60否那么=0SELECTSno,Score,Credits,(1+(Score-60)**CreditsscoreFROMReports.CoursesWHEREScore>=60(3)查詢學(xué)分是3或4的課程的名稱.SELECTnameFROMCoursesWHERECredits=3ORCredits=4;(4)查詢所有課程名稱中含有“算法〞的課程編號(hào).SELECTCnoFROMCoursesWHERECnameLIKE'%算法%';(5)查詢所有選課記錄的課程號(hào)(不重復(fù)顯示).SELECTCnoFROMReportsWHEREScore!=0GROUPBYCno(6)統(tǒng)計(jì)所有老師的平均工資.SELECTAVG(Tsalary)FROMTeachers(7)查詢所有教師的編號(hào)及選修其課程的學(xué)生的平均成績(jī),按平均成績(jī)降序排列.SELECTTno,AVG(Score)FROMReportsGROUPBYTnoORDERBYAVG(Score)DESC(8)統(tǒng)計(jì)各個(gè)課程的選課人數(shù)和平均成績(jī).SELECTCno,COUNT(Sno)number,AVG(Score)FROMReportsGROUPBYCno(9)查詢至少選修了三門(mén)課程的學(xué)生編號(hào)和姓名.SELECTSno,SnameFROMStudentsWhereSnoIN(SELECTSnoFROMReportsGROUPBYSnoHAVINGCOUNR*)>=3)查詢編號(hào)S26的學(xué)生所選的全部課程的課程名和成績(jī).SELECTSno,Score,CnameFROMReports,CoursesWhereSnoLIKE'S26'AND=查詢所有選了“數(shù)據(jù)庫(kù)原理及其應(yīng)用〞課程的學(xué)生編號(hào)和姓名.SELECTSnameFROMCourses,Students,ReportsWhereCnameLIKE'數(shù)據(jù)庫(kù)原理與其應(yīng)用%'AND=AND=(12)求出選擇了同一個(gè)課程的學(xué)生對(duì).SELECT,FROMReportsA,ReportsBWhere=AND!=ORDERBYCno求出至少被兩名學(xué)生選修的課程編號(hào).查詢選修了編號(hào)S26的學(xué)生所選的某個(gè)課程的學(xué)生編號(hào).查詢學(xué)生的根本信息及選修課程編號(hào)和成績(jī).查詢學(xué)號(hào)S52的學(xué)生的姓名和選修的課程名稱及成績(jī).查詢和學(xué)號(hào)S52的學(xué)生同性別的所有學(xué)生資料.查詢所有選課的學(xué)生的詳細(xì)信息.查詢沒(méi)有學(xué)生選的課程的編號(hào)和名稱.查詢選修了課程名為C++勺學(xué)生學(xué)號(hào)和姓名.找出選修課程UML或者課程C++勺學(xué)生學(xué)號(hào)和姓名.找出和課程UML或課程C++勺學(xué)分一樣課程名稱.查詢所有選修編號(hào)C01的課程的學(xué)生的姓名.查詢選修了所有課程的學(xué)生姓名.利用集合查詢方式,查詢選修課程C+域選擇課程JAVA的學(xué)生的編號(hào)、姓名和積分.實(shí)現(xiàn)集合交運(yùn)算,查詢既選修課程C+儀選修課程JAVA的學(xué)生的編號(hào)、姓名和積分.實(shí)現(xiàn)集合減運(yùn)算,查詢選修課程C++W沒(méi)有選修課程JAVA的學(xué)生的編號(hào).實(shí)驗(yàn)3、數(shù)據(jù)更新實(shí)驗(yàn)?zāi)康氖煜?shù)據(jù)庫(kù)的數(shù)據(jù)更新操作,能夠使用SQL語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)的插入、更新、刪除操作.實(shí)驗(yàn)內(nèi)容在本實(shí)驗(yàn)中,主要內(nèi)容是如何用SQL語(yǔ)句對(duì)數(shù)據(jù)進(jìn)行更新.使用INSERTINTO1句插入數(shù)據(jù),包括插入一個(gè)元組或?qū)⒆硬樵兊慕Y(jié)果插入到數(shù)據(jù)庫(kù)中兩種方式.使用SELECTINTO旬,產(chǎn)生一個(gè)新表并插入數(shù)據(jù).使用UPDATE?旬可以修改指定表中滿足WHERE?何條件的元組,有三種修改的方式:修改某一個(gè)元組的值;修改多個(gè)元組的值;帶子查詢地修改語(yǔ)句.使用DELETE?旬刪除數(shù)據(jù):刪除某一個(gè)元組的值;刪除多個(gè)元組的值;帶子查詢地刪除語(yǔ)句.實(shí)驗(yàn)步驟在數(shù)據(jù)庫(kù)University_Mis上按以下要求進(jìn)行數(shù)據(jù)更新.(1)使用SQL語(yǔ)句向Students表中插入元組(Sno:S78;Sname李迪;;Scredit:0;Ssex男).(2)對(duì)每個(gè)課程,求學(xué)生的選課人數(shù)和學(xué)生的平均成績(jī),并把結(jié)果存入數(shù)據(jù)庫(kù).使用SELECTINTO口INSERTINTOW種方法實(shí)現(xiàn).(3)在Students表中使用SQL語(yǔ)句將姓名為李迪的學(xué)生的學(xué)號(hào)改為S7O(4)在Teachers表中使用SQL語(yǔ)句將所有教師的工資加500元.(5)將姓名為劉華的學(xué)生的課程〞數(shù)據(jù)庫(kù)原理及其應(yīng)用〞的成績(jī)加上6分.(6)在Students表中使用SQL語(yǔ)句刪除姓名為李迪的學(xué)生信息.(7)刪除所有選修課程JAVA的選修課記錄.(8)對(duì)Courses表做刪去學(xué)分<=4的元組操作,討論該操作所受到的約束.實(shí)驗(yàn)4、SQL的視圖實(shí)驗(yàn)?zāi)康氖煜QL支持的有關(guān)視圖的操作,能夠熟練使用SQL語(yǔ)句來(lái)創(chuàng)立需要的視圖,對(duì)視圖進(jìn)行查詢和取消視圖.實(shí)驗(yàn)內(nèi)容(1)定義常見(jiàn)的視圖形式,包括:行列子集視圖WITHCHECKOPTION視圖基于多個(gè)基表的視圖基于視圖的視圖帶表達(dá)式的視圖分組視圖(2)通過(guò)實(shí)驗(yàn)考察WITHCHECKOPTION一語(yǔ)句在視圖定義后產(chǎn)生的影響,包括對(duì)修改操作、刪除操作、插入操作的影響.(3)討論視圖的數(shù)據(jù)更新情況,對(duì)子行列視圖進(jìn)行數(shù)據(jù)更新.(4)使用DROP?旬刪除一個(gè)視圖,由該視圖導(dǎo)出的其他視圖定義仍在數(shù)據(jù)字典中,但已不能使用,必須顯式刪除.同樣的原因,刪除基表時(shí),由該基表導(dǎo)出的所有視圖定義都必須顯式刪除.4.3實(shí)驗(yàn)步驟創(chuàng)立一個(gè)行列子集視圖CS_View,給出選課成績(jī)合格的學(xué)生的編號(hào)、教師編號(hào)、所選課程號(hào)和該課程成績(jī).創(chuàng)立基于多個(gè)根本表的視圖SCT_View,這個(gè)視圖由學(xué)生姓名和他所選修的課程名及講授該課程的教師姓名而成.創(chuàng)立帶表達(dá)式的視圖EXP_View,由學(xué)生姓名及所選課程名和所有課程成績(jī)都比原來(lái)多5分這幾個(gè)屬性組成.創(chuàng)立分組視圖Group_View,將學(xué)生的學(xué)號(hào)及他的平均成績(jī)定義為一個(gè)視圖.創(chuàng)立一個(gè)基于視圖的視圖,基于(1)中建立的視圖,定義一個(gè)包括學(xué)生編號(hào)、學(xué)生所選課程數(shù)目和平均成績(jī)的視圖VV_View.查詢所有選修課程〞數(shù)據(jù)庫(kù)原理及其應(yīng)用〞的學(xué)生姓名.⑺插入元組(S52,T02,C02,59到視圖CS_View中.假設(shè)是在視圖的定義中存在WITHCHECKOPTION旬對(duì)插入操作由什么影響.將視圖CS_View(包括定義WITHCHECKOPTIQN中,所有課程編號(hào)為C01的課程的成績(jī)都減去5分.這個(gè)操作數(shù)據(jù)庫(kù)是否會(huì)正確執(zhí)行,為什么如果加上5分(原來(lái)95分以上的不變)呢在視圖CS_View(包括定義WITHCHECKOPTION刪除編號(hào)S03學(xué)生的記錄,會(huì)產(chǎn)展什么結(jié)果取消視圖SCT_View和視圖CS_View實(shí)驗(yàn)5、數(shù)據(jù)限制實(shí)驗(yàn)?zāi)康氖煜QL的數(shù)據(jù)限制功能,能夠使用SQL語(yǔ)句來(lái)向用戶授予和收回權(quán)限.實(shí)驗(yàn)內(nèi)容(1)使用GRANTS旬來(lái)對(duì)用戶授權(quán),對(duì)單個(gè)用戶或多個(gè)用戶授權(quán),或使用保存字PUBLIC對(duì)所有用戶授權(quán).對(duì)不同的操作對(duì)象包括數(shù)據(jù)庫(kù)、視圖、根本表等進(jìn)行不同權(quán)限的授權(quán).(2)使用WITHGRANTOPTION句授予用戶傳播該權(quán)限的權(quán)利.(3)當(dāng)在授權(quán)時(shí)發(fā)生循環(huán)授權(quán),考察DBS能否發(fā)現(xiàn)這個(gè)錯(cuò)誤.如果不能,結(jié)合取消權(quán)限操作,查看DBS對(duì)循環(huán)授權(quán)的限制.(4)使用REVOK&句收回授權(quán),取消授權(quán)的級(jí)聯(lián)反響.實(shí)驗(yàn)步驟用企業(yè)治理器在數(shù)據(jù)庫(kù)University_Mis中建立三個(gè)用戶USER1USER2和USER3他們?cè)跀?shù)據(jù)庫(kù)中的角色是PUBLIC請(qǐng)按以下要求,分別以治理員身份或這三個(gè)用戶的身份登陸到數(shù)據(jù)庫(kù)中,進(jìn)行操作,并記錄操作結(jié)果.配置治理器一一效勞一一第一個(gè)重新啟動(dòng)(1)授予所有用戶對(duì)表Courses的查詢權(quán)限.這是以windows登錄SQL:GRANTSELECTONCoursesTOPUBLIC以USER1的身份登陸查詢分析器,用SQL語(yǔ)言查詢Courses和Students表,查詢結(jié)果如何SELECT*FROMCourses查詢Courses正常,查詢表Stuents出錯(cuò),由于為將表Students的查詢權(quán)限授予用戶USER1.(2)授予用戶USER1寸表Students插入和更新的權(quán)限,但不授予刪除權(quán)限,并且授予用戶USER1專播這兩個(gè)權(quán)限的權(quán)利.GRANTSELECTI,NSERT,UPDATEONStudentsTOUSER1WITHGRANTOPTION琳不授予用戶USER1SELECT權(quán)限登錄時(shí)將無(wú)法UPDATE)以USER的身.00INSERTINTOStudentsVALUES'S05','葛曉凡','',,'女')UPDATEStudentsSETScredit=WHERESno='S05'(3)允許用戶USER2在表Reports中插入元組,更新Score歹!J,可以查詢除了Sno以外的所有歹U.GRANTINSERTUPDATRScore),SELECTTno,Cno,Score)ONReportsTOUSER2以USER的身.ooINSERTINTOReportsVALUES'S05','T02','C01',85)UPDATEReportsSETScore=90WHERETno='T01'SELECTTno,Cno,ScoreFROMReports二]結(jié)果,j消息TnoChoScore1L—■■■■一cai902TQ3cosS33TOIC01904T02co?595T03cosNULL€T[WCMNULL7TffiC05778TOGCOG妮qrd7(4)用戶USER1授予用戶USER2M表Students插入和更新的權(quán)限,并且授予用戶USER2專播插入操作的權(quán)利.GRANTSELECTNSERTUPDATEONStudentsTOUSER2(傳播插入操作不會(huì))以USER的身...INSERTINTOStudentsVALUES'S06','陳慧',",,'女')UPDATEStudentsSETScredit=WHERESno='S06'(5)收回對(duì)用戶USER1寸表Courses查詢權(quán)限的授權(quán).REVOKESELECTONCoursesFROMUSER1以USER勺身...明明收回權(quán)限為什么還可以查詢(6)由上面(2)和(4)的授權(quán),再由用戶USER2寸用戶USER38予表Students插入和更新的權(quán)限,并且授予用戶USER3專播插入操作的權(quán)力.這時(shí)候,如果由USER別USER1K予表Students的插入和更新權(quán)限是否能得到成功如果能夠成功,那么如果有用戶USER獨(dú)消USER3的權(quán)限,對(duì)USER1會(huì)有什么影響如果再由DBA取消USER1的權(quán)限,對(duì)USER2t什么影響實(shí)驗(yàn)6、SQL的空值和空集處理實(shí)驗(yàn)?zāi)康氖煜ULL值在數(shù)據(jù)庫(kù)中的特殊含義,了解空值和空集對(duì)于數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢操作,特別是空值在條件表達(dá)式中與其他的算術(shù)運(yùn)算符或者邏輯運(yùn)算符的運(yùn)算中,空集作為嵌套查詢的子查詢的返回結(jié)果時(shí)候的特殊性,能夠熟練使用SQL語(yǔ)旬來(lái)進(jìn)行與空值,空集相關(guān)的操作.實(shí)驗(yàn)內(nèi)容通過(guò)實(shí)驗(yàn)驗(yàn)證在原理解析中分析過(guò)的SQLServe對(duì)NULL的處理,包括:在查詢的目標(biāo)表達(dá)式中包含空值的運(yùn)算.在查詢條件中空值與比擬運(yùn)算符的運(yùn)算結(jié)果.使用ISNULLSISNOTNUL床判斷元組該列是否為空值.對(duì)存在取空值的列按值進(jìn)行ORDERBYE序.使用保存字DISTINCT寸空值的處理,區(qū)分?jǐn)?shù)據(jù)庫(kù)的多中取值與現(xiàn)實(shí)中的多種取值的不同.使用GROUPBY寸存在取空值的屬性值進(jìn)行分組.結(jié)合分組考察空值對(duì)各個(gè)集合函數(shù)的影響,特別注意對(duì)COUNT*)和COUNT(列名)的不同影響.考察結(jié)果集是空集時(shí),各個(gè)集函數(shù)的處理情況.驗(yàn)證嵌套查詢中返回空集的情況下與各個(gè)謂詞的運(yùn)算結(jié)果.進(jìn)行與空值有關(guān)的等值連接運(yùn)算.實(shí)驗(yàn)步驟(1)查詢所有選課記錄的成績(jī)并將它換算為五分制(總分值為5分,合格為3分),注意,創(chuàng)立表時(shí)允許Score取NULL值.(2)通過(guò)查詢選修編號(hào)C07的課程的學(xué)生的人數(shù),其中成績(jī)合格的學(xué)生人數(shù),不合格的人數(shù),討論NULL值的特殊含義.(3)通過(guò)實(shí)驗(yàn)檢驗(yàn)在使用ORDERBYS行排序時(shí),取NULL的項(xiàng)是否出現(xiàn)在結(jié)果中如果有,在什么位置(4)在上面的查詢的過(guò)程中如果加上保存字DISTINC松有什么效果呢(5)通過(guò)實(shí)驗(yàn)說(shuō)明使用分組GROUPBY寸取值為NULL的項(xiàng)的處理.(6)結(jié)合分組,使用集合函數(shù)求每個(gè)同學(xué)的平均分、總的選課記錄、最高成績(jī)、最低成績(jī)和總成績(jī).(7)查詢成績(jī)小于0的選課記錄,統(tǒng)計(jì)總數(shù)、平均分、最大值和最小值.(8)采用嵌套查詢的方式,利用比擬運(yùn)算符和謂詞ALL的結(jié)合來(lái)查詢表Courses中最少的學(xué)分.假設(shè)數(shù)據(jù)庫(kù)中只有一個(gè)記錄的時(shí)候,使用前面的方法會(huì)得到什么結(jié)果,為什么(9)創(chuàng)立一個(gè)學(xué)生表S(No,Sno,Sname),教師表T(No,Tno,Tname)作為實(shí)驗(yàn)用的表.其中,No分別是這兩個(gè)表的主鍵,其他鍵允許為空.(10)向S插入元組(n1,S01,李迪)、(n2,S02,李嵐)、(n3,S05,NULL}(n4,S04,關(guān)紅);(11)向T插入元組(n1,T09,李迪)、(n2,T08,李蘭)、(n3,T01,NULL}(n4,T02,NULL方(12)對(duì)這兩個(gè)表作對(duì)姓名的等值連接運(yùn)算,找出既是老師又是學(xué)生的人員的學(xué)生編號(hào)和教師編號(hào).實(shí)驗(yàn)7、實(shí)體完整性試驗(yàn)?zāi)康膶W(xué)習(xí)實(shí)體完整性的建立,以及實(shí)踐違反實(shí)體完整性的結(jié)果.試驗(yàn)內(nèi)容(1)在數(shù)據(jù)庫(kù)University_Mis中建立表Stu_Union,進(jìn)行主鍵約束,在沒(méi)有違反實(shí)體完整性的前提下而入并更新一條記錄.(2)演示違反實(shí)體完整性的插入操作.(3)演示違反實(shí)體完整性的更新操作.(4)演示事務(wù)的處理,包括事務(wù)的建立、處理以及出錯(cuò)時(shí)的事務(wù)回滾.(5)通過(guò)建立University_Misarship表,插入數(shù)據(jù),演示當(dāng)與現(xiàn)有的數(shù)據(jù)環(huán)境不等時(shí),無(wú)法建立實(shí)體完整性以及參照完整性.實(shí)驗(yàn)步驟以系統(tǒng)治理員或sa用戶登錄進(jìn)入查詢分析器,在查詢分析器窗口中輸入如下命令,運(yùn)行并觀察和記錄結(jié)果.(1)在查詢分析器中輸入如下SQL語(yǔ)句:USEUniversity_MisCREATETABLEStu_Union(SnoCHAR(8)NOTNULLUNIQUE,SnameCHAR(8),SsexCHAR1),SageINT,SdeptCHAR(20),CONSTRAINTPK_Stu_UnionPRIMARYKEYSno));INSERTStu_UnionVALUES'S01','王兵','M',23,'CS);UPDATEStu_UnionSETSno=''WHERESdept='CS';UPDATEStu_UnionSETSno='S02'WHERESname='王兵’;SELECT*FROMStu_union;(2)在查詢分析器中輸入如下SQL語(yǔ)句:USEUniversity_MisINSERTStu_UnionVALUES('S02','黃山','M',23,'CS);消息2627,級(jí)別14,狀態(tài)1,第2行違反了PRIMARYKEY勺束'PK_Stu_Union'.不能在對(duì)象’‘中插入重復(fù)鍵.(3)在查詢分析器中輸入如下SQL語(yǔ)句:USEUniversity_MisUPDATEStu_UnionSETSno=NULLWHERESno='S02';不能將值NULL插入列'Sno',表";列不允許有Null值.UPDATE失敗.在查詢分析器中輸入如下SQL語(yǔ)句:USEUniversity_MisSETXACT_ABORTONBEGINTRANSACTIONT1INSERTINTOStu_unionVALUES('S09','李永','M',25,'EE);INSERTINTOStu_unionVALUES('S03','黃浩','F',25,'EE);INSERTINTOStu_unionVALUES('S05','黃浩','F',25,'EE);SELECT*FROMStu_union;COMMITTRANSACTIONT1在查詢分析器中輸入如下SQL語(yǔ)句:USEUniversity_MisSETXACT_ABORTONBEGINTRANSACTIONT2INSERTINTOStu_unionVALUES('S07','李寧','M',25,'EE);SELECT*FROMStu_union;INSERTINTOStu_unionVALUES('S09','李靖','F',22,'CS);COMMITTRANSACTIONT2消息2627,級(jí)別14,狀態(tài)1,第6行違反了PRIMARYKEY勺束'PK_Stu_Union'.不能在對(duì)象’‘中插入重復(fù)鍵.在查詢分析器中輸入如下SQL語(yǔ)句:USEUniversity_MisSELECT*FROMStu_union;在查詢分析器中輸入如下SQL語(yǔ)句:USEUniversity_MisCREATETABLEScholarship(M_IDVARCHAR10),Stu_idCHAR(8),R_MoneyINT)INSERTINTOScholarshipVALUES'M01','S07',5000)INSERTINTOScholarshipVALUES('M01','S08',8000)SELECT*FROMScholarship在查詢分析器中輸入如下SQL語(yǔ)句:USEUniversity_MisALTERTABLEScholarshipADDCONSTRAINTPK_ScholarshipPRIMARYKEY(M_ID)消息8111,級(jí)別16,狀態(tài)1,第2行無(wú)法在表,Scholarship'中可為Null的列上定義PRIMARYKEY勺束.消息1750,級(jí)別16,狀態(tài)0,第2行無(wú)法創(chuàng)立約束.請(qǐng)參閱前面的錯(cuò)誤消息.在查詢分析器中輸入如下SQL語(yǔ)句:USEUniversity_MisALTERTABLEScholarshipADDCONSTRAINTFK_ScholarshipFOREIGNKEY(Stu_id)REFERENCEStudents(Snc)消息1753,級(jí)別16,狀態(tài)0,第2行列,’的長(zhǎng)度或小數(shù)位數(shù)與外鍵,FK_Scholarship,中的引用列,,的長(zhǎng)度或小數(shù)位數(shù)不同.參與構(gòu)造外鍵關(guān)系的列必須定義為具有同一長(zhǎng)度和小數(shù)位數(shù).消息1750,級(jí)別16,狀態(tài)0,第2行無(wú)法創(chuàng)立約束.請(qǐng)參閱前面的錯(cuò)誤消息.實(shí)驗(yàn)8、參照完整性實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)建立外鍵,以及利用FOREIGNKEPREFERENCES句以及各種約束保證參照完整性.實(shí)驗(yàn)內(nèi)容(1)為演示參照完整性,建立表Course,令Cno為其主鍵,并在Stu_Union中插入數(shù)據(jù).為下面的實(shí)驗(yàn)步驟做預(yù)先準(zhǔn)備.(2)建立表SC令Sno和Cno分別為參照Stu_Union表以及Course表的外鍵,設(shè)定為級(jí)聯(lián)刪除,并令(Sno,Cno訥其主鍵.在不違反參照完整性的前提下,插入數(shù)據(jù).(3)演示違反參照完整性的插入數(shù)據(jù).(4)在Stu_Union中刪除數(shù)據(jù),演示級(jí)聯(lián)刪除.(5)在Course中刪除數(shù)據(jù),演示級(jí)聯(lián)刪除.(6)為了演示多重級(jí)聯(lián)刪除,建立Stu_Card表,令Stu_id為參數(shù)Stu_Union表的外鍵,令Card_id為其主鍵,并插入數(shù)據(jù).(7)為了演示多重級(jí)聯(lián)刪除,建立ICBC_Card表,令Stu_card_id為參數(shù)Stu_Union表的外鍵,令Card_id為其主鍵,并插入數(shù)據(jù).(8)通值刪除Students表中的一條記錄,演示三個(gè)表的多重級(jí)聯(lián)刪除.(9)演示事務(wù)中進(jìn)行多重級(jí)聯(lián)刪除失敗的處理.修改ICBC_Carcfe的外鍵屬性,使其變?yōu)镺ndeleteNoaction,演示事務(wù)中通過(guò)刪除Students表中的一條記錄,多重級(jí)聯(lián)刪除失敗,整個(gè)事務(wù)回滾到事務(wù)的初始狀態(tài).(10)演示互參考問(wèn)題及其解決方法.要建立教師授課和課程指定教師聽(tīng)課關(guān)系的兩張表,規(guī)定一個(gè)教師可以授多門(mén)課,但是每個(gè)課程只能指定一個(gè)教師去聽(tīng)課,所以要為兩張表建立相互之間的參照關(guān)系.實(shí)驗(yàn)步驟以系統(tǒng)治理員或sa賬號(hào)登錄查詢分析器,在查詢分析器窗體中輸入如下命令,運(yùn)行并觀察和記錄結(jié)果.(1)在查詢分析器中輸入如下SQL語(yǔ)句:USEUniversity_MisINSERTStu_UnionValues('S01','李用','0',24,'FF')SELECTFROMStu_Union;CREATETABLECourse(CnoCHAR(4)NOTNULLUNIQUE,CnameVARCHAR50)NOTNULL,CpointsINT,CONSTRAINTPKPRIMARYKEYCno));INSERTCourseVALUES('C01','ComputerNetworks',2);INSERTCourseVALUES('C02','ArtificialIntelligence',3);(2)在查詢分析器中輸入如下SQL語(yǔ)句:USEUniversity_MisCREATETableSqSnoCHAR8),Students]([Sno])ONDELETECASCADEDELETmROMStudentsWHERESno='S03';SELECT*FROMStu_card;SELECT*FROMICBC_Card(3)在查詢分析器中輸入如下SQL語(yǔ)句:ALTERTABLEICBC_CardDROPCONSTRAINTFK_ICBC_Card_Stu_idALTERTABLEICBC_CardADDCONSTRAINTFK_ICBC_Card_Stu_idFOREIGNKEY(Stu_card_id)REFERENCEStu_card(Card_id)ONDELETENOACTION在查詢分析器中輸入如下SQL語(yǔ)句:BeginTransactionDelDELETEFROMStu_CardWHERECard_id='05212222';SELECTFROMStu_card;SELECT*FROMICBC_card;CommitTransactionDel消息547,級(jí)別16,狀態(tài)0,第2行DELETE語(yǔ)句與REFERENCE勺束"FK_ICBC_Card_Stu_id中突.該沖突發(fā)生于數(shù)據(jù)庫(kù)"University_Mis",表"",column'Stu_card_id'.在查詢分析器中輸入如下SQL語(yǔ)句:USEUniversity_MisSELECT*FROMStu_card;SELECT*FROMICBC_carc;(4)在查詢分析器中輸入如下SQL語(yǔ)句:USEUniversity_MisCREATETABLEListen_course(TnoCHAR6),TnameVARCHAR20),CnoCHAR4)CONSTRAINTPK_listen_coursePRIMARYKEY(Tno)CONSTRAINTFK_listen_courseFOREIGNKEY(Cno)REFERENCESeach_course(Cno))CREATETABLETeach_course(CnoCHAR4),CnameVARCHAR30),TnoCHAR6)CONSTRAINTPK_Teach_coursePRIMARYKEY(Cno)CONSTRAINTFK_Teach_courseFOREIGNKEYTno)REFERENCESisten_course(Tno))消息1767,級(jí)別16,狀態(tài)0,第2行夕卜鍵'FK_listen_course'引用了無(wú)效的表‘Teach_course'消息1750,級(jí)別16,狀態(tài)0,第2行無(wú)法創(chuàng)立約束.請(qǐng)參閱前面的錯(cuò)誤消息.在查詢分析器中輸入如下SQL語(yǔ)句:USEUniversity_MisCREATETABLEListen_course(TnoCHAR6),TnameVARCHAR20),CnoCHAR4)CONSTRAINTPK_listen_CoursePRIMARYKEYTno))在查詢分析器中輸入如下SQL語(yǔ)句:USEUniversity_MisCREATETABLETeach_course(CnoCHAR(4),CnameVARCHAR30),TnoCHAR6)CONSTRAINTPK_teach_coursePRIMARYKEYCno)CONSTRAINTFK_teach_courseFOREIGNKEYTno)REFERENCESisten_course(Tno))ALTERTABLEListen_courseADDCONSTRAINTFK_listen_courseFOREIGNKEYCno)REFERENCESeach_course(Cno);實(shí)驗(yàn)9.用戶自定義完整性實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)用戶自定義約束,并實(shí)踐用戶自定義完整性,利用SQL查詢分析器用短語(yǔ)NOTNULLUNIQUECHECK證用戶定義完整性.實(shí)驗(yàn)內(nèi)容(建議將表改成Teachers相應(yīng)屬性以T開(kāi)始命名,如Tname建立Teacher表.建立表Teacher注意跟前面所建立的Teacher區(qū)分開(kāi)來(lái),(1)創(chuàng)立Worker,Teacher表,并自定義2個(gè)約束U1以及U2,其中U1規(guī)定WnameTname字段唯一,U2規(guī)定Wage,Tage(級(jí)別)字段的上限是28.(2)在Worker,Teache俵中插入一條合法記錄.(3)演示插入違反U2約束的例子,U2規(guī)定元組的WageTage屬性的值必須<二28.(4)去除U2約束.(5)重新插入(3)中想要插入的數(shù)據(jù),由于去除了U2約束,所以插入成功.(6)創(chuàng)立規(guī)那么Rule_sex規(guī)定插入或更新的值只能是M或F,并綁定到WorkerTeacher的WsexTsex字段.(7)演示違反規(guī)那么Rule_sex的插入操作.實(shí)驗(yàn)步驟以系統(tǒng)治理員或sa帳號(hào)登錄查詢分析器,在查詢分析器窗體下輸入如下命令,運(yùn)行并觀察結(jié)果.(1)在查詢分析器中輸入如下SQL語(yǔ)句:USEUniversity_MisCREATETABLETeacher(TnoCHAR(5),TnameCHAR(8)CONSTRAINTU1UNIQUE,TsexCHAR(1),TageINTCONSTRAINTU2CHECK(Tage<=28),TdeptCHAR(20),CONSTRAINTPK_TeacherPRIMARYKEY(Tno))⑵在查詢分析器中輸入如下SQL語(yǔ)句USEUniversity_MisINSERTINTOTeacher(Tno,Tname,Tsex,Tage,Tdept)VALUES『01;'李用:M;14,'后勤部)SELECT*FROMTeacher⑶在查詢分析器中輸入如下SQL語(yǔ)句USEUniversity_MisINSERTINTOTeacher(Tno,Tname,Tsex,Tage,Tdept)Values(T02;'王勇;M;38,'后勤部)SELECT*FROMTeacher⑷在查詢分析器中輸入如下SQL語(yǔ)句USEUniversity_MisALTERTABLEWorkerDROPU2(5)在查詢分析器中輸入如下SQL語(yǔ)句USEUniversity_MisINSERTINTOTeacher(Tno,Tname,Tsex,Tage,Tdept)VALUEST02:'王勇:Ml:38,'后勤部')SELECT*FROMTeacher(6)在查詢分析器輸入如下SQL語(yǔ)句USEUniversity_MisGoCREATERULERule_sexAS@ValueFNV)GoEXECSP_bindruleRule_se"eacher.[TseX]⑺在查詢分析器中輸入如下SQL語(yǔ)句USEUniversity_MisINSERTINTOTeacherVALUTS3,'黃號(hào)71:'25:'后勤部〕實(shí)驗(yàn)10、觸發(fā)器實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)實(shí)驗(yàn)使學(xué)生加深對(duì)數(shù)據(jù)完整性的理解,學(xué)會(huì)創(chuàng)立和使用觸發(fā)器.實(shí)驗(yàn)內(nèi)容(用實(shí)驗(yàn)9的Teacher表)(1)為T(mén)eacher表建立觸發(fā)器T1,當(dāng)插入或使更新表中的數(shù)據(jù)時(shí),保證所操作的紀(jì)錄的Tage值大于0.(2)為T(mén)eacher表建立觸發(fā)器T2,禁止刪除編號(hào)為00001的CEQ⑶Teacher表中的人員的編號(hào)是唯一且不可更變的,創(chuàng)立觸發(fā)器T3實(shí)現(xiàn)更新中編號(hào)的不可改變性.(4)演示違反T1觸發(fā)器的約束的插入操作.(5)演示違反T1觸發(fā)器的約束的更新操作.(6)演示違反T2觸發(fā)器的約束的插入操作.(7)演示違反T2觸發(fā)器的約束的更新操作.實(shí)驗(yàn)步驟(1)仍然使用自定義完整性實(shí)驗(yàn)中的Teacher表.為此表建立觸發(fā)器T1,當(dāng)插入或使更新表中的數(shù)據(jù)時(shí),保證所操作的紀(jì)錄的Tage值大于0.在查詢分析器中輸入如下SQL語(yǔ)句USEUniversity_MisGOCREATETRIGGERT1ONTeacherFORINSERT,UPDATEASIF(SELECTTageFROMINSERTED)<1BEGINPRINT職工年齡必須是大于0的整數(shù)!操作失??!'ROLLBACKTRANSACTIONEND(2)為T(mén)eacher表建立觸發(fā)器T2,禁止刪除編號(hào)為S01的CEO在查詢分析器中輸入如下SQL語(yǔ)句USEUniversity_MisGOCREATETRIGGERT2ONTeacherFORDELETEASIF(SELECTTnoFROMDELETBD)=BEGINPRINT此人是CEO!刪除操作失敗!’ROLLBACKTRANSACTIONEND⑶Teacher表中的人員的編號(hào)是唯一且不可更變的,創(chuàng)立觸發(fā)器T3實(shí)現(xiàn)更新中統(tǒng)號(hào)的不可改變性.在查詢分析器中輸入如下SQL語(yǔ)句USEUniversity_MisGOCREATETRIGGERT3ONTeacherFORUPDATEASIFUPDATE(Tno)BEGINPRINT職工編號(hào)不能修改!’ROLLBACKTRANSACTIONEND(4)在查詢分析器中輸入如下SQL語(yǔ)句USEUniversity_MisINSERTINTOTeacherVALUTS3:'李宏,F-10,開(kāi)發(fā)部')(5)在查詢分析器中輸入如下SQL語(yǔ)句USEUniversity_MisUPDATETeacherSETTage=-7WHERETn)O=(6)在查詢分析器中輸入如下SQL語(yǔ)句USEUniversity_MisDELETEFROMTeacherWHERETna(me='(7)在查詢分析器中輸入如下SQL語(yǔ)句USEUniversity_MisUPDATETeacherSETTriO?7'WHERETseX=特別要求與說(shuō)明1、每做一個(gè)實(shí)驗(yàn)都要寫(xiě)實(shí)驗(yàn)報(bào)告,報(bào)告格式見(jiàn)參考模板.2、以上10個(gè)實(shí)驗(yàn)中用粗體字書(shū)寫(xiě)的實(shí)驗(yàn)內(nèi)容要求同學(xué)必須完成,并將相應(yīng)命令和執(zhí)行結(jié)果窗口剪貼到實(shí)驗(yàn)報(bào)告中.3、本課程實(shí)驗(yàn)1至實(shí)驗(yàn)9的要求都是統(tǒng)一的,但每個(gè)同學(xué)在實(shí)驗(yàn)時(shí)必將其修改成針對(duì)自己的、具有個(gè)性化的特殊實(shí)驗(yàn)要求.修改的關(guān)鍵是在數(shù)據(jù)庫(kù)、根本表和屬性的命名中必須加上自己的姓名信息.操作方法如下:根本表命名與數(shù)據(jù)庫(kù)名類似,都是姓的全拼加上名的第一個(gè)字母和下劃線組成前綴,比方黃彳惠才姓名為Huangdecai那么前綴是huangdecai__,因此數(shù)據(jù)庫(kù)University_Mis和根本表Students分別命名為Huangdc_University_Mis和Huangdc_Students屬性名的前級(jí)以姓名的第一個(gè)字母和下劃線組成,比方,黃德才姓名為huangdecai,那么屬性的前綴是hdc_,根本表huangdc_Students中屬性名為Sname,Scredit,Sroomlft分另U命名為hdc_Sname,hdc_Scredit,hdc_Sroom4、要求把實(shí)驗(yàn)過(guò)程、SQL命令和執(zhí)行結(jié)果窗口復(fù)制到實(shí)驗(yàn)報(bào)告中,請(qǐng)入精品課程網(wǎng)站下載畢業(yè)設(shè)計(jì)報(bào)告模板.5、實(shí)驗(yàn)報(bào)告通過(guò)精品課程網(wǎng)站提交.--(1)查詢年級(jí)為2001的所有學(xué)生的名稱并按編號(hào)升序排列.selectsnamefromstudentswheregrade=2001orderbysid--(2)查詢學(xué)生的選課成績(jī)合格的課程成績(jī),并把成績(jī)換算為積點(diǎn)(60分對(duì)應(yīng)積點(diǎn)為1,每增加1分,積點(diǎn)增加).selectscore,(score-60)*+1fromchoiceswherescore>=60--(3)查詢課時(shí)是48或64的課程的名稱.selectcnamefromcourseswherehour=48orhour=64-(4)查詢所有課程名稱中含有data的課程編號(hào).selectcidfromcourseswherecnamelike'%data%'-(5)查詢所有選課記錄的課程號(hào)(不重復(fù)顯示).selectdistinctcidfromchoices-(6)統(tǒng)計(jì)所有教師的平均工資.selectavg(salary)from
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年護(hù)膚品成分分析行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025-2030年敏感肌友好卸妝潔面乳企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年即食紅豆薏米羹行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年呼吸窘迫監(jiān)測(cè)設(shè)備企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 建筑安全施工質(zhì)量監(jiān)控考核試卷
- 2025-2030年古堡幽靈之夜企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年新能源汽車(chē)充電站充電行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年墻板生產(chǎn)智能監(jiān)控系統(tǒng)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 彈簧在船舶螺旋槳?jiǎng)討B(tài)平衡中的應(yīng)用考核試卷
- 信托支持的衛(wèi)星遙感應(yīng)用產(chǎn)業(yè)考核試卷
- 樓梯 欄桿 欄板(一)22J403-1
- 勞動(dòng)法培訓(xùn)課件
- 多指畸形-課件
- 5G NSA站點(diǎn)開(kāi)通指導(dǎo)書(shū)(臨時(shí)IP開(kāi)站)
- 宗教與社會(huì)課件
- 3人-機(jī)-環(huán)-管理本質(zhì)安全化措施課件
- 生殖醫(yī)學(xué)中心建設(shè)驗(yàn)收標(biāo)準(zhǔn)分析-講座課件PPT
- 慶陽(yáng)煤炭資源開(kāi)發(fā)調(diào)研報(bào)告
- 橋博常見(jiàn)問(wèn)題
- 貴州省電梯日常維護(hù)保養(yǎng)合同范本
- 《我們的方言》-教案(共4頁(yè))
評(píng)論
0/150
提交評(píng)論