8实验八数据库的完整性.docx

上传人:b****4 文档编号:5196757 上传时间:2022-12-13 格式:DOCX 页数:15 大小:103.32KB
下载 相关 举报
8实验八数据库的完整性.docx_第1页
第1页 / 共15页
8实验八数据库的完整性.docx_第2页
第2页 / 共15页
8实验八数据库的完整性.docx_第3页
第3页 / 共15页
8实验八数据库的完整性.docx_第4页
第4页 / 共15页
8实验八数据库的完整性.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

8实验八数据库的完整性.docx

《8实验八数据库的完整性.docx》由会员分享,可在线阅读,更多相关《8实验八数据库的完整性.docx(15页珍藏版)》请在冰豆网上搜索。

8实验八数据库的完整性.docx

8实验八数据库的完整性

实验八实现数据完整性

实验目的

实现数据完整性的概念及实施数据完整性的重要性。

掌握数据完整性的分类。

掌握完整性约束的添加、删除方法。

掌握通用默认值的创建、实施与删除方法。

掌握规则的创建、实施与删除方法。

掌握级联删除、级联修改方法。

实验内容

1、完整性约束的添加、删除

(1)通过SQLServerManagementStudio实施约束

a.为表Student的Birth字段创建检查约束,使输入的生日日期小于系统日期。

1、选择Student表,右击设计,打开Student表

2、选择Birth一行,右击7CHEC约束,打开界面如下图所示

a

壬走F口FGf稱曲

biri-t

H[sn«]

SSTt

atvsi

hinhl

轴用二1碍ERF£UFGJTT虽

轴用七超S

在般i空尸三岂时哙蚩%■哄互

MG

③、单击“添加”

0翩n

0标识

④、在表达式中写入:

Entrance_date

Entrance^date-=rgetdateQ

⑤、单击“关闭”退出

b.为表Student的Sdept字段,设置默认值约束,默认值取’计算机系'

选择Sdept—行,在其列属性中修改其默认值

varctiart^oj

!

char(3)

j

duar(&)

他称〉

恆度

毬认值或绑定频据类型冗诈Null值

曰夷设计署

Fl.ovvCL.id

c.为Student表的Snam字段添加唯一性约束。

选择Snam一行,右击索引/键

3_crth

■a?

_j.

出现如下界面:

矣引厢

曾tea

PK_StudentCAlFE^eiOE匚疋

正在犒咼Jt苟的届性*

nr

1*

兰迴

?

!

Snc(ASC)

1标识

P<_S:

uderrt_CAlFE4640SC6C43E

1希富讨誥

fc言田书;

ja

鈿略車疙爭

15^^1钢塔

PftlVIARY

1:

T-

bd

Fl

美駁口

E

B

因眩tc;

单击“添加”,在类型中选择“唯一键”,在列中选择“Sname,名称自定义

远走的主/唯一過或枣引⑸;

lX_?

tudient*

PKStudentCA1FE4S40BC6口

正在咗一愛或索引的楚性,

星唯一的

S岡

索引

Sno(ASC)否

IS

昱蚯一t标识

(名钿

说明

包含的列钊奩为熹集比

埴衣拒菠

Sname(A£C)

I)^_Sludent

PRIMARY

最后单击“关闭”退出

 

d.将SC表的Sno,cno字段设置外键约束,约束名自已取,并允许级联删除与级联更新。

(此要

求在SQLServer2008R2中无法做出)若已存在外键约束,请先删除。

①、选中Sno,右击7单击“关系”,出现如下信息,可见已存在外键约束

r'«f:

Hir!

ITaX

enl^info

3

3

3

球予IdboCourdbaSCdbo.StudcdboSmdE

■*rvkeBrckf

BeXtt

rpidnfQ.cthsrrt3闻3ink

ZQVFC-Studentjnffl羊匕收Sq

列电ijiJSita

<3JfinlaltaiT

■I'两iEnd

1

|~ffl(4Xia(vjl

FSA列(Ml

y歴辟刊N)

奈引网山主立察引促-.畑L倾X)”.

I—

0y|二+亠

□[Sttl

戦iJU百MP亡

F<5C(TLid^nr

BflttSl

生數句或?

E在色逮睚辛吕用37卷至现育?

Bftfii

说(1^

F吉ifi计遥

E1忡*FT札卩UPDA圧规運翠葩畀崔旳廉杲

鼻制ffl于E対呈

FK_SC_^jrient

选中键,点击删除,完成约束删除

②、添加约束:

选中Sno,右击,选择"关系”,出现如下信息,

 

③、点击添加,并修改

1曰儁规)

标旧

笑称)

INSERT和UPDATE规范

更新规则砂在河按作

般腳颂耳忻旬操作

彊制夕束皇

强制用于冥制星④、修改成自己想要的规范和名称

矢垂笆(N);

FK.SC^Student

SC

主舷(P);

Student

Sno

£no

...J

⑤、

⑥、

确定,完成

设置Cno的外键同上理

 

使用Transact-SQL语句实施约束

a.为Student表的Sno字段添加一个check约束,使学号满足如下条件:

学号前四位为2011,学号后四位为数字字符。

altertableStudent

'[2][0][1][1][0-9][0-9][0-9][0-9]'

.'SQLQuely去昌ql-ZQ_.(zqy-PC\zqy(占S}尸|

HaltertableScudent

addconatrarnc3no_num

-check(STIC?

like'[2][(:

J[LJ[二J[0-9J[0-9J[C-9][0-9]■)

Jfr

鬲消息_

命令已成功完成;

b.为Student表中的Birth字段添加一个约束,规定生日应小于入学时间。

altertableStudent

check(Entrance_date>Birth)

SQLQueryZ.sql-2Q4zqy-卩匚"耳¥

□alter匸filcleStudeircaddconscrairitbi;rtli_dat色

-checkii^Entrsncedate^^irth.}

c.禁用⑻中实施的Check约束

altertableStudent

NOCHECKCONSTRAINTsnonum

/SQLQue(y2小ql-zq^tiqyPC\zqy卩5)尸[

曰altercableSfjdenc

LtJOCHECKCONSTRALHTsnonum

曲消息

命令已成功完成。

d.重新启用Check约束

altertableStudent

..tQLQueiy2.£ql-2Q_(zqy-PC\zqy(55))^日altertableSt卫dent

CHECKCONSTRAIirrjnonum

畐消息

命令已成功完威。

e.删除(a)所设置check约束altertableStudent

dropCONSTRAINTsno_num

£QLQueiy2.S£|l-(蛊|y-PC\^y(55)

□altertableStudeii二

-dropCONSTRAINTszio

已消息

命令已成功完成4

f.将Student表中的classno字段设置为允许空。

altertableStudent

altercolumnclassnochar(3)null

SQLQuery2.&ql-ZQ»(£qy-PC\zqy(55))*

□alter匸ableStudene

Lalt皀工colnttnclassncchar(3jnull

nr

比消息I

命令已成功完咸©

g.为SC表中的Sno,Cno添加外键约束,约束名自取;并允许级联删除与级联更新。

若已存在外键约束,请先删除。

①、首先查看SC表中Sno和Cnc有无外键约束

sp_helpconstraint

SC

&QLqueryZtql-ZQ...{zqy-PC\iqyfSS))*|

3p_helpcon3traint5C

 

corstraintjypeconstraint_narne

rCHKk"on'c5umnGrade'TCK_SC_Grade_173a7eEA'->1"S■

(Foreignk甲FK_5c_audertt

PRIMARYKEY(clustered)PK_SC_EHXW25315502E7fl

delete_ad:

i(xi

H)date_action

3tatLg_enabfed

(n/a)

Enabled

NoActior

hoActjon

Enabled

軻/司

sti

Is

Is

 

②、

由上图已知,SC中Sno存在外键约束,则删除

alter

tableSC

drop

constraint

FKSCStudent

 

SQLquery2.sql-ZQ„(zqy-PC\zqy(S5))*altertableS匚

dropconstraintFSSCStudent

Lj消息

命令已成功完成0

“^LQuery6.sql-2Q.„(zqy-PC\zqyuecy2.sql-ZQ...(zi

日altertalole5CI

addconstraintFK_SC_StudentforeignkeyfSnon〔referencesStudent

gjpd味UHS匚味du

Londeletecascade

irr

a消息

命令已成功兗威口

altertableSC

addconstraint

FK_SC_Courseforeignkey(Cno)

references

onupdate

ondelete

Course(Cno)cascade

cascade

 

^QLQueryCHSql-ZQ^^CKiy-PCXiqy(52))*jSQLQu呂ry2・5qi-EQ“.(zqy-

□altertablt3C

addconstraint-TKSCCoursefcreLgizIceyiCncTtreferencesgourge(Gtiq)"

oniipiareciscfljde

-cn.deletecascide

rir

消息,命令已成功完成。

h.为Course表中的Cnam字段添加唯一性约束。

addconstraint

altertableCourse

AK_Cnameunique(Cname)

IzSQLQueryfi.sql-ZQ..CEqy-RC\^y(52))*]^i9LQT・

BalteiCcniiae

LaddconsTiiinxAKCrimeuniq:

u.ei.CaMiej

Trr

12a消息

命令已成功寿m

2、默认值的实施

:

200093。

(1)通过SQLServerManagementStudio实现

a.为数据库Student_info创建一个默认的邮政编码,名称自取,值为

Scfcpt

卜\PostcodeI■■JI■■■LHIIILHJill■llliBBI

列菌兰

(±==A

(*.=.<

曰(常规)

称)

Postcode

6

裁认值或湃宝

數据奠型

Char

必丹Hn,111洁

E

■W:

I殆皿Uf士

b.将该默认值绑定到Student表中的Postcode列。

用企业管理器无法做出

C•将Postcode列上的绑定解除,并删除该默认值。

用企业管理器无法做出

⑵用Transact-SQL语句重做

(1)中的(a)、(b)、(c)。

(a)、

createdefaultpostcodeas'200093'

『"SQLQuery&.sql-ZQ._(zqy-PC\zqy(S2))

H匚reatedefeulvpostcode

Las'200093*

-I-:

由消息

命令已成功完成峥

SQLQuery&.sql-ZQ.-fzqy-PC\^yfSi))*j_SQLQuery^.sq!

-Z<

3Pbindefsuit.postcode'广'Student.Postcode・

irr

由消息

已将默认值绑定到列。

5QLQuery5.£(|l-zq_(zqy-PC\zqyC52))*[SQLQuesponbindefault*Student”Postcode'

rrr

曲消息

已解療了表列与晦认値之面的綁直

dropdefaultpostcode

£qLquery6.tql-2q.*.(iqy-PC\^y(52))*

dropdefaultpcsccode

3、规则的实施

(1)通过SQLServerManagementStudio实现

a.为数据库Student_info创建一个关于性别的取值规则,规则名自取,要求字段的取值仅能

为'男'或'女'

用企业管理器无法做出

b.将该规则绑定到Student表的Sex字段上。

用企业管理器无法做出

c.解除Student表的Sex列上的绑定,并删除该规则。

用企业管理器无法做出

中的(a)、(b)、(c)。

⑵使用Transact-SQL重做

(1)

(a)、

alter

table

Student

with

nocheck

add

constraint

sex_check

check(sexin

('男','女'))

&QLQuery$.sql-ZQ_(2qy-PC\zqy(521)产|

□alL&rtattle3匸dd色n二

wic-h

-dddc口算sti'a.inGseiichecjcci;eckfsexin『男'f'女

in

自消息

命令已成功完成0

createruleSexrule

as@sex='男'or@sex='女'

E^QLQuery^.sql-2C\zqy(52))*日createruleSeK_ruXe|-as@3tx='男'cr建sex二■女'

rii

消息

命令已箴功完成。

(b)、sp_bindrule

'Sex_rule','Student.Sex'

sQLQu&ryHsG-ZQ—Ggy-PWqy但2”*]

apfcindiule'SeMriilt'「'Studsuc.S5h・

*I—

由消息I

已将规则绑走到表的列。

irr

3、sp_unbindrule

光LQjery載钧i-2

3p_unt)inciriile'Student.Sex・

'Student.Sex'

消息

已解臨了表列与规则之间的绑定。

 

/SQLQuery^.sql-2Q...(z<|y-PC^^

droprulesexrule

Es消息

命令已咸功完成4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 卡通动漫

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1