《数据库原理与应用》实验七:数据库的完整性约束

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据库原理与应用》实验七:数据库的完整性约束

一、实验目的

1.掌握主键约束、外键约束、唯一约束、默认约束及CHECK约束的用法;

2.掌握默认值约束的应用;

二、实验环境

已安装SQL Server 2008的计算机;

三、实验学时

2学时

四、实验要求

1.熟悉数据库完整性相关概念及约束;

2.了解约束、默认值及规则;

3.完成实验报告;

五、实验内容及步骤

实验1:使用SQL语句完成下列操作

1.将数据库S-T的表Course的Cno字段定义为主键,约束名称为PK_Cno;

alter table Course

add constraint PK_Cno primary key(Cno)

2.为表course中的字段Cname添加唯一值约束, 约束名称为UQ_Cname;

alter table Course

add constraint UQ_Cname unique (Cname)

3.将数据库S-T的表SC的Sno及Cno字段组合定义为主键,约束名称为

PK_SC

alter table SC

add constraint PK_SC primary key (Sno,Cno)

4.对于数据表SC的Sno、Cno字段定义为外码,使之与表Student的主码

Sno及表Course的主码Cno对应,实现如下参照完整性:

1)删除Student表中记录的同时删除SC表中与该记录Sno字段值相同

的记录;

2)修改Student表某记录的Sno时,若SC表中与该字段值对应的有若

干条记录,则拒绝修改;

3)修改Course表Cno字段值时,该字段在SC表中的对应值也应修改;

4)删除Course表一条记录时,若该字段在在SC表中存在,则删除该

字段对应的记录;

5)向SC表添加记录时,如果该记录的Sno字段的值在Student中不存

在,则拒绝插入;

alter table SC

add constraint FK_SC

foreign key (Sno) references Student(Sno)

on delete cascade on update no action,

foreign key (Cno) references Course(Cno)

on delete cascade on update cascade

go

5.定义默认值约束,要求学生所在系Sdept默认值为“IS”;

alter table Student

add constraint DF_Sdept default('IS') for Sdept

6.定义S-T数据库中Student表中学生年龄值在16-25范围内;

alter table student

add constraint CK_Sage

check(Sage between 16 and 25)

7.定义S-T数据库中Student表中学生姓名长度在2-8之间;

alter table Student

add constraint CK_Sname

check (len(Sname) between 2 and 8)

8.定义S-T数据库中Student表中学生性别列中只能输入“男”或“女”,

默认值为“男”

alter table Student

add constraint CK_Ssex check(Ssex in ('男','女')),

constraint DF_Ssex default('男') for Ssex

9.定义S-T数据库Student表中学生年龄值默认值为20;

alter table Student

add constraint DF_Sage default 20 for Sage

10.修改Student表学生的年龄值约束可以为15-30范围内;

alter table Student

drop constraint CK_Sage

go

alter table Student

add constraint CK_Sage

check(Sage>=15 and Sage<=30)

11..分别向S-T数据库的Student、SC、Course表中插入几条数据,检查约

束效果。

12.删除上述唯一值约束、外键约束及check约束;

alter table Course

drop constraint UQ_Cname

go

alter table SC

drop constraint FK_SC

go

alter table Student

drop constraint CK_Sno,CK_Sname,CK_Ssex

实验2:使用对象资源管理器完成下列操作

1.新建数据库DEMO,并新建两张数据表Student、Specialty

USE master

GO

IF EXISTS(SELECT*FROM sysdatabases WHERE name='Demo')

DROP DATABASE Demo

CREATE DATABASE Demo

ON PRIMARY

(

NAME='Demo_data',

FILENAME='D:\project\Demo_data.mdf',

SIZE=3MB

)

LOG ON

(

NAME='Demo_log',

FILENAME='D:\project\Demo_log.ldf',

SIZE=3MB

)

GO

USE Demo

GO

IF EXISTS(SELECT*FROM sysobjects WHERE name='Student')

DROP TABLE Student

CREATE TABLE Student

(

Sno int NOT NULL,--学号

Sname varchar(20),--学生姓名

Ssex char(2),--性别

Sage int NOT NULL,--学生年龄

相关文档
最新文档