第一篇:数据库上机实验8实验报告
上机实验八——完整性约束的实现
一、实习目的:
掌握SQL中实现数据完整性的方法,加深理解关系数据模型的三类完整性约束。
二、实习准备:
1.复习“完整性约束SQL定义”
2.完成习题四第10题中的各项操作的SQL语句。
3.了解SQL Server 中实体完整性、参照完整性和用户自定义完整性的实现手段
三、实习内容:
1.验证习题四第10题四个表结构的SQL语句。
表一:Sstudent CREATE TABLE Sstudent(Sno char(7)NOT NULL PRIMARY KEY, Sname VarChar(20)NOT NULL, Ssex Char(2)NOT NULL DEFAULT('男')check(Ssex IN('男','女')), Sage smallint check(Sage >14 AND Sage<65), Clno Char(5)NOT NULL REFERENCES Cclass(Clno)ON UPDATE CASCADE);
表二:Ccourse CREATE TABLE Ccourse(Cno Char(1)NOT NULL PRIMARY KEY, Cname VarChar(20)NOT NULL, Credit Smallint CHECK(Credit IN(1,2,3,4,5,6)));
表三:Cclass CREATE TABLE Cclass(Clno Char(5)NOT NULL PRIMARY KEY, Speciality VarChar(20)NOT NULL, Inyear Char(4)NOT NULL, Number Integer CHECK(Number>1 AND Number<100), Mointor Char(7)REFERENCES Student(Sno));
表四:Ggrade CREATE TABLE Ggrade(Sno Char(7)NOT NULL REFERENCES Student(Sno)ON DELETE CASCADE ON UPDATE CASCADE, Cno Char(1)NOT NULL REFERENCES Course(Cno)ON DELETE CASCADE ON UPDATE CASCADE, Gmark Numeric(4,1)CHECK(Gmark>0 AND Gmark<100), PRIMARY KEY(Sno,Cno));
2.SQL Server中提供了那些方法实现实体完整性、参照完整体和用户自定义完整性
答:实体完整性:是通过主码的定义(PRIMARY KEY)来实现的;
参照完整性:是利用外部码(REFERENCES)的说明,以限制相关表中某些属性的取值,当用户违反规则时,提供三种:RESTRICT(限制策略),CASCADE(级联策略),SET NULL(置空策略);
用户自定义完整性:check约束,对元组的CHECK约束
第二篇:数据库上机实验报告
兰州理工大学
学生上机报告
学院计算机与通信学院课程名称数据库原理
学生姓名侯予南学号05550204
专业班级基地班05级1班
上机日期2008年4月17日
指导教师李明
上机实验报告
(一)实验内容:
1、熟悉SQL Server 2000应用环境;
熟悉查询分析器的使用方法;
2、运行课堂示例:建立表Teacher , Course ;
进行数据插入、查询、更新、建立视图、创建触发器等操作;
3、完成作业(P108 第5题,P145第5题);
4、完成实验报告。
实验环境:
数据库系统:SQL Server 2000
实验过程:
在实验中发现的问题:
小结:
教师评语:
成绩:
第三篇:数据库上机实验报告
数据库上机实验报告
试验内容
1、数据表的建立
基本表《简单的》带有主键
带有外码约束的(外码来自其他表或者本表)
2、数据表的修改
添加删除列
修改列属性类型
添加删除约束(约束名)
元组的添加,修改,删除
删除数据表
试验过程
1、create
table
student
(sno
char(9)
primary
key,/*sno是主码
列级完整性约束条件*/
sname
char(20)
unique,/*sname取唯一值*/
ssex
char(2),sage
smallint,/*类型为smallint*/
sdept
char(20)
/*所在系*/);
create
table
course
(cno
char(4)
primary
key,/*列级完整性约束条件,cno是主码*/
cname
char(40),cpno
char(4),/*cpno的含义是先行课*/
ccredit
smallint,foreign
key
(cpno)
references
course(cno)
/*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是cno*/);
create
table
sc
(sno
char(9),cno
char(4),grade
smallint,primary
key
(sno,cno),/*主码有两个属性构成,必须作为表级完整性进行定义*/
foreign
key
(sno)
references
student(sno),/*表级完整性约束条件,sno是外码,被参照表是student*/
foreign
key
(cno)
references
course(cno),/*表级完整性约束条件,cno是外码,被参照表示course*/);
例
1、create
table
s
(cno
varchar(3),/*变长的字符串,输入2个字符就是两个字符不会补空格*/
sname
varchar(20),status
int,city
varchar(20),constraint
pk_sno
primary
key(sno),/*约束条件的名字为pk_sno*/);
create
table
p
(pno
varchar(3),pname
varchar(20),color
varchar(3),weight
int,constraint
pk_pno
primary
key
(pno),/*约束条件的名字是pk_pno*/);
create
table
j
(jno
varchar(3),jname
varchar(20),city
varchar(20),constraint
pk_jno
primary
key(jno)
/*约束条件的名字为pk_jno*/);
例
2、create
table
spj
(sno
varchar(3),/*第一个表中的主码*/
pno
varchar(3),jno
varchar(3),qty
int,/*数量*/
constraint
pk_spj
primary
key(sno,pno,jno),/*主码由3个属性组成*/
foreign
key(sno)
references
s(sno),/*表级完整性约束条件,sno是外码,被参照表是s*/
foreign
key(pno)
references
p(pno),/*表级完整性约束条件,pno是外码,被参照表是p*/
foreign
key(jno)
references
j(jno),
第四篇:数据库上机实验报告
数据库上机实验报告
试验内容
1、数据表的建立
基本表《简单的》带有主键
带有外码约束的(外码来自其他表或者本表)
2、数据表的修改
添加删除列
修改列属性类型
添加删除约束(约束名)
元组的添加,修改,删除
删除数据表
试验过程
1、createtablestudent
(snochar(9)primarykey,/*sno是主码列级完整性约束条件*/
snamechar(20)unique,/*sname取唯一值*/
ssexchar(2),sagesmallint,/*类型为smallint*/
sdeptchar(20)/*所在系*/);
createtablecourse
(cnochar(4)primarykey,/*列级完整性约束条件,cno是主码*/
cnamechar(40),cpnochar(4),/*cpno的含义是先行课*/
ccreditsmallint,foreignkey(cpno)referencescourse(cno)
/*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是cno*/);
createtablesc
(snochar(9),cnochar(4),gradesmallint,primarykey(sno,cno),/*主码有两个属性构成,必须作为表级完整性进行定义*/
foreignkey(sno)referencesstudent(sno),/*表级完整性约束条件,sno是外码,被参照表是student*/
foreignkey(cno)referencescourse(cno),/*表级完整性约束条件,cno是外码,被参照表示course*/);
例
1、createtables
(cnovarchar(3),/*变长的字符串,输入2个字符就是两个字符不会补空格*/
snamevarchar(20),statusint,cityvarchar(20),constraintpk_snoprimarykey(sno),/*约束条件的名字为pk_sno*/);
createtablep
(pnovarchar(3),pnamevarchar(20),colorvarchar(3),weightint,constraintpk_pnoprimarykey(pno),/*约束条件的名字是pk_pno*/);
createtablej
(jnovarchar(3),jnamevarchar(20),cityvarchar(20),constraintpk_jnoprimarykey(jno)/*约束条件的名字为pk_jno*/);
例
2、createtablespj
(snovarchar(3),/*第一个表中的主码*/
pnovarchar(3),jnovarchar(3),qtyint,/*数量*/
constraintpk_spjprimarykey(sno,pno,jno),/*主码由3个属性组成*/
foreignkey(sno)referencess(sno),/*表级完整性约束条件,sno是外码,被参照表是s*/
foreignkey(pno)referencesp(pno),/*表级完整性约束条件,pno是外码,被参照表是p*/
foreignkey(jno)referencesj(jno),/*表级完整性约束条件,jno是外码,被参照表是j*/);
2、数据表的更改
在s表中添加一个concat列
altertablesaddconcatvarchar(20)
在s表中删除concat列
altertablesdropcolumnconcat
更改s表concat列的属性把长度由20改为30
altertablesaltercolumnconcatvarchar(30)
联系方式名字为concat修改属性为唯一的属性名为con_concat
altertablesaddconstraintcon_concatunique(concat)
删除约束关系con_concat
altertablesdropconstraintcon_concat
/*插入一个元组*/
insertintosvalus(‘s1’,’精益’,20,’天津’)/*20不能写成’20’*/
试验中的问题的排除与总结:
1、在创建spj时
有三个实体所以从3个实体中取主码,还有一个数量属性也要写上
主码由那3个主码确定
2、更改一个数据库中数据表时一定要先使该数据库处于正在使用状态
3、constraint
是可选关键字,表示primarykey、notnull、unique、foreignkey或check约束定义的开始。约束是特殊属性,用于强制数据完整性并可以为表及其列创建索引。
4、--go可以不加但是要注意顺序注:go--注释提示错误
5、注意添加一个空元素用null
附sql备份
--创建一个数据库student
createdatabasestudent
go
--在数据库student中创建表studentcoursesc注意顺序
usestudent
--
createtablestudent
(snochar(9)primarykey,/*sno是主码列级完整性约束条件*/
snamechar(10)unique,/*sname取唯一值*/
ssexchar(2),sagesmallint,/*类型为smallint*/
sdeptchar(20)/*所在系*/);/*;要加*/
-----------
第五篇:地质数据库上机实验报告
《地质数据库设计与应用》上机实习报告
班级:姓名:学号:成绩:
五、实习中存在的主要问题
一、实习名称
二、实习目的三、实习内容
四、实习主要操作步骤(或所用主要命令、函数操作方法)