- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
福建工程学院信息科学与工程学院
实验报告– 2016 学年第 2 学期 任课老师: 林芳
课程名称 数据库系统原理及应用 班级 计科1401 学号 3141911119 姓名 吴亮 实验题目 数据完整性 实验时间 实验日期: 2016.4.12 提交日期: 2016.4.12 实验目的、要求 实验目的通过。
实验结创建
create database bang
on primary
(
name = bangdata,
filename = D:\软件主体文件\sql2012\数据库\bang_data.mdf,
size = 5mb,
maxsize = unlimited,
filegrowth = 1 mb
)
log on
(
name = bangLog,
filename = D:\软件主体文件\sql2012\数据库\bang_Log.ldf,
size = 5 mb,
maxsize = unlimited,
filegrowth = 1 mb
);
go
use bang
创建三个表表Employees存储雇员的代号()、身份证号码(18个字符)、名字(最长20个字符)和工资等信息;表Departments存储部门的部门号(2个字符,唯一)、部门名称(30个字符)等信息;表Work每一行表示某雇员在某部门工作过及其开始工作时间和备注。:工资的值大于0,身份证号码唯一,
create table employees
(
eno int primary key identity(1000001,1),
eid char(18) unique not null,
ename char(20),
esal int
check(esal 0)
)
create table departments
(
dno char(2) primary key,
dname char(30),
)
create table work
(
eno int,
dno char(2),
wtime date default(getdate()),
remarks char(100),
primary key(eno,dno),
foreign key(eno) references employees(eno),
foreign key(dno) references departments(dno)
)
Test:
创建以下两个关系模式,先不进行任何完整性定义。?
职工(职工号,姓名,年龄,职务,工资,部门号)
部门(部门号,名称,经理名,地址,电话号码)
create table workers
(
wno char(20) not null,
wname char(20),
wage int,
wpost char(20),
wsal int,
dno char(20)
)
create table department
(
dno char(20) not null,
dname char(20),
dboss char(20),
dadd char(20),
dtel char(20)
)
在内容3已经创建的表结构上添加如下完整性,每个完整性都要命名,自己设计数据验证完整性:
1)定义每个模式的主码;
alter table workers
add constraint pk_workers
primary key(wno)
go
alter table department
add constraint pk_department
primary key(dno)
Test:
将wno置空时
将dno置空时
2)定义参照完整性,对部门号删除和更新时采用级联策略;
alter table workers
add constraint fk_workers_dno
foreign key(dno) references department(dno)
on delete cascade
on update cascade
Test:
部门信息:
添加员工信息时部门号不存在
部门和员工信息
删除某部门时
3)定义职工的年龄不能小于18岁,并且不能超过60岁;
alter table workers
add constraint ck_workers_wage
check(wage between 18 and 60)
Test:
职工年龄不在区间内时
4)职工的姓名不能为空;
alter table
原创力文档


文档评论(0)