《数据库系统原理》实验报告(7)
一、 实验目的
1、 掌握实体完整性的定义和维护方法; 2、 掌握参照完整性的定义和维护方法; 3、 掌握用户自定义完整性的定义和维护方法;
二、 实验内容和要求
1、定义实体完整性,删除实体完整性。能够写出两种方式定义实体完整性的SQL语句:创建表时定义实体完整性、创建表后定义实体完整性。设计SQL语句验证完整性约束是否起作用。
2、定义参照完整性,定义参照完整性的违规处理,删除参照完整性。写出两种方式定义参照完整性的SQL语句:创建表时定义参照完整性、创建表后定义参照完整性。
3、针对具体应用语义,选择NULL/NOT NULL、DEFAULT、UNIQUE、CHECK等,定义属性上的约束条件。
三、实验过程
1、实体完整性实验
(1)创建表时定义实体完整性(列级实体完整性) 定义供应商表的实体完整性。 CREATE TABLE Supplier(
suppkey INSERT CONSTRAINT PK_supplier PRIMARY KEY, name CHAR(25),
address VARCHAR(40), nationkey INSERT, phone CHAR(15), acctbal REAL,
comment VARCHAR(101));
(2)创建表时定义实体完整性(表级实体完整性) 定义供应商表的实体完整性。
CREATE TABLE Supplier( suppkey INSERT, name CHAR(25),
address VARCHAR(40), nationkey INSERT, phone CHAR(15), acctbal REAL,
comment VARCHAR(101),
CONSTRAINT PK_supplier PRIMARY KEY(suppkey));
(3)创建表后定义实体完整性 定义供应商表。
CREATE TABLE Supplier( suppkey INSERT, name CHAR(25),
address VARCHAR(40), nationkey INSERT, phone CHAR(15), acctbal REAL,
comment VARCHAR(101));
ALTER TABLE Supplier /*再修改供应商表,增加实体完整性*/ ADD CONSTRAINT PK_Supplier PRIMARY KEY(suppkey);
(4)定义实体完整性(主码由多个属性组成) 定义供应关系表的实体完整性。
CREATE TABLE PartSupp( partkey INTEGER, suppkey INTEGER, availqty INTEGER, supplycost REAL,
comment VARCHAR(199),
PRIMARY KEy (partkey,suppkey));
/*主码由多个属性组成,实体完整性必须定义在表级*/
(5)有多个候选码时定义实体完整性
定义国家表的实体完整性,其中nationkey和name都是候选码,选择nationkey作为主码,name上定义唯一性约束。
CREATE TABLE nation (
nationkey INTEGERCONSTRAINT PK_nation PRIMARY KEY, name CHAR (25) UNIQUE, regionkey INSERT,
comment VARCHAR(152));
(6)删除实体完整性 删除国家实体的主码。
ALTER TABLE nation DROP CONSTRAINT PK_nation;
(7)增加两条相同记录,验证实体完整性是否起作用 /*插入两条主码相同的记录就会违反实体完整性约束*/
INSERT INTO Supplier(suppkey,name,address,nationkey,phone,acctbal,comment) VALUES(11,'test1','test1',101,'12345678',0.0,'test1');
INSERT INTO Supplier(suppkey,name,address,nationkey,phone,acctbal,comment) VALUES(11,'test2','test2',102,'23456789',0.0,'test2');
2、参照完整性实验
(1)创建表时定义参照完整性
先定义地区表的实体完整性,再定义国家表上的参照完整性。
CREATE TABLE region(
regionkey IINTEGER PRIMARY KEY, name CHAR(25),
comment VARCHAR(152));
CREATE TABLE nation(
nationkey IINTEGER PRIMARY KEY, name CHAR(25),
regionkey INTEGER REFERENCES Region(regionkey),/*列级参照完整性*/ comment VARCHAR(152)); 或者
CREATE TABLE nation(
nationkey INTEGER PRIMARY KEY, name CHAR(25), regionkey INTEGER,
comment VARCHAR(152),
CONSTRAINT FK_Nation_regionkey FOREIGN KEY (regionkey) REFERENCES Region(regionkey));/*表级参照完整性*/
(2)创建表后定义参照完整性 定义国家表的参照完整性。
CREATE TABLE nation(
nationkey INTEGER PRIMARY KEY, name CHAR(25), regionkey INTEGER,
comment VARCHAR(152));
ALTER TABLE Nation
FOREIGN KEY (regionkey)REFERENCES Region(regionkey);
(3)定义参照完整性(外码由多个属性组成) 定义订单项目表的参照完整性。
CREATE TABLE PartSupp( partkey INTEGER, suppkey INTEGER, availqty INTEGER, supplycost REAL,
comment VARCHAR(199),
PRIMARY KEy (partkey,suppkey));
CREATE TABLE Lineitem(
orderkey INTEGER REFERENCES Orders(orderkey), partkey INTEGER REFERENCES Part(partkey),
suppkey INTEGER REFERENCES Supplier(suppkey), linenumber INTEGER, quantity REAL, extendedprice REAL, discount REAL, tax REAL,
returnflag CHAR(1), linestatus CHAR(1), shipdate DATE, commitdate DATE, receiptdate DATE,
shipinstruct CHAR(25), shipmode CHAR(10), comment VARCHAR(44),
PRIMARY KEY (orderkey,linenumber),
FOREIGN KEY (partkey,suppkey) REFERENCES PartSupp(partkey,suppkey));
(4)定义参照完整性的违约处理
定义国家表的参照完整性,当删除或修改被参照表时,设置参照表中相应记录的值为空值。
CREATE TABLE nation(
nationkey INTEGER PRIMARY KEY, name CHAR(25), regionkey INTEGER,
comment VARCHAR(152),
CONSTRAINT FK_Nation_regionkey FOREIGN KEY (regionkey)
REFERENCES Region(regionkey) ON DELETE SET NULL ON UPDATE SET NULL);
(5)删除参照完整性 删除国家表的外码
ALTER TABLE nation DROP CONSTRAINT FK_Nation_regionkey;
(6)插入一条国家纪录,验证参照完整性是否起作用
/*插入一条国家纪录,如果‘1001’号地区记录不存在,违反参照完整性约束。*/ …… 此处隐藏:1886字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




