資源描述:
《數(shù)據(jù)庫原理數(shù)據(jù)完整性控制.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、課程名稱數(shù)據(jù)庫原理實驗成績實驗名稱數(shù)據(jù)完整性控制學號B12053114姓名晁美霞班級B120531日期2013/5/2實驗?zāi)康模?.掌握使用T-SQL對數(shù)據(jù)進行完整性控制;2.掌握觸發(fā)器的用法;實驗平臺:利用SQLServer2005及其交互查詢工具來實現(xiàn)操作;實驗內(nèi)容與步驟:一、數(shù)據(jù)完整性控制(1)定義表Student1,并將其中的SNO屬性定義為主碼;屬性Ssex的值只能取男或女;CREATETABLEStudent1(SNOINTPRIMARYKEYNOTNULL,SNAMECHAR(8),SEXCHAR(2)CHE
2、CK(SEXIN('男','女')),AGEINT,DEPTNOINT,)(2)定義表Course1,并將其中的CNO屬性定義為主碼;CREATETABLECourse1(CNOINTPRIMARYKEYNOTNULL,CNAMECHAR(20),TNOINT,CREDITINT,)(3)定義表SC1,將其中的屬性SNO+CNO定義為主碼;GRADE屬性設(shè)置不能取空值;CREATETABLESC1(SNOINTNOTNULL,CNOINTNOTNULL,GRADEINTNOTNULL,PRIMARYKEY(SNO,CNO)
3、)(4)定義表SC1中的外碼;ALTERTABLESC1ADDFOREIGNKEY(SNO)REFERENCESStudent1(SNO)ALTERTABLESC1ADDFOREIGNKEY(CNO)REFERENCESCourse1(CNO)(5)建立系部信息表,要求系部表名稱DNMAE取值唯一;CREATETABLEDept1(DEPTNOINTPRIMARYKEYNOTNULL,DNAMECHAR(20)UNIQUE)(6)用CONSTRAINT對完整性約束條件命名,定義表Student1,要求學號在90000~99
4、999之間,姓名不能取空值,年齡小于30,性別只能是男或女;CREATETABLEStudent1(SNOINTPRIMARYKEYCONSTRAINTC1CHECK(SNOBETWEEN90000AND99999),SNAMECHAR(8)CONSTRAINTC2NOTNULL,SEXCHAR(2)CONSTRAINTC3CHECK(SEXIN('男','女')),AGEINTCONSTRAINTC4CHECK(AGE<30),DEPTNOINT,)(7)修改表Student1的完整性限制,刪除對性別所做的限制,并將年齡
5、限制由小于30該為小于40;ALTERTABLEStudent1DROPCONSTRAINTC3ALTERTABLEStudent1DROPCONSTRAINTC4ALTERTABLEStudent1ADDCONSTRAINTC4CHECK(AGE<40)二、觸發(fā)器的使用創(chuàng)建一個觸發(fā)器,在修改SC表的成績時,判斷日期是不是期末(1月或7月),如果不是,則不允許修改,并給出測試該觸發(fā)器的語句;CREATETRIGGERUPDATE_SCONSCINSTEADOFUPDATEASBEGINDECLARE@ISMONTHINT;
6、DECLARE@SNOINT;DECLARE@CNOINT;DECLARE@NEWGRADEINT;SET@ISMONTH=MONTH(GETDATE());IFUPDATE(GRADE)IF(@ISMONTH=1OR@ISMONTH=7)BEGINSET@SNO=(SELECTSNOFROMINSERTED)SET@CNO=(SELECTCNOFROMINSERTED)SET@NEWGRADE=(SELECTGRADEFROMINSERTED)UPDATESCSETGRADE=@NEWGRADEWHERESNO=@SNO
7、ANDCNO=@CNO;ENDELSEPRINT'現(xiàn)在不是期末時間,不可以修改學生成績!';ENDGOUPDATESCSETGRADE=88WHERESNO='1001'ANDCNO='1'實驗總結(jié)(結(jié)論或問題分析):通過這次實驗,我學到了很多,讓我對數(shù)據(jù)完整性有了更深的理解,并會熟練運用SQL對數(shù)據(jù)進行完整性控制,而且也掌握觸發(fā)器的用法。但在實驗的過程中,也遇到了一些問題,在創(chuàng)建觸發(fā)器時,出現(xiàn)過一些錯誤,不過,在老師和同學的幫助下,都得到了順了解決,以后我更加努力。