一、實驗學時
2學時二、實驗目的
(1)實現資料完整性的概念及實施資料完整性的重要性。
(2)掌握資料完整性的分類。
(3)掌握完整性約束的新增、刪除方法。
(4)掌握通用預設值的建立、實施與刪除方法。
(5)掌握規則的建立、實施與刪除方法。
(6)掌握級聯刪除、級聯修改方法。
三、實驗要求
刪除預設約束的操作步驟:
2)(若原有約束,請在企業管理器中刪除student表的主鍵約束)在企業管理器中將sno重設為主鍵。(會操作即可,操作步驟可略)
3)為student表的sname欄位新增唯一性約束。
新增唯一性約束操作步驟:
刪除唯一性約束操作步驟:
4)(若原有約束,請在企業管理器中刪除原有的外來鍵約束)在企業管理器中刪除sc原有的外來鍵約束,在企業管理器中對sno,cno欄位設定外來鍵約束,約束名自己取。並允許級聯刪除與級聯更新。
新增外來鍵約束的操作步驟:
刪除外來鍵約束的操作步驟:
(2)使用t-sql語句新增、刪除約束(約束名自取,並自行新增或修改某些字段值檢驗有效性)
1)為student表的sno欄位新增乙個check約束,使學號滿足如下條件:
a. 學號前四位為2002。
b. 學號後五位為數字字元。
t-sql語句為:
create table student
(sno char(9) check(sno like』[2002][0-9][0-9][0-9][0-9][0-9]』));
2)(若原有約束,請在企業管理器中刪除sc表主鍵約束及外來鍵約束)將sc表中的sno,cno欄位設定為主鍵。
t-sql語句為:
alter table sc
add constraint pk_sc primary key(sno,cno)
3)為sc表中的sno,cno新增外來鍵約束,約束名自取;並允許級聯刪除與級聯更新。
新增外來鍵約束t-sql語句為:
alter table sc
add constraint fk_sno foreign key(sno) references student(sno)
on delete cascade on update cascade;
alter table sc
add constraint fk_cno foreign key(cno) references course(cno)
on delete cascade on update cascade
驗證級聯刪除與級聯更新t-sql語句:
(測試例項自編)
**select from student
where sno=『200200002』
select from sc
where sno=『200200001』
delete from student
where sno=『200200001』
select from student
where sno=『200200001』
selectfrom sc
where sno=『200200001』
2.通用預設值的實施
(1)使用企業管理器實現
1)使用企業管理器中為資料庫stu_course建立乙個預設的年齡,名稱自取,值為:19。
具體步驟如下:
2)將該預設值繫結到student表中的sage列。
具體步驟如下:
3)將sage列上的繫結解除,並在企業管理器中刪除該預設值。
具體步驟如下:
若未解除繫結,能否刪除預設值?
(2)使用t-sql語句實施預設值
1)為資料庫stu_course建立乙個關於性別的預設值,名稱自取,值為「女」。
t-sql語句為:
create default about_*** as '女』
2)將該預設值繫結到student表中的s***字段(原有的約束請刪除)
t-sql語句:
sp_bindefault about_*** ,"student.s***"
3)解除表student的s***列的預設值繫結,並刪除該預設值。
t-sql語句:
sp_unbindefault 『student.s***』
drop default about_***
3.規則的實施
(1)使用企業管理器實現
1)使用企業管理器為資料庫stu_course建立乙個關於性別的取值規則,規則名自取,要求欄位的取值僅能為『男』或『女』。
具體步驟如下:
2)將該規則繫結到student表的s***欄位上。
具體步驟如下:
3)解除student表的s***列上的繫結,並刪除該規則。
具體步驟如下:
(2)使用t-sql實施規則
1)為資料庫stu_course建立乙個關於學號的規則,名稱自取,學號的具體取值規則為:
a.學號前四位為2002。
b.學號後五位為數字字元。
t-sql語句為:
create rule rule_sno
as @range like』2002[0-9][0-9][0-9][0-9][0-9]'
2)將該規則繫結到表student表、sc表的sno列上。
t-sql語句為:
exec sp_bindrule 『rule_sno』,『student.sno』
exec sp_bindrule 『rule_sno』,'sc.sno』
3)解除所有的繫結,並刪除該規則。
t-sql語句為:
exec sp_unbindrule 『student.sno』
exec sp_unbindrule 'sc.sno』
資料庫實驗報告四 完整性控制
1.假設有下面兩個關係模式 職工 職工號,姓名,年齡,職務,工資,部門號 其中職工號為主碼 部門 部門號,名稱,經理名,其中部門號為主碼 用sql語言定義這兩個關係模式,要求在模式中完成以下完整性約束條件的定義 定義每個模式的主碼 定義參照完整性 定義職工年齡不得超過60歲。答 create tab...
Oracle資料庫實驗報告三 表及完整性定義
by qqc from btbu 實驗目的 1 掌握oracle建立表的方法,包括主鍵 外來鍵的新增等。2 熟悉oracle對完整性約束的定義。實驗內容 開啟命令列啟動oracle服務連線hr使用者 1.表book的結構如下,請在hr使用者下建立該錶 欄位名 中文釋義 資料型別 isbn 圖書編號 ...
資料庫實驗五 完整性
一 實驗目的 1 掌握資料庫約束的概念 2 熟悉 sql server 的完整性約束技術。3 了解 sql server 的違反完整性處理措施。二 實驗環境 windows下的sql 三 實驗內容 1.在前幾次實驗所使用的資料庫中新建乙個教師資訊表,表名為 teacher 字段包括 tno 教師編號...