版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
實驗1、數(shù)據(jù)定義實驗目的熟悉SQL的數(shù)據(jù)定義語言,能夠熟練地使用SQL語句來創(chuàng)立和更改根本表,創(chuàng)立和取消索引.實驗內容用企業(yè)治理器創(chuàng)立數(shù)據(jù)庫University_Mis使用CREAT踣句創(chuàng)立根本表.更改根本表的定義:增加列,刪除列,修改列的數(shù)據(jù)類型.創(chuàng)立表的升、降序索引.刪除根本表的約束、根本表的索引或根本表.實驗步驟(1)用企業(yè)治理器創(chuàng)立數(shù)據(jù)庫University_Mis(2)在查詢分析器中用SQL語句創(chuàng)立關薪據(jù)庫根本表:學生表Students(Sno,Sname,Semail,Scredit,Sroom)教師表Teachers(Tno,Tname,Temail,Tsalary)課程表Courses(Cno,Cname,Ccredit);成績表Reports(Sno,Tno,Cno,Score);其中:Sno、Tno、Cno分別是表Students、表Teachers表Courses的主鍵,具有唯一性約束,Scredit具有約束“大于等于0";Reports中的Sno,Tno,CnoH外鍵,它們共同組成Reports的主鍵.(3)更改表Students:增加屬性Ssex簧型是CHAR長度為2),取消Scredit〞大于等于0〞約束.把表Courses中的屬性Cname的數(shù)據(jù)類型改成長度為30.(4)刪除表Students的一個屬性Sroom.(5)刪除表Reports.(6)為Courses表創(chuàng)立按Cno降序排列的索引.(7)為Students表創(chuàng)立按Sno升序排列的索引.(8)創(chuàng)立表Students的按Sname升序排列的唯一性索引.(9)刪除Students表Sno的升序索引.實驗2、SQL的數(shù)據(jù)查詢實驗目的熟悉SQL語句的數(shù)據(jù)查詢語言,能夠SQL語句對數(shù)據(jù)庫進行單表查詢、連接查詢、嵌套查詢、集合查詢和統(tǒng)計查詢.實驗內容實驗內容主要是對數(shù)據(jù)庫進行查詢操作,包括如下四類查詢方式:單表查詢查詢的目標表達式為所有列、指定的列或指定的列的運算三種不同.使用DISTINCT呆留字消除重復行.對查詢結果排序和分組.集合分組使用集函數(shù)進行各項統(tǒng)計.連接查詢笛卡兒連接和等值連接.自連接.外連接復合條件連接.多表連接.嵌套查詢通過實驗驗證對子查詢的兩個限制條件.體會相關子查詢和不相關子查詢的不同.考察四類謂詞的用法,包括:第一類,IN、NOTIN第二類,帶有比擬運算符的子查詢;第三類,SOMEANY或ALL謂詞的子查詢,查詢最大值和最小值;第四類,帶有EXISTS胃詞的子查詢,實現(xiàn)“所有〞等情況(如王宏的“所有〞課程,“所有〞女生選修的課程)集合運算使用保存字UNION進行集合或運算.采用邏輯運算符AND或OR來實現(xiàn)集合交和減運算.實驗步驟以University_Mis數(shù)據(jù)庫為例,該數(shù)據(jù)庫中有四張如實驗1,其中Score是每門課的測試成績,Scredit是學生所有測試合格課程所獲得的積分總數(shù),Ccredit每門課程的學分數(shù).在數(shù)據(jù)庫中,存在這樣的聯(lián)系:學生可以選擇課程,一個課程對應一個教師.在表Reports中保存學生的選課記錄和測試成績.請先輸入如下符合條件的元組后,再對數(shù)據(jù)庫進行有關的查詢操作:ISnain電王建平如伴共室偉河江
李黃根en23.1LH?ijiit.wdu.ch34.6FLJCrjut.tdu.en15.6U@zjut,eduun153IfUM曲洞Ejut4d'13.4ChfiTigjiijijt1Z.4圖、Students表nnn££號eb9-hHmt-m=3.1||T叁m411llsilsryTOI劃濤LTSijut.^4300T02吳碧燕W冊Riju七一2500703張瑩ZT@ijut.?3000TM條字費ZHYQ-an5500T05葉勝ItyeG53300T06桶蘭YLQzjiat.^35007UT程蛾媒ChengRSijutodacn500.圖、Teachers表Cftt1匚力麗色|Cct*sdit|?C01C++4C02UML3CC3JAVA3C04算法分析與設計2COS數(shù)據(jù)庫原理及其應用2C06懣據(jù)給構與算法分析2COT英語4柒圖、Courses表Sa4TncCfkOSiar41S01TOIcof-83SOITD3C0383雙TO]C01T5502T028259SD2T03S3<UULL>sozT04C04<SULL>302T05Ct)577S02ToeC0686SOSTOTcorSDS03TOZC呢3Bm84T6S04T05859QS04T06C0689SKro4CCi472S2SrosCCiE££26TD7COT55s爾TQ18151S52T05COE90SS2TOTCUT<NULL>圖、Reports表(1)查詢性別為“男〞的所有學生的名稱并按學號升序排列SELECTSnameFROMStudentsWHERESsex='男'ORDERBYSnoASC(2)查詢學生的選課成績合格的課程成績,并把成績換算為積分.積分的計算公式為:[1+(測試成績-60)*]*Ccredit.測試成績>=60否那么=0SELECTSno,Score,Credits,(1+(Score-60)**CreditsscoreFROMReports.CoursesWHEREScore>=60(3)查詢學分是3或4的課程的名稱.SELECTnameFROMCoursesWHERECredits=3ORCredits=4;(4)查詢所有課程名稱中含有“算法〞的課程編號.SELECTCnoFROMCoursesWHERECnameLIKE'%算法%';(5)查詢所有選課記錄的課程號(不重復顯示).SELECTCnoFROMReportsWHEREScore!=0GROUPBYCno(6)統(tǒng)計所有老師的平均工資.SELECTAVG(Tsalary)FROMTeachers(7)查詢所有教師的編號及選修其課程的學生的平均成績,按平均成績降序排列.SELECTTno,AVG(Score)FROMReportsGROUPBYTnoORDERBYAVG(Score)DESC(8)統(tǒng)計各個課程的選課人數(shù)和平均成績.SELECTCno,COUNT(Sno)number,AVG(Score)FROMReportsGROUPBYCno(9)查詢至少選修了三門課程的學生編號和姓名.SELECTSno,SnameFROMStudentsWhereSnoIN(SELECTSnoFROMReportsGROUPBYSnoHAVINGCOUNR*)>=3)查詢編號S26的學生所選的全部課程的課程名和成績.SELECTSno,Score,CnameFROMReports,CoursesWhereSnoLIKE'S26'AND=查詢所有選了“數(shù)據(jù)庫原理及其應用〞課程的學生編號和姓名.SELECTSnameFROMCourses,Students,ReportsWhereCnameLIKE'數(shù)據(jù)庫原理與其應用%'AND=AND=(12)求出選擇了同一個課程的學生對.SELECT,FROMReportsA,ReportsBWhere=AND!=ORDERBYCno求出至少被兩名學生選修的課程編號.查詢選修了編號S26的學生所選的某個課程的學生編號.查詢學生的根本信息及選修課程編號和成績.查詢學號S52的學生的姓名和選修的課程名稱及成績.查詢和學號S52的學生同性別的所有學生資料.查詢所有選課的學生的詳細信息.查詢沒有學生選的課程的編號和名稱.查詢選修了課程名為C++勺學生學號和姓名.找出選修課程UML或者課程C++勺學生學號和姓名.找出和課程UML或課程C++勺學分一樣課程名稱.查詢所有選修編號C01的課程的學生的姓名.查詢選修了所有課程的學生姓名.利用集合查詢方式,查詢選修課程C+域選擇課程JAVA的學生的編號、姓名和積分.實現(xiàn)集合交運算,查詢既選修課程C+儀選修課程JAVA的學生的編號、姓名和積分.實現(xiàn)集合減運算,查詢選修課程C++W沒有選修課程JAVA的學生的編號.實驗3、數(shù)據(jù)更新實驗目的熟悉數(shù)據(jù)庫的數(shù)據(jù)更新操作,能夠使用SQL語句對數(shù)據(jù)庫進行數(shù)據(jù)的插入、更新、刪除操作.實驗內容在本實驗中,主要內容是如何用SQL語句對數(shù)據(jù)進行更新.使用INSERTINTO1句插入數(shù)據(jù),包括插入一個元組或將子查詢的結果插入到數(shù)據(jù)庫中兩種方式.使用SELECTINTO旬,產(chǎn)生一個新表并插入數(shù)據(jù).使用UPDATE?旬可以修改指定表中滿足WHERE?何條件的元組,有三種修改的方式:修改某一個元組的值;修改多個元組的值;帶子查詢地修改語句.使用DELETE?旬刪除數(shù)據(jù):刪除某一個元組的值;刪除多個元組的值;帶子查詢地刪除語句.實驗步驟在數(shù)據(jù)庫University_Mis上按以下要求進行數(shù)據(jù)更新.(1)使用SQL語句向Students表中插入元組(Sno:S78;Sname李迪;;Scredit:0;Ssex男).(2)對每個課程,求學生的選課人數(shù)和學生的平均成績,并把結果存入數(shù)據(jù)庫.使用SELECTINTO口INSERTINTOW種方法實現(xiàn).(3)在Students表中使用SQL語句將姓名為李迪的學生的學號改為S7O(4)在Teachers表中使用SQL語句將所有教師的工資加500元.(5)將姓名為劉華的學生的課程〞數(shù)據(jù)庫原理及其應用〞的成績加上6分.(6)在Students表中使用SQL語句刪除姓名為李迪的學生信息.(7)刪除所有選修課程JAVA的選修課記錄.(8)對Courses表做刪去學分<=4的元組操作,討論該操作所受到的約束.實驗4、SQL的視圖實驗目的熟悉SQL支持的有關視圖的操作,能夠熟練使用SQL語句來創(chuàng)立需要的視圖,對視圖進行查詢和取消視圖.實驗內容(1)定義常見的視圖形式,包括:行列子集視圖WITHCHECKOPTION視圖基于多個基表的視圖基于視圖的視圖帶表達式的視圖分組視圖(2)通過實驗考察WITHCHECKOPTION一語句在視圖定義后產(chǎn)生的影響,包括對修改操作、刪除操作、插入操作的影響.(3)討論視圖的數(shù)據(jù)更新情況,對子行列視圖進行數(shù)據(jù)更新.(4)使用DROP?旬刪除一個視圖,由該視圖導出的其他視圖定義仍在數(shù)據(jù)字典中,但已不能使用,必須顯式刪除.同樣的原因,刪除基表時,由該基表導出的所有視圖定義都必須顯式刪除.4.3實驗步驟創(chuàng)立一個行列子集視圖CS_View,給出選課成績合格的學生的編號、教師編號、所選課程號和該課程成績.創(chuàng)立基于多個根本表的視圖SCT_View,這個視圖由學生姓名和他所選修的課程名及講授該課程的教師姓名而成.創(chuàng)立帶表達式的視圖EXP_View,由學生姓名及所選課程名和所有課程成績都比原來多5分這幾個屬性組成.創(chuàng)立分組視圖Group_View,將學生的學號及他的平均成績定義為一個視圖.創(chuàng)立一個基于視圖的視圖,基于(1)中建立的視圖,定義一個包括學生編號、學生所選課程數(shù)目和平均成績的視圖VV_View.查詢所有選修課程〞數(shù)據(jù)庫原理及其應用〞的學生姓名.⑺插入元組(S52,T02,C02,59到視圖CS_View中.假設是在視圖的定義中存在WITHCHECKOPTION旬對插入操作由什么影響.將視圖CS_View(包括定義WITHCHECKOPTIQN中,所有課程編號為C01的課程的成績都減去5分.這個操作數(shù)據(jù)庫是否會正確執(zhí)行,為什么如果加上5分(原來95分以上的不變)呢在視圖CS_View(包括定義WITHCHECKOPTION刪除編號S03學生的記錄,會產(chǎn)展什么結果取消視圖SCT_View和視圖CS_View實驗5、數(shù)據(jù)限制實驗目的熟悉SQL的數(shù)據(jù)限制功能,能夠使用SQL語句來向用戶授予和收回權限.實驗內容(1)使用GRANTS旬來對用戶授權,對單個用戶或多個用戶授權,或使用保存字PUBLIC對所有用戶授權.對不同的操作對象包括數(shù)據(jù)庫、視圖、根本表等進行不同權限的授權.(2)使用WITHGRANTOPTION句授予用戶傳播該權限的權利.(3)當在授權時發(fā)生循環(huán)授權,考察DBS能否發(fā)現(xiàn)這個錯誤.如果不能,結合取消權限操作,查看DBS對循環(huán)授權的限制.(4)使用REVOK&句收回授權,取消授權的級聯(lián)反響.實驗步驟用企業(yè)治理器在數(shù)據(jù)庫University_Mis中建立三個用戶USER1USER2和USER3他們在數(shù)據(jù)庫中的角色是PUBLIC請按以下要求,分別以治理員身份或這三個用戶的身份登陸到數(shù)據(jù)庫中,進行操作,并記錄操作結果.配置治理器一一效勞一一第一個重新啟動(1)授予所有用戶對表Courses的查詢權限.這是以windows登錄SQL:GRANTSELECTONCoursesTOPUBLIC以USER1的身份登陸查詢分析器,用SQL語言查詢Courses和Students表,查詢結果如何SELECT*FROMCourses查詢Courses正常,查詢表Stuents出錯,由于為將表Students的查詢權限授予用戶USER1.(2)授予用戶USER1寸表Students插入和更新的權限,但不授予刪除權限,并且授予用戶USER1專播這兩個權限的權利.GRANTSELECTI,NSERT,UPDATEONStudentsTOUSER1WITHGRANTOPTION琳不授予用戶USER1SELECT權限登錄時將無法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二]結果,j消息TnoChoScore1L—■■■■一cai902TQ3cosS33TOIC01904T02co?595T03cosNULL€T[WCMNULL7TffiC05778TOGCOG妮qrd7(4)用戶USER1授予用戶USER2M表Students插入和更新的權限,并且授予用戶USER2專播插入操作的權利.GRANTSELECTNSERTUPDATEONStudentsTOUSER2(傳播插入操作不會)以USER的身...INSERTINTOStudentsVALUES'S06','陳慧',",,'女')UPDATEStudentsSETScredit=WHERESno='S06'(5)收回對用戶USER1寸表Courses查詢權限的授權.REVOKESELECTONCoursesFROMUSER1以USER勺身...明明收回權限為什么還可以查詢(6)由上面(2)和(4)的授權,再由用戶USER2寸用戶USER38予表Students插入和更新的權限,并且授予用戶USER3專播插入操作的權力.這時候,如果由USER別USER1K予表Students的插入和更新權限是否能得到成功如果能夠成功,那么如果有用戶USER獨消USER3的權限,對USER1會有什么影響如果再由DBA取消USER1的權限,對USER2t什么影響實驗6、SQL的空值和空集處理實驗目的熟悉NULL值在數(shù)據(jù)庫中的特殊含義,了解空值和空集對于數(shù)據(jù)庫的數(shù)據(jù)查詢操作,特別是空值在條件表達式中與其他的算術運算符或者邏輯運算符的運算中,空集作為嵌套查詢的子查詢的返回結果時候的特殊性,能夠熟練使用SQL語旬來進行與空值,空集相關的操作.實驗內容通過實驗驗證在原理解析中分析過的SQLServe對NULL的處理,包括:在查詢的目標表達式中包含空值的運算.在查詢條件中空值與比擬運算符的運算結果.使用ISNULLSISNOTNUL床判斷元組該列是否為空值.對存在取空值的列按值進行ORDERBYE序.使用保存字DISTINCT寸空值的處理,區(qū)分數(shù)據(jù)庫的多中取值與現(xiàn)實中的多種取值的不同.使用GROUPBY寸存在取空值的屬性值進行分組.結合分組考察空值對各個集合函數(shù)的影響,特別注意對COUNT*)和COUNT(列名)的不同影響.考察結果集是空集時,各個集函數(shù)的處理情況.驗證嵌套查詢中返回空集的情況下與各個謂詞的運算結果.進行與空值有關的等值連接運算.實驗步驟(1)查詢所有選課記錄的成績并將它換算為五分制(總分值為5分,合格為3分),注意,創(chuàng)立表時允許Score取NULL值.(2)通過查詢選修編號C07的課程的學生的人數(shù),其中成績合格的學生人數(shù),不合格的人數(shù),討論NULL值的特殊含義.(3)通過實驗檢驗在使用ORDERBYS行排序時,取NULL的項是否出現(xiàn)在結果中如果有,在什么位置(4)在上面的查詢的過程中如果加上保存字DISTINC松有什么效果呢(5)通過實驗說明使用分組GROUPBY寸取值為NULL的項的處理.(6)結合分組,使用集合函數(shù)求每個同學的平均分、總的選課記錄、最高成績、最低成績和總成績.(7)查詢成績小于0的選課記錄,統(tǒng)計總數(shù)、平均分、最大值和最小值.(8)采用嵌套查詢的方式,利用比擬運算符和謂詞ALL的結合來查詢表Courses中最少的學分.假設數(shù)據(jù)庫中只有一個記錄的時候,使用前面的方法會得到什么結果,為什么(9)創(chuàng)立一個學生表S(No,Sno,Sname),教師表T(No,Tno,Tname)作為實驗用的表.其中,No分別是這兩個表的主鍵,其他鍵允許為空.(10)向S插入元組(n1,S01,李迪)、(n2,S02,李嵐)、(n3,S05,NULL}(n4,S04,關紅);(11)向T插入元組(n1,T09,李迪)、(n2,T08,李蘭)、(n3,T01,NULL}(n4,T02,NULL方(12)對這兩個表作對姓名的等值連接運算,找出既是老師又是學生的人員的學生編號和教師編號.實驗7、實體完整性試驗目的學習實體完整性的建立,以及實踐違反實體完整性的結果.試驗內容(1)在數(shù)據(jù)庫University_Mis中建立表Stu_Union,進行主鍵約束,在沒有違反實體完整性的前提下而入并更新一條記錄.(2)演示違反實體完整性的插入操作.(3)演示違反實體完整性的更新操作.(4)演示事務的處理,包括事務的建立、處理以及出錯時的事務回滾.(5)通過建立University_Misarship表,插入數(shù)據(jù),演示當與現(xiàn)有的數(shù)據(jù)環(huán)境不等時,無法建立實體完整性以及參照完整性.實驗步驟以系統(tǒng)治理員或sa用戶登錄進入查詢分析器,在查詢分析器窗口中輸入如下命令,運行并觀察和記錄結果.(1)在查詢分析器中輸入如下SQL語句: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語句:USEUniversity_MisINSERTStu_UnionVALUES('S02','黃山','M',23,'CS);消息2627,級別14,狀態(tài)1,第2行違反了PRIMARYKEY勺束'PK_Stu_Union'.不能在對象’‘中插入重復鍵.(3)在查詢分析器中輸入如下SQL語句:USEUniversity_MisUPDATEStu_UnionSETSno=NULLWHERESno='S02';不能將值NULL插入列'Sno',表";列不允許有Null值.UPDATE失敗.在查詢分析器中輸入如下SQL語句: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語句:USEUniversity_MisSETXACT_ABORTONBEGINTRANSACTIONT2INSERTINTOStu_unionVALUES('S07','李寧','M',25,'EE);SELECT*FROMStu_union;INSERTINTOStu_unionVALUES('S09','李靖','F',22,'CS);COMMITTRANSACTIONT2消息2627,級別14,狀態(tài)1,第6行違反了PRIMARYKEY勺束'PK_Stu_Union'.不能在對象’‘中插入重復鍵.在查詢分析器中輸入如下SQL語句:USEUniversity_MisSELECT*FROMStu_union;在查詢分析器中輸入如下SQL語句:USEUniversity_MisCREATETABLEScholarship(M_IDVARCHAR10),Stu_idCHAR(8),R_MoneyINT)INSERTINTOScholarshipVALUES'M01','S07',5000)INSERTINTOScholarshipVALUES('M01','S08',8000)SELECT*FROMScholarship在查詢分析器中輸入如下SQL語句:USEUniversity_MisALTERTABLEScholarshipADDCONSTRAINTPK_ScholarshipPRIMARYKEY(M_ID)消息8111,級別16,狀態(tài)1,第2行無法在表,Scholarship'中可為Null的列上定義PRIMARYKEY勺束.消息1750,級別16,狀態(tài)0,第2行無法創(chuàng)立約束.請參閱前面的錯誤消息.在查詢分析器中輸入如下SQL語句:USEUniversity_MisALTERTABLEScholarshipADDCONSTRAINTFK_ScholarshipFOREIGNKEY(Stu_id)REFERENCEStudents(Snc)消息1753,級別16,狀態(tài)0,第2行列,’的長度或小數(shù)位數(shù)與外鍵,FK_Scholarship,中的引用列,,的長度或小數(shù)位數(shù)不同.參與構造外鍵關系的列必須定義為具有同一長度和小數(shù)位數(shù).消息1750,級別16,狀態(tài)0,第2行無法創(chuàng)立約束.請參閱前面的錯誤消息.實驗8、參照完整性實驗目的學習建立外鍵,以及利用FOREIGNKEPREFERENCES句以及各種約束保證參照完整性.實驗內容(1)為演示參照完整性,建立表Course,令Cno為其主鍵,并在Stu_Union中插入數(shù)據(jù).為下面的實驗步驟做預先準備.(2)建立表SC令Sno和Cno分別為參照Stu_Union表以及Course表的外鍵,設定為級聯(lián)刪除,并令(Sno,Cno訥其主鍵.在不違反參照完整性的前提下,插入數(shù)據(jù).(3)演示違反參照完整性的插入數(shù)據(jù).(4)在Stu_Union中刪除數(shù)據(jù),演示級聯(lián)刪除.(5)在Course中刪除數(shù)據(jù),演示級聯(lián)刪除.(6)為了演示多重級聯(lián)刪除,建立Stu_Card表,令Stu_id為參數(shù)Stu_Union表的外鍵,令Card_id為其主鍵,并插入數(shù)據(jù).(7)為了演示多重級聯(lián)刪除,建立ICBC_Card表,令Stu_card_id為參數(shù)Stu_Union表的外鍵,令Card_id為其主鍵,并插入數(shù)據(jù).(8)通值刪除Students表中的一條記錄,演示三個表的多重級聯(lián)刪除.(9)演示事務中進行多重級聯(lián)刪除失敗的處理.修改ICBC_Carcfe的外鍵屬性,使其變?yōu)镺ndeleteNoaction,演示事務中通過刪除Students表中的一條記錄,多重級聯(lián)刪除失敗,整個事務回滾到事務的初始狀態(tài).(10)演示互參考問題及其解決方法.要建立教師授課和課程指定教師聽課關系的兩張表,規(guī)定一個教師可以授多門課,但是每個課程只能指定一個教師去聽課,所以要為兩張表建立相互之間的參照關系.實驗步驟以系統(tǒng)治理員或sa賬號登錄查詢分析器,在查詢分析器窗體中輸入如下命令,運行并觀察和記錄結果.(1)在查詢分析器中輸入如下SQL語句: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語句:USEUniversity_MisCREATETableSqSnoCHAR8),Students]([Sno])ONDELETECASCADEDELETmROMStudentsWHERESno='S03';SELECT*FROMStu_card;SELECT*FROMICBC_Card(3)在查詢分析器中輸入如下SQL語句:ALTERTABLEICBC_CardDROPCONSTRAINTFK_ICBC_Card_Stu_idALTERTABLEICBC_CardADDCONSTRAINTFK_ICBC_Card_Stu_idFOREIGNKEY(Stu_card_id)REFERENCEStu_card(Card_id)ONDELETENOACTION在查詢分析器中輸入如下SQL語句:BeginTransactionDelDELETEFROMStu_CardWHERECard_id='05212222';SELECTFROMStu_card;SELECT*FROMICBC_card;CommitTransactionDel消息547,級別16,狀態(tài)0,第2行DELETE語句與REFERENCE勺束"FK_ICBC_Card_Stu_id中突.該沖突發(fā)生于數(shù)據(jù)庫"University_Mis",表"",column'Stu_card_id'.在查詢分析器中輸入如下SQL語句:USEUniversity_MisSELECT*FROMStu_card;SELECT*FROMICBC_carc;(4)在查詢分析器中輸入如下SQL語句: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,級別16,狀態(tài)0,第2行夕卜鍵'FK_listen_course'引用了無效的表‘Teach_course'消息1750,級別16,狀態(tài)0,第2行無法創(chuàng)立約束.請參閱前面的錯誤消息.在查詢分析器中輸入如下SQL語句:USEUniversity_MisCREATETABLEListen_course(TnoCHAR6),TnameVARCHAR20),CnoCHAR4)CONSTRAINTPK_listen_CoursePRIMARYKEYTno))在查詢分析器中輸入如下SQL語句:USEUniversity_MisCREATETABLETeach_course(CnoCHAR(4),CnameVARCHAR30),TnoCHAR6)CONSTRAINTPK_teach_coursePRIMARYKEYCno)CONSTRAINTFK_teach_courseFOREIGNKEYTno)REFERENCESisten_course(Tno))ALTERTABLEListen_courseADDCONSTRAINTFK_listen_courseFOREIGNKEYCno)REFERENCESeach_course(Cno);實驗9.用戶自定義完整性實驗目的學習用戶自定義約束,并實踐用戶自定義完整性,利用SQL查詢分析器用短語NOTNULLUNIQUECHECK證用戶定義完整性.實驗內容(建議將表改成Teachers相應屬性以T開始命名,如Tname建立Teacher表.建立表Teacher注意跟前面所建立的Teacher區(qū)分開來,(1)創(chuàng)立Worker,Teacher表,并自定義2個約束U1以及U2,其中U1規(guī)定WnameTname字段唯一,U2規(guī)定Wage,Tage(級別)字段的上限是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的插入操作.實驗步驟以系統(tǒng)治理員或sa帳號登錄查詢分析器,在查詢分析器窗體下輸入如下命令,運行并觀察結果.(1)在查詢分析器中輸入如下SQL語句:USEUniversity_MisCREATETABLETeacher(TnoCHAR(5),TnameCHAR(8)CONSTRAINTU1UNIQUE,TsexCHAR(1),TageINTCONSTRAINTU2CHECK(Tage<=28),TdeptCHAR(20),CONSTRAINTPK_TeacherPRIMARYKEY(Tno))⑵在查詢分析器中輸入如下SQL語句USEUniversity_MisINSERTINTOTeacher(Tno,Tname,Tsex,Tage,Tdept)VALUES『01;'李用:M;14,'后勤部)SELECT*FROMTeacher⑶在查詢分析器中輸入如下SQL語句USEUniversity_MisINSERTINTOTeacher(Tno,Tname,Tsex,Tage,Tdept)Values(T02;'王勇;M;38,'后勤部)SELECT*FROMTeacher⑷在查詢分析器中輸入如下SQL語句USEUniversity_MisALTERTABLEWorkerDROPU2(5)在查詢分析器中輸入如下SQL語句USEUniversity_MisINSERTINTOTeacher(Tno,Tname,Tsex,Tage,Tdept)VALUEST02:'王勇:Ml:38,'后勤部')SELECT*FROMTeacher(6)在查詢分析器輸入如下SQL語句USEUniversity_MisGoCREATERULERule_sexAS@ValueFNV)GoEXECSP_bindruleRule_se"eacher.[TseX]⑺在查詢分析器中輸入如下SQL語句USEUniversity_MisINSERTINTOTeacherVALUTS3,'黃號71:'25:'后勤部〕實驗10、觸發(fā)器實驗目的通過實驗使學生加深對數(shù)據(jù)完整性的理解,學會創(chuàng)立和使用觸發(fā)器.實驗內容(用實驗9的Teacher表)(1)為Teacher表建立觸發(fā)器T1,當插入或使更新表中的數(shù)據(jù)時,保證所操作的紀錄的Tage值大于0.(2)為Teacher表建立觸發(fā)器T2,禁止刪除編號為00001的CEQ⑶Teacher表中的人員的編號是唯一且不可更變的,創(chuàng)立觸發(fā)器T3實現(xiàn)更新中編號的不可改變性.(4)演示違反T1觸發(fā)器的約束的插入操作.(5)演示違反T1觸發(fā)器的約束的更新操作.(6)演示違反T2觸發(fā)器的約束的插入操作.(7)演示違反T2觸發(fā)器的約束的更新操作.實驗步驟(1)仍然使用自定義完整性實驗中的Teacher表.為此表建立觸發(fā)器T1,當插入或使更新表中的數(shù)據(jù)時,保證所操作的紀錄的Tage值大于0.在查詢分析器中輸入如下SQL語句USEUniversity_MisGOCREATETRIGGERT1ONTeacherFORINSERT,UPDATEASIF(SELECTTageFROMINSERTED)<1BEGINPRINT職工年齡必須是大于0的整數(shù)!操作失??!'ROLLBACKTRANSACTIONEND(2)為Teacher表建立觸發(fā)器T2,禁止刪除編號為S01的CEO在查詢分析器中輸入如下SQL語句USEUniversity_MisGOCREATETRIGGERT2ONTeacherFORDELETEASIF(SELECTTnoFROMDELETBD)=BEGINPRINT此人是CEO!刪除操作失?。 疪OLLBACKTRANSACTIONEND⑶Teacher表中的人員的編號是唯一且不可更變的,創(chuàng)立觸發(fā)器T3實現(xiàn)更新中統(tǒng)號的不可改變性.在查詢分析器中輸入如下SQL語句USEUniversity_MisGOCREATETRIGGERT3ONTeacherFORUPDATEASIFUPDATE(Tno)BEGINPRINT職工編號不能修改!’ROLLBACKTRANSACTIONEND(4)在查詢分析器中輸入如下SQL語句USEUniversity_MisINSERTINTOTeacherVALUTS3:'李宏,F-10,開發(fā)部')(5)在查詢分析器中輸入如下SQL語句USEUniversity_MisUPDATETeacherSETTage=-7WHERETn)O=(6)在查詢分析器中輸入如下SQL語句USEUniversity_MisDELETEFROMTeacherWHERETna(me='(7)在查詢分析器中輸入如下SQL語句USEUniversity_MisUPDATETeacherSETTriO?7'WHERETseX=特別要求與說明1、每做一個實驗都要寫實驗報告,報告格式見參考模板.2、以上10個實驗中用粗體字書寫的實驗內容要求同學必須完成,并將相應命令和執(zhí)行結果窗口剪貼到實驗報告中.3、本課程實驗1至實驗9的要求都是統(tǒng)一的,但每個同學在實驗時必將其修改成針對自己的、具有個性化的特殊實驗要求.修改的關鍵是在數(shù)據(jù)庫、根本表和屬性的命名中必須加上自己的姓名信息.操作方法如下:根本表命名與數(shù)據(jù)庫名類似,都是姓的全拼加上名的第一個字母和下劃線組成前綴,比方黃彳惠才姓名為Huangdecai那么前綴是huangdecai__,因此數(shù)據(jù)庫University_Mis和根本表Students分別命名為Huangdc_University_Mis和Huangdc_Students屬性名的前級以姓名的第一個字母和下劃線組成,比方,黃德才姓名為huangdecai,那么屬性的前綴是hdc_,根本表huangdc_Students中屬性名為Sname,Scredit,Sroomlft分另U命名為hdc_Sname,hdc_Scredit,hdc_Sroom4、要求把實驗過程、SQL命令和執(zhí)行結果窗口復制到實驗報告中,請入精品課程網(wǎng)站下載畢業(yè)設計報告模板.5、實驗報告通過精品課程網(wǎng)站提交.--(1)查詢年級為2001的所有學生的名稱并按編號升序排列.selectsnamefromstudentswheregrade=2001orderbysid--(2)查詢學生的選課成績合格的課程成績,并把成績換算為積點(60分對應積點為1,每增加1分,積點增加).selectscore,(score-60)*+1fromchoiceswherescore>=60--(3)查詢課時是48或64的課程的名稱.selectcnamefromcourseswherehour=48orhour=64-(4)查詢所有課程名稱中含有data的課程編號.selectcidfromcourseswherecnamelike'%data%'-(5)查詢所有選課記錄的課程號(不重復顯示).selectdistinctcidfromchoices-(6)統(tǒng)計所有教師的平均工資.selectavg(salary)from
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度個人經(jīng)營性小額貸款合同細則4篇
- 二零二五年度出租車公司車輛技術改造合同3篇
- 2025年度個人旅游攝影傭金協(xié)議書3篇
- 2025年度模特經(jīng)紀公司模特推廣服務合同4篇
- 二零二五年度廚具品牌授權使用合同3篇
- 美容院員工試用期管理規(guī)定合同2025版4篇
- 二零二五模具加工行業(yè)臨時用工合同范本3篇
- 2025年度水庫防洪能力提升與壩體安全加固協(xié)議4篇
- 2025年度水電工程安全監(jiān)督與管理承包協(xié)議3篇
- 2025年度出租文化場所并協(xié)助注冊文化活動公司合同范本4篇
- 2024-2030年中國招標代理行業(yè)深度分析及發(fā)展前景與發(fā)展戰(zhàn)略研究報告
- 醫(yī)師定期考核 (公共衛(wèi)生)試題庫500題(含答案)
- 基因突變和基因重組(第1課時)高一下學期生物人教版(2019)必修2
- 內科學(醫(yī)學高級):風濕性疾病試題及答案(強化練習)
- 音樂劇好看智慧樹知到期末考試答案2024年
- 辦公設備(電腦、一體機、投影機等)采購 投標方案(技術方案)
- 案卷評查培訓課件模板
- 2024年江蘇省樣卷五年級數(shù)學上冊期末試卷及答案
- 人教版初中英語七八九全部單詞(打印版)
- 波浪理論要點圖解完美版
- 金融交易數(shù)據(jù)分析與風險評估項目環(huán)境敏感性分析
評論
0/150
提交評論