資源描述:
《攀枝花學院數(shù)據庫完整性約束數(shù)據庫實驗2》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、攀枝花學院PanzhihuaUniversity實驗報告冊實驗二數(shù)據庫完整性約束實驗2013~2014學年度第2學期課程名稱數(shù)據庫原理與應用授課教師劉繼光教師職務副教授學生姓名學號教學單位數(shù)學與計算機學院課題(項目)名稱:數(shù)據庫完整性約束實驗計劃學時:實驗類型:1.演示性□2.驗證性□3.綜合性□4.設計性□5.其它□授課日期:年月日第周星期第節(jié)實驗二實驗名稱:數(shù)據庫完整性約束實驗實驗學時:2實驗目的:數(shù)據庫完整性是保證數(shù)據庫中數(shù)據正確性的重要手段,通過實驗,使學生加深對數(shù)據庫完整性的基本概念的
2、理解與掌握,并能夠熟練創(chuàng)建、修改、刪除各類完整性約束,從而達到靈活應用的目的。?實體完整性約束驗證;?引用完整性驗證;?唯一約束;?非空約束;?缺省值;?檢查約束;實驗內容及要求:一、數(shù)據庫完整性約束試驗。試驗所使用的數(shù)據庫表結構如下:Student(學生記錄表)SNO(學號)CHAR(10)PRIMARYKEYSNAME(姓名)VARCHAR(16)SEX(性別)VARCHAR(2)DEPT(專業(yè)號)VARCHAR()AGE(年齡)SMALLINTCourse(課程表)CNO(課程號)CHAR
3、(4)PRIMARYKEYCNAME(課程名)VARCHAR(32)SCORE(學分)SMALLINTSC(學生選課成績表)SNO(學號)CHAR(7)PRIMARYKEYCNO(課程號)CHAR(4)PRIMARYKEYGRADE(成績)INT使用查詢分析器,建立數(shù)據庫SC,數(shù)據庫參數(shù)默認。建立Student、Course、SC數(shù)據庫表,并完成下面題目:1、“課程名”屬性必須取唯一值。2、“課程名”也不能取空值。3、“學分”屬性只能取值{1,2,3,4},如果沒有輸入學分信息,學分的缺省值為3
4、。4、“學號”的前兩位為“20”,第三位與第四位為數(shù)字。5、“GRADE”大于等于0并且小于等于100。6、SC中,SNO、CNO為外鍵,請建立外鍵約束。createtablestudent(snochar(10)primarykey,snamevarchar(16),sexvarchar(2),deptvarchar(20),agesmallint)createtablecourse(cnochar(4)primarykey,cnamevarchar(32)notnull,scoresmall
5、intnotnull)createtablesc(snochar(10)primarykey,cnochar(4),gradeintcheck(grade>=0andgrade<=100),)1、“課程名”屬性必須取唯一值。法一altertablecourseaddunique(cname)或者altertablecourseaddconstraintununique(cname)2、“課程名”也不能取空值。altertablecoursealtercolumncnamevarchar(32)n
6、otnull3、“學分”屬性只能取值{1,2,3,4},如果沒有輸入學分信息,學分的缺省值為3。法一altertablecourseaddconstraintrecheck(scorein(1,2,3,4))altertablecourseadddefault3forscore法二droptablecoursecreatetablecourse(cnochar(4)primarykey,cnamevarchar(32)notnull,scoresmallintnotnulldefault3che
7、ck(scorein(1,2,3,4)))法三droptablecoursecreatetablecourse(cnochar(4)primarykey,cnamevarchar(32)notnull,scoresmallintcheck(score>=1andscore<=4)default3)4、“學號”的前兩位為“20”,第三位與第四位為數(shù)字。法一altertablestudentaddconstraintchk_snocheck(snolike'20[1-9][1-9]%')法二alte
8、rtableStudentaddconstraintxxxcheck((left(SNO,2)='20'))或者createtablestudent(SNOCHAR(10)PRIMARYKEYcheck(left(sno,8)='20073210'),SNAMEVARCHAR(16)notnull,SEXVARCHAR(2)notnull,DEPTVARCHAR(16)notnull,AGESMALLINTnotnull)5、“GRADE”大于等于0并且小于等于100。法一altertables