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 part2
DROP CONSTRAINT partkey_1;
7.增加记录,验证实体完整性是否起到作用
SELECT *
FROM nation;INSERT
INTO nation
VALUES(40,'中华人民共和国',1,'china');

3.注意

可以使用CONSTRAINT 对实体完整性命名,方便对其修改和删除。

SQL语句(七)实体完整性相关推荐

  1. 命令行执行SQL语句

    由于之前一直使用可视化界面执行SQL语句,对于命令行执行SQL语句比较陌生,所以,今天尝试了一下,并记录下来,与大家分享: 一.win+r进入doc窗口: 二.找到你电脑里的mysql server安 ...

  2. Java学习的第七周之简单的SQL语句

    Java学习的第七周之简单的SQL语句 一 简单SQL语句: 1.查询表结构 desc 表名; 2.插入数据 --方式一: 默认全部插入数据INSERT INTO 表名 VALUES (值1,值2,值 ...

  3. sql语句统计最近七天,30天的数据, 统计当天数据总和,统计当天每小时的数据,今日金额的支出

    sql语句统计最近七天的数据 SELECTdate_format( a.date, '%c.%d' ) times,b.count AS totals FROM( SELECTcurdate( ) A ...

  4. 第七节:EF Core调用SQL语句和存储过程

    一. 查询类(FromSql) 1.说明 A. SQL查询必须返回实体的所有属性字段. B. 结果集中的列名必须与属性映射到的列名相匹配. C. SQL查询不能包含关联数据 D. 除Select以为的 ...

  5. mysql5.7.17 32_mysql—MySQL 5.7.17安装及基本SQL语句(第七章)

    DBS ------- DataBase System 数据库系统 以关系(二维表)的方式的存储数据 记录 Record 字段/属性Column 数据库, 库 约束 Constraint 域约束:数据 ...

  6. mysql语句在哪编写_mysql常见问题七:编写sql语句

    一.删除除了学号字段以外,其它字段都相同的冗余记录,只保留一条!(也就是要删除凤姐和田七中一条重复数据只留一条) 要求结果数据: 原始数据: CREATE TABLEtbl_students ( id ...

  7. Sql 语句中 IN 和 EXISTS

    原文链接:  (2条消息)Sql 语句中 IN 和 EXISTS 的区别及应用 - jcpp9527的博客 - CSDN博客 https://blog.csdn.net/wqc19920906/art ...

  8. 15000 字的 SQL 语句大全

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 链接:cnblogs.com/liuqifeng/p/914883 ...

  9. 数据库 sql 语句优化

    目录 1.查询 SQL 尽量不要使用 select *,而是 select 具体字段 2.如果知道查询结果只有一条或者只要最大/最小一条记录,建议用 limit 1 3.应尽量避免在 where 子句 ...

  10. 用一个类根据Model属性生成SQL语句

    想到写这个的原因是我和我的一个朋友在写一个开源项目的时候,我负责了数据库的持久化存储部分,结果他看到了我的数据库数据存储结构之后直接傻眼了,因为个人比较简单粗暴,直接把一个数据Model归档成为二进制 ...

最新文章

  1. poj12月其他题解(未完)
  2. vue.cli脚手架初次使用图文教程
  3. AAC音频文件时长计算
  4. 自定义ArcGIS JavaScript 工具条样式
  5. Python工程师具备哪些技能才能提升求职机率?
  6. 电子书下载:Illustrated C# 2012 4th
  7. rdd后面[]中的数字是啥意思
  8. OpenCV学习笔记04:在Visual Studio上使用OpenCV4.5.5
  9. Theano 中文文档 0.9 - 5.4 CentOS 6安装说明
  10. 禁用sslv3协议linux,SSLv3协议漏洞修复方法
  11. CentOS6.5恢复误删除的文件
  12. 实施ERP过程中必须注意的“后天条件”
  13. 相机标定-opencv
  14. 亲戚关系php,中国亲属关系称谓表
  15. 大数据相关面试题整理-带答案-难一点
  16. win10如果虚拟化服务器,win10虚拟化服务器配置
  17. 一键脚本搭建docker redis 集群(cluster)
  18. 极限交付:软件项目外包成功的保障
  19. 数字孪生智慧医院:构建三维人体监测可视化管理平台(三)
  20. Dell6400拆卸与维护

热门文章

  1. 铁路售票系统应用软件需求分析报告
  2. html 图片加锚点,html中锚点的实现
  3. LIN总线物理层介绍之总线特性
  4. 微信公众平台开发教程(十一)微信企业号上线
  5. Revit中图元不可见怎么办?插件太多怎么办?
  6. 哈哈日语 学渣的日语N1失败经验谈
  7. VBS基础篇 - 对象(4) - Drive对象
  8. 32岁小伙带着252万退休了:这些理财知识,你越早知道越好
  9. 移动端调试神器 whistle
  10. 鸿蒙操作系统开源是什么意思鸿,鸿蒙操作系统开源,你会支持吗?