实验四 数据库的完整性.doc
文本预览下载声明
实验四:数据库的完整性
一、实验目的
熟悉主键约束、外键约束、空值、惟一约束的使用方法;
掌握默认值约束和默认对象的使用方法;
掌握check约束及规则的使用方法;
掌握触发器的概念、创建、修改和删除方法;
了解inserted和deleted的作用及数据的引用;
掌握各种触发器的工作过程。
二、实验环境
SQL Server 企业版
三、实验学时
2学时
四、实验内容及步骤
(一)创建学生课程数据库和表
Create database stu_tri
Go
use stu_tri
go
create table s(
sno char(5) not null,
sname char(10),
ssex char(2),
sage int,
sdept char(10),
ssum_credit tinyint)
go
create table c(
cno char(5) not null,
cname char(10),
ccredit tinyint)
go
create table sc(
sno char(5) not null,
cno char(5) not null,
grade tinyint)
go
(二)主键约束
--1.学生表
--(1)主键的定义
alter table s add constraint s_pk primary key(sno)
go
--(2)主键约束的违约检查和处理
insert into s values(95001,李莹,女,21,计科,0)
insert into s values(95001,章张,男,22,计科,0)
--修改学号为,再次插入数据
insert into s values(95002,章张,男,22,计科,0)
--(3)依次输入多个学生的记录
insert into s
values
(95003,陈华,女,22,计科,0),
(95004,吴华义,男,23,计科,0),
(95005,刘冠章,男,22,计科,0),
(95006,蒋婷,女,22,网络,0),
(95007,邱蔚六,男,21,网络,0),
(95008,王德柱,男,22,网络,0),
(95009,秦频,女,21,网络,0),
(95010,程少根,男,21,网络,0)
--2.课程表c
--(1)主键的定义
alter table c add constraint c_pk primary key(cno)
--(2)主键的检查和处理(省)
--(3)录入数据
insert into c
values
(00001,计算机导论,2),
(00002,高级语言,2),
(00003,离算数学,3),
(00004,数据结构,3),
(00005,c#,2),
(00006,面向对象,2),
(00007,数据库原理,3),
(00008,操作系统,3)
--3.学生选课表
--(1)主键的定义
alter table sc add constraint sc_pk primary key(sno,cno)
go
--(2)主键约束的检查及处理
insert into sc values(95001,00001,90)
go
insert into sc values(95001,00001,86)
Go
--(3)录入数据
insert into sc
values
(95001,00002,86),
(95001,00003,92),
(95001,00004,76),
(95001,00005,86),
(95002,00001,86),
(95002,00002,80),
(95002,00003,81),
(95003,00001,88),
(95003,00002,68),
(95004,00001,96),
(95005,00001,69)
(三)参照完整性
--1.定义学生选课表的学号为外键
alter table sc add constraint sc_fk foreign key(sno) references s(sno)
go
alter table sc add constraint sc_fk_1 foreign key(cno) references c(cno)
go
--2.参照完整性约束的检查
--(1)向学生选课表中插入数据—学号外键的检查
insert into sc values(95100,00001,90)
go
--(2)向学生选课表中插入数据—课程号外键的检查
insert into sc values(9
显示全部