本文共 2668 字,大约阅读时间需要 8 分钟。
1.实体完整性
简单的说,实体完整性就是数据库表的主码唯一且不为空。主码可以是关系的一个属性(即数据库表的一列),也可以是关系的属性组(即表格的多个列),主码可以唯一的标识元组(即数据库表的一行)。
2.实例
1. 创建表时定义列级实体完整性①定义供应商表的实体完整性CREATE TABLE supp(/*供应商基本表*/ suppkey INTEGER CONSTRAINT supp_1 PRIMARY KEY, /*供应商编号*/ name CHAR(50), /*供应商名称*/ address VARCHAR(80), /*供应商地址*/ nation INTEGER REFERENCES nation(nationkey),/*国家编号*/ phone CHAR(30), /*供应商电话*/ acctbal REAl, comment VARCHAR(101) /*备注*/);②定义地区表的实体完整性CREATE TABLE regi(/*地区表*/ regionkey INTEGER CONSTRAINT regi_1 PRIMARY KEY,/*地区编号*/ name CHAR(25), /*地区名称*/ comment CHAR(152) /*备注*/);2. 创建表时定义表级实体完整性①定义供应商表的实体完整性CREATE TABLE supp2(/*供应商基本表*/ suppkey INTEGER , /*供应商编号*/ name CHAR(50), /*供应商名称*/ address VARCHAR(80), /*供应商地址*/ nation INTEGER REFERENCES nation(nationkey),/*国家编号*/ phone CHAR(30), /*供应商电话*/ acctbal REAl, comment VARCHAR(101) , /*备注*/ CONSTRAINT supp_2 PRIMARY KEY(suppkey));②定义地区表的实体完整性CREATE TABLE regi2(/*地区表*/ regionkey INTEGER , /*地区编号*/ name CHAR(25), /*地区名称*/ comment CHAR(152), /*备注*/ CONSTRAINT regi_2 PRIMARY KEY(regionkey));3.定义表后定义实体完整性CREATE TABLE part2(--先定义零件基本表 partkey INTEGER NOT NULL, /*零件编号*/ name VARCHAR(100), /*零件名称*/ mfgr CHAR(50), /*制造厂*/ brand VARCHAR(50), /*品牌*/ type VARCHAR(25), /*零件类型*/ size INTEGER, /*尺寸*/ container CHAR(10), /*包装*/ retailprice REAL, /*零售价格*/ comment VARCHAR (23) /*备注*/);ALTER TABLE part2--再修改零件基本表,增加实体完整性ADD CONSTRAINT partkey_1 PRIMARY KEY(partkey);4.主码由多个属性组成时,定义实体完整性CREATE TABLE partsupp2(/*零件供应联系表*/ partkey INTEGER ,/*零件编号*/ suppkey INTEGER ,/*供应商编号*/ availqty INTEGER,/*可用数量*/ supplycost REAL,/*供应价格*/ comment VARCHAR(199),/*备注*/ PRIMARY KEY(partkey,suppkey)/*定义主码*/ );5.有多个候选码时定义实体完整性CREATE TABLE nation2(/*国家表*/ nationkey INTEGER , /*国家编号*/ name CHAR(25) UNIQUE, /*国家名称*/ regionkey INTEGER REFERENCES region(regionkey),/*地区编号*/ comment VARCHAR(152), /*备注*/ CONSTRAINT nationkey_2 PRIMARY KEY(nationkey));6.删除实体完整性ALTER TABLE part2DROP CONSTRAINT partkey_1;7.增加记录,验证实体完整性是否起到作用SELECT *FROM nation;INSERTINTO nationVALUES(40,'中华人民共和国',1,'china');
3.注意
可以使用CONSTRAINT 对实体完整性命名,方便对其修改和删除。
转载地址:http://dxyni.baihongyu.com/