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
i£
■*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-23p_unt)inciriile'Student.Sex・
'Student.Sex'
消息
已解臨了表列与规则之间的绑定。
/SQLQuery^.sql-2Q...(z<|y-PC^^
droprulesexrule
Es消息
命令已咸功完成4