实验4视图操作数据完整性定义与检查.doc
文本预览下载声明
实验报告
课程名称数据库原理实验
成绩实验名称实验4 视图操作、数据完整性定义与检查学号姓名 班级B100508日期2012/11/1实验目的:
1.掌握视图定义及其查询。
2.掌握用数据完整性约束的定义及违约处理。实验条件:
微机1台、SQL Server 2005实验内容与步骤:
一、现有“零件供应”数据库,其中包含3个表:
供应商(供应商号,名称,电话,所在地)
零件(零件号,零件名,单价)
供应(供应商号,零件号,数量)
在该数据库中,建立一个表示供应商供应零件情况的视图SP,包括三个表中所有的列,写出创建该视图的语句(建议将视图的列名定义为英文,如PNO)。
2.在视图SP中完成下列查询,写出对应的查询语句:
(1)统计每种零件(零件号)及其供应总量。
(2)查询北京地区的供应商及其供应的零件号、零件名、单价及其数量。
二、假设在“职工信息”数据库有下面两个关系:
职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;
部门(部门号,名称,经理名,电话),其中部门号为主码。
用SSMS创建“职工信息”数据库。
2.如下给出了创建“部门”表的CREATE TABLE语句,请修改该语句,补充其主码定义,并定义Deptname列非空且唯一,然后执行该语句。
create table dept
(
deptno char(2) primary key,
deptname varchar(20) not null unique,
manager varchar(10),
phone char(15)
);
3.如下给出了创建“职工”表的CREATE TABLE语句,请修改该语句,补充其主码定义、参照完整性定义,并定义职工年龄不得小于18岁或大于60岁,然后执行该语句。
create table emp
(
empno char(4) primary key,
ename varchar(10),
age tinyint check(age=18 and age=60),
job varchar(9),
sala int,
deptno char(2),
foreign key (deptno) references dept(deptno)
);
4.顺序执行如下语句,记录其执行成功或失败,如果失败,说明失败的原因
(1)INSERT INTO DEPT VALUES(01,销售部,null,null)
(2)INSERT INTO DEPT VALUES(02,生产部,null,null)
成功:
(3)INSERT INTO DEPT VALUES(01,计划处,null,null)
失败:违反了??体完整性的主键唯一原则。
(4)INSERT INTO DEPT VALUES(03,null,null,null)
失败:违反了自定义完整性的not null原则。
(5)INSERT INTO EMP VALUES(0101,章意,20,科员,2000,01)
成功:
(6)INSERT INTO EMP VALUES(0301,张欣,30,经理,3000,03)
失败:违反了参照完整性的参照表中的外码必须是为空或者被参照表中主码的某个值。
(7)INSERT INTO EMP VALUES(0201,李佳,17,科员,1500,02)
失败:违反了自定义完整性,年龄必须在18到60岁之间。
(8)DELETE FROM DEPT WHERE Deptno=01
失败:因为会破坏参照完整性。实验总结(结论或问题分析):
通过本次试验更加熟悉了对数据库的操作。学会了视图的建立与对视图的查询等操作。更加熟悉了数据库的完整性约束,有三种约束分别为 = 1 \* GB3 ①实体完整性 = 2 \* GB3 ②参照完整性 = 3 \* GB3 ③用户自定义完整性,这些完整性使得对数据的操作更加的准确,同时也避免了对数据的非法破坏。使数据库用起来高、效简洁、安全。
显示全部