實(shí)驗(yàn)八:數(shù)據(jù)庫(kù)的完整性約束_第1頁(yè)
實(shí)驗(yàn)八:數(shù)據(jù)庫(kù)的完整性約束_第2頁(yè)
實(shí)驗(yàn)八:數(shù)據(jù)庫(kù)的完整性約束_第3頁(yè)
實(shí)驗(yàn)八:數(shù)據(jù)庫(kù)的完整性約束_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 實(shí)驗(yàn)八:數(shù)據(jù)庫(kù)的完整性約束一、實(shí)驗(yàn)?zāi)康?. 掌握主鍵約束、外鍵約束及及check約束的用法;2. 掌握默認(rèn)值約束的應(yīng)用;3. 了解規(guī)則、觸發(fā)器的使用。二、實(shí)驗(yàn)環(huán)境已安裝SQL Server 企業(yè)版的計(jì)算機(jī);具有局域網(wǎng)環(huán)境,有固定IP;三、實(shí)驗(yàn)學(xué)時(shí)2學(xué)時(shí)四、實(shí)驗(yàn)要求1. 熟悉數(shù)據(jù)庫(kù)完整性相關(guān)概念及約束;2. 了解約束、默認(rèn)值及規(guī)則;3. 完成實(shí)驗(yàn)報(bào)告;五、實(shí)驗(yàn)內(nèi)容及步驟以系統(tǒng)管理員身份登錄到SQL Server服務(wù)器,并使用T-SQL語(yǔ)句實(shí)現(xiàn)以下操作;1. 請(qǐng)用至少2種方法定義stu數(shù)據(jù)庫(kù)中student表的主鍵sno;-列級(jí)定義-create database st

2、u;create table student(sno char(12) primary key)-表級(jí)定義-create database stu;create table student(sno char(12) primary key (sno)2. 將數(shù)據(jù)庫(kù)stu的表course的cno字段定義為主鍵,約束名稱為cno_pk;alter table courseadd constraint cno_pk primary key(cno)3. 為表course中的字段cname添加唯一值約束;alter table courseadd constraint cname_pk unique

3、(cname)4. 將數(shù)據(jù)庫(kù)stu的表sc的sno及cno字段組合定義為主鍵,約束名稱為sc_pk;alter table scadd constraint sc_pk primary key (sno,cno)5. 對(duì)于數(shù)據(jù)表sc的sno、cno字段定義為外碼,使之與表student的主碼sno及表course的主碼cno對(duì)應(yīng),實(shí)現(xiàn)如下參照完整性:1) 刪除student表中記錄的同時(shí)刪除sc表中與該記錄sno字段值相同的記錄;2) 修改student表某記錄的sno時(shí),若sc表中與該字段值對(duì)應(yīng)的有若干條記錄,則拒絕修改;3) 修改course表cno字段值時(shí),該字段在sc表中的對(duì)應(yīng)值也應(yīng)修

4、改;4) 刪除course表一條記錄時(shí),若該字段在在sc表中存在,則刪除該字段對(duì)應(yīng)的記錄;5) 向sc表添加記錄時(shí),如果該記錄的sno字段的值在student中不存在,則拒絕插入;alter table scadd constraint sc_fk foreign key (sno)references student(sno)on delete cascade on update no action,foreign key (cno)references course(cno)on delete cascade on update cascade go 6. 定義check約束,要求學(xué)生學(xué)號(hào)

5、sno必須為9位數(shù)字字符,且不能以0開(kāi)頭,第二三位皆為0;alter table studentadd constraint sno_ckcheck(sno like '1-9000-90-90-90-90-90-9')7. 定義stu數(shù)據(jù)庫(kù)中student表中學(xué)生年齡值在16-25范圍內(nèi);alter table studentadd constraint sage_ckcheck(sage between 16 and 25)8. 定義stu數(shù)據(jù)庫(kù)中student表中學(xué)生姓名長(zhǎng)度在2-8之間;alter table studentadd constraint sname_ck

6、check (len(sname) between 2 and 8)9. 定義stu數(shù)據(jù)庫(kù)中student表中學(xué)生性別列中只能輸入“男”或“女”;alter table studentadd constraint ssex_ckcheck(ssex in ('男','女')10. 定義stu數(shù)據(jù)庫(kù)student表中學(xué)生年齡值默認(rèn)值為20;alter table student add constraint s_agedefault 20 for sage11. 修改student表學(xué)生的年齡值約束可以為15-30范圍內(nèi);alter table studentdr

7、op constraint sage_ckgoalter table studentadd constraint sage_ckcheck(sage>=15 and sage<=30)12. 刪除上述唯一值約束、外鍵約束及check約束;alter table coursedrop constraint cname_pkgoalter table scdrop constraint sc_fkgo alter table studentdrop constraint sno_ck,sage_ck,sname_ck,ssex_ck13. 思考題:定義規(guī)則對(duì)象,用于保證course表中

8、cno字段值為5個(gè)數(shù)字字符;(可選做)create rule c_cnoas a like '0-90-90-90-90-9'goexec sp_bindrule 'c_cno','o'14. 思考題:向sc表中插入或修改一條記錄時(shí),通過(guò)觸發(fā)器檢查記錄sno字段的值在student表中是否存在,若不存在,則取消插入或修改操作;(可選做)create trigger abc on scfor insert,update as if (select sno from inserted) not in(select sno from student)beginrollback transactionend15. 思考題:刪除student表中一條記錄的同時(shí)刪除其在sc表中對(duì)應(yīng)的記錄;(參照完整性、觸發(fā)器均可實(shí)現(xiàn))create tri

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論