数据库上机实验1.doc
文本预览下载声明
实验七:数据完整性实验(SQL SERVER)
实验目的:
加深对数据完整性的理解。
实验内容:
数据库的完整性设置。
实验步骤:
1)可视化界面的操作方法:
一、实体完整性
1.将student表的“sno”字段设为主键:在表设计界面中,单击左边的行选定块,选定“sno”字段,单击工具按钮设置主键。如图6-1所示:
图6-1
将“sc”表的“sno”和“cno”设置为主键:在表设计界面中,单击并拖动左边的行选定块,选定sno和cno字段,单击工具按钮设置主键。如图6-2所示:
图6-2
二、域完整性
3. 将“ssex”字段设置为只能取“男”,“女”两值:在表设计界面,点击图4-3箭头所指按钮,出现属性(Property)对话框,选择新建(New)按钮,然后在约束表达式(Constraint expression)框中输入“ ssex in (男,女) ”。如图6-3所示。
图6-3
三、参照完整性
4.利用数据库关系图来完成参照完整性见图6.4。
将要形成参照完整性的数据库加入
将student表作为主键表,sc表作为外键表形成参照完整性,将鼠标参照完整性放在student表的sno上,按左键不放,拖至sc表的sno放开
修改下面中insert和update选项,对student表和sc表的sno字段进行插入和修改操作,看有何区别
同理,将course表作为主键表,sc表作为外键表形成参照完整性最后如下图
2)命令方式操作方法:
一、实体完整性
1.将“student”表的“sno”字段设为主键:
当“student”表已存在则执行:
alter table student add constraint pk_sno primary key (sno)
当“student”表不存在则执行:
Create table student(sno CHAR(5) primary key ,
sname CHAR(10),ssex CHAR(2),
sage int,sdept CHAR(4))
注:可用命令“drop table student”删除“student”表
2. 添加一身份证号字段,设置其惟一性.(注: 操作前应删除表中的所有记录)
Alter table student add id char(18) unique (id)
3. 将“sc”表的“sno”和“cno”设置为主键:
当“sc”表已存在则执行:
alter table sc add constraint PK_SnoCno primary key (sno,cno)
当“sc”表不存在则执行:
Create table sc(sno CHAR(5),cno CHAR(2),
grade INT NULL,
constraint PK_SnoCno primary key (sno,cno))
二、域完整性
4. 将“ssex”字段设置为只能取“男”,“女”两值:
当“student”表已存在则执行:
alter table student add constraint CK_Sex check (ssex in (男 ,女))
当“student”表不存在则执行:
Create table student(sno CHAR(5) primary key ,
sname CHAR(10),
ssex CHAR(2) check (ssex in (男 ,女)) ,
sage int, sdept CHAR(4))
5. 设置学号字段只能输入数字:
alter table student add constraint CK_Sno_Format check (sno like [0-9][0-9][0-9][0-9][0-9])
6. 设置身份证号的输入格式:
alter table student add constraint CK_ID_Format check ((id like [0-9][0-9][0-9][0-9][0-9][0-9][1-2][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]_) OR (id like [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]))
7. 设置18位身份证号的第7位到第10位为合法的年份(1900-2050)
alter table student add constraint CK_ID_Format2 check ( not len(id)=18 or ( (convert(smallint,substring(id,
显示全部