命令方式操作方法:
在命令窗口下执行下面的相应的指令:
一、实体完整性
1.将“student”表的“sno”字段设为主键:
当“student”表已存在则执行:
alter table student add primary key sno tag 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. 将“sc”表的“sno”和“cno”设置为主键:
当“sc”表已存在则执行:
alter table sc add primary key sno+cno tag mkey
当“sc”表不存在则执行:
Create table sc(sno CHAR(5),cno CHAR(2),
grade INT NULL,
primary key sno+cno tag mkey)
二、域完整性
3. 将“ssex”字段设置为只能取“男”,“女”两值:
当“student”表已存在则执行:
alter table student alter column ssex set check (ssex='男' .or. ssex='女') error '性别只能为男或女'
当“student”表不存在则执行:
Create table student(sno CHAR(5) primary key ,
sname CHAR(10),
ssex CHAR(2) check (ssex='男' .or. ssex='女')
error 'ssex只能为男或女' default '男',
sage int, sdept CHAR(4))
三、参照完整性
4. 将“student”表和“sc”表中的“sno”字段设为参照:
当“sc”表已存在则执行:
alter table sc add foreign key sno tag sno references student tag sno
当“sc”表不存在则执行:
Create table sc(sno CHAR(5) references student tag sno,
cno CHAR(2),grade INT NULL,
primary key sno+cno tag mkey)
四、完整性验证
1. 实体完整性: 在“student”表数据浏览可视化界面中输入学号相同的两条记录将会出现错误如下图所示:
图6-9
或者在命令窗口输入下面两条命令也会出现错误提示:
insert into student values('95001','张三','男',20,'CS')
insert into student values('95001','李四','女',18,'CS')
图6-10
下面的语句用来验证“sc”表中的实体完整性:
insert into sc values('95002', '10',65)
insert into sc values('95002', '10',90)
图6-11
2. 域完整性:
使用下面的语句验证“ssex”字段的域完整性:
insert into student values('95009','张匀','大',20,'CS')
3.参照完整性:
使用下面的语句“验证”sc表中的“sno”字段的域完整性(假设student表中没有学号为“95998”的学生记录):
insert into sc values('98998', '10',98)
在窗口界面输入上述值的效果如图6-12所示
图6-12
思考:
1. 1. 建立课程的实体完整性, 和课程号cno的参照完整性;
2. 建立年龄的域完整性, 约束条件为“年龄在15到30岁之间”
因篇幅问题不能全部显示,请点此查看更多更全内容