数据库--实验5

                                         实验名称                  实验五  完整性                    

一、实验目的:

  1、掌握数据库约束的概念;

2、熟悉SQL SERVER 的完整性约束技术。

3、了解SQL SERVER 的违反完整性处理措施。

二、实验准备 

1、了解数据库完整性约束的基本概述 

2、了解SQL Server完整性约束技术。 包括实体完整性、参照完整性、用户定义完整性等。

3、了解主键(PRIMARY KEY)约束 

4、了解外键(FOREIGN KEY)约束 

5、了解唯一性(UNIQUE)约束 

6、了解检查(CHECK)约束 

7、了解DEFAULT 约束 

8、了解允许空值约束 

9、了解触发器的使用

、实验内容:

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

CREATE TABLE Teacher

(Tno CHAR(9) PRIMARY KEY, 

Tname CHAR(20) NOT NULL, 

Tsex CHAR(2) CHECK(Tsex IN ('男','女')),

Ttitle char(10),

); 

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

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

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

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

级别14,状态1,第2 行

违反了PRIMARY KEY 约束'PK__Teacher__0AD2A005'。不能在对象'dbo.Teacher' 中插入重复键。

语句已终止。

级别16,状态0,第3 行

INSERT 语句与CHECK 约束"CK__Teacher__Tsex__0BC6C43E"冲突。该冲突发生于数据库"sql",表"dbo.Teacher", column 'Tsex'。

语句已终止。

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

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

INSERT 语句与 CHECK 约束"CK__Teacher__Ttitle__108B795B"冲突。该冲突发生于数据库"sql",表"dbo.Teacher", column 'Ttitle'。

语句已终止。

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

CREATE TABLE Student

(Sno CHAR(9) PRIMARY KEY, 

Sname CHAR(20) UNIQUE, 

Ssex CHAR(2) CHECK(Ssex IN ('男','女')),

Sage SMALLINT,

Sdept CHAR(20)

);

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

CREATE TABLE SC

(Sno CHAR(9),

Cno CHAR(4), 

Grade SMALLINT check(grade>=0 and grade<=100), 

PRIMARY KEY (Sno,Cno))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ifHappyEveryDay@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值