SQL SERVER 的完整性

1.在前几次实验所使用的数据库中新建一个教师信息表,表名为Teacher,字段包括Tno(教师编号),Tname(姓名),Tsex(性别),Ttitle(职称),完整性包括:设定Tno为主键,Tname非空,Tsex的取值范围为“男”或“女”。

create table Teacher

(

  Tno char (10) primary key,

  Tname char (20) not null,

  TSex char(2)check(TSex in('男','女')),

  Ttitle char(20)

);

2. 用insert语句插入如下记录,观察实验结果:

   insert into Teacher values('2016001','王明','男','讲师')

   insert into Teacher values('2016001','王英','女','助教')

   insert into Teacher values('2016002','张方','a','讲师')

第一个语句符合,第二个的tno和第一个相同了不允许有重复的编号出现,为主码。第三个的tsex为“a”不符合要求为“男”或“女”。

3. 对Teacher表增加一个约束,Ttitle属性的取值范围为('助教','讲师','副教授','教授'),并插入一条记录:

 insert into Teacher values('2016003','刘阳','男','研究员'),观察实验结果。

 

  alter table Teacher

  add  constraint Ttitle check(Ttitle in ('助教','讲师','副教授','教授'));

因为支职称中没有研究员所以不能添加

4. 为学生表Student增加一个约束,Ssex的取值范围为“男”或“女”。

alter table Student

  add  constraintSsex check (Ssexin ('男','女'));

 

5. 为选课表Sc增加一个约束,Grade的取值在0至100之间。

(提示,3,4,5是对表的结构增加约束定义,使用命令为:Alter table)

alter table SC

 add  constraint Grade check(Grade between0 and 100);

 

6. 为选课表Sc增加参照完整性及违约处理,定义sno为外键,与student表中的sno关联,当删除、更新student中的元组时,级联删除、更新Sc表中的相应元组,命令为:

  alter table sc

   add foreign key(sno) references student(sno)

   on delete cascade

   on update cascade

使用SQL语句,将Student表中姓名为”王敏”的元组,学号更改为“201315123”,然后查看SC表中的元组是否也做了相应的更改。



可以发现sc中的表也随之发生了变化

 

7. 为选课表Sc增加参照完整性及违约处理,定义cno为外键,与course表中的cno关联,当删除、更新course中的元组时,级联删除、更新Sc表中的相应元组,并进行验证。

alter table sc

add foreign key(cno) references course(cno)

 on delete cascade

 on update cascade

 



你可能感兴趣的:(SQL SERVER 的完整性)