数据库4实验报告

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

太原理工大学学生实验报告

(1)了解SQL Serer数据库系统中数据完整性控制的基本方法

(2)熟练掌握常用CREATE 或ALTER 在创建或修改表时设置约束

(3)了解触发器的机制和使用

(4)验证数据库系统数据完整性控制

二、实验内容和原理

结合school 数据库中的各个表,设置相关的约束,要求包括主键约束、外键约束、唯一约束、检查约束、非空约束等,掌握各约束的定义方法。设置一个触发器,实现学生选课总学分的完整性控制,了解触发器的工作机制。设计一些示例数据,验证完整性检查机制。

3.1要求包括如下方面的内容:

使用 SQL 语句设置约束

使用 CREATE 或 ALTER 语句完成如下的操作,包括:

1.设置各表的主键约束

2.设置相关表的外键

3.设置相关属性的非空约束、默认值约束、唯一约束

4.设置相关属性的 CHECK 约束

3.2使用触发器

创建一个触发器,实现如下的完整性约束:

(1)当向 SC 表中插入一行数据时,自动将学分累加到总学分中。

(2)记录修改学分的操作。

3.3检查约束和触发器

分别向相关表插入若干条记录,检查你设置的完整性约束是否有效:

1.插入若干条包含正确数据的记录,检查插入情况

2.分别针对设置的各个约束,插入违反约束的数据,检查操作能否进行

3.向 SC 表插入若干行数据,检查触发器能否实现其数据一致性功能。

三、主要仪器设备(必填)

HP6460 SQL SERVER2008

四、方法与实验步骤(可选)

一、声明完整性约束

创建学生选课数据库 TEST,包括三个基本表,其中 Student 表保存学生基本信息,Course 表保存课程信息,SC 表保存学生选课信息,其结构如下表:

表 1. Student 表结构

表 2. Course 表结构

表 3. SC 表结构

1.创建基本表及约束

(1)创建 Student 表

CREATE TABLE Student

( Sno CHAR(8) PRIMARY KEY,

Sname CHAR(8) NOT NULL,

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

Sage SMALLINT,

Sdept CHAR(20),

Sclass CHAR(4) NOT NULL,

Stotal smallint DEFAULT 0

);

掌握主键约束、非空约束、CHECK约束、默认值的定义格式。

(2)创建 Course 表

CREATE TABLE Course

( Cno CHAR(4) CONSTRAINT FK_Course PRIMARY KEY,

Cname CHAR(40),

Cpno CHAR(4) ,

Ccredit SMALLINT

);

(3)创建 SC 表

CREATE TABLE SC

( Sno CHAR(8) FOREIGN KEY (Sno) REFERENCES Student(Sno), Cno CHAR(4),

Grade SMALLINT CONSTRAINT SC_CHECK CHECK(Grade >0 AND Grade<100), PRIMARY KEY (Sno,Cno),

CONSTRAINT FK_SC FOREIGN KEY (Cno) REFERENCES Course(Cno) );

1.掌握多个属性的主键约束、外键约束、CHECK 约束的定义格式。

2.掌握约束的命名方式。

(4)检查表是否创建成功。

2.插入数据

将如下表格中的数据分别插入到数据库相应的表中:

表 4.学生基本信息表

表 5.课程信息表

(1)插入学生信息到Student表

INSERT INTO Student VALUES('20100001','李勇','男',20,'CS','1001',0) INSERT INTO Student VALUES('20100002','刘晨','女',19,'CS','1001',0) INSERT INTO Student VALUES('20100021','王敏','女',18,'MA','1002',0) INSERT INTO Student VALUES('20100031','张立','男',19,'IS','1003',0) INSERT INTO Student VALUES('20100003','刘洋','女','1001',0) INSERT INTO Student VALUES('20100010','赵斌','男',19,'IS','1005',0)

INSERT INTO Student VALUES('20100022','张明明','男',19,'CS','1002',0

请写出插入其余行的插入语句,并插入数据。

(2)插入到课程信息到Course表

INSERT INTO Course(Cno,Cname,Cpno,Ccredit) VALUES('1','数据库系统原理', '5',4) INSERT INTO Course(Cno,Cname,Cpno,Ccredit) VALUES('2','高等数学', null,2)

INSERT INTO Course(Cno,Cname,Cpno,Ccredit) VALUES('3','管理信息系统', '1',4)

INSERT INTO Course(Cno,Cname,Cpno,Ccredit) VALUES('4','操作系统原理', '6',3)

INSERT INTO Course(Cno,Cname,Cpno,Ccredit) VALUES('5','数据结构', '7',4)

INSERT INTO Course(Cno,Cname,Cpno,Ccredit) VALUES('6','数据处理', NULL,2)

INSERT INTO Course(Cno,Cname,Cpno,Ccredit) VALUES('7','C语言', NULL,4)

请写出插入其余行的插入语句,并插入数据。

(3)插入到SC表

INSERT INTO SC VALUES('20100001','1',92) INSERT INTO SC

VALUES('20100001','2',85)

INSERT INTO SC VALUES('20100001','3',88)

INSERT INTO SC VALUES('20100002','1',90)

INSERT INTO SC VALUES('20100002','2',80)

INSERT INTO SC VALUES('20100003','1',NULL)

INSERT INTO SC VALUES('20100010','3',NULL)

(4)检查插入到表中的数据

3.修改约束

对数据库中已经存在的表,可对其增加约束或修改已存在的约束:

(1)添加约束

ALTER TABLE Course ADD UNIQUE(Cname)

相关文档
最新文档