MYSQL学习与数据库综合实验(六)——实体完整性实验

6.实体完整性实验

6.1定义

**实体完整性:**是指保证表中所有的行唯一。实体完整性要求表中的所有行都有一个唯一标识符。这个唯一标识符可能是一列,也可能是几列的组合,称为主键。也就是说,表中的主键在所有行上必须取唯一值。强制实体完整性的方法有:索引、UNIQUE约束、PRIMARY KEY约束或IDENTITY属性。

​ 如:student表中sno(学号)的取值必须唯一,它唯一标识了相应记录所代表的学生,学号重复是非法的。学生的姓名不能作为主键,因为完全可能存在两个学生同名同姓的情况。

6.2创建表时定义实体完整性:创建一个表 employee1,只含employeeID、name、gender和education列。以name为主键作为列name的完整性约束,employeeID为替代键作为表的完整性约束。

create table if not exists employee1(employeeID varchar(6) not null unique,name varchar(10) primary key,education varchar(10));

在这里插入图片描述

6.3创建表后定义实体完整:定义不含主键的表employee2,包含上述属性列,然后定义实体完整性,以employeeID为主码.

create table if not exists employee2( employeeID varchar(6) not  null,name varchar(10) not null,education varchar(6));
 alter table employee2 add primary key(employeeID);

在这里插入图片描述

6.4.设计记录增加到employee1表和employee2表,验证实体完整性是否起作用

insert into employee1 values("100","root","本科");
insert into employee1 values("100","root","本科");

在这里插入图片描述

insert into employee2 values("100","root","本科");
insert into employee2 values("100","root","本科");

在这里插入图片描述

可见employee1和employee2的完整性都得到了验证。

6.5详细的实验资料以及指导PPT请访问笔者GitHub地址:https://github.com/LJF2402901363/database_experiment.git

6.6本博文已经同步到个人博客,如有需要钱请移步:http://moyisuiying.com/index.php/experiment/mysqlexperiment/386.html

1. 在studentdb数据库中利用查询分析器创建以下3个表,同时完成数据完整性的定义(实体完整性、参照完整性和用户定义的域完整性): student(学生信息表): 主码 列名 数据类型 宽度 小数位 空否 取值范围 备 注 Pk sno char 5   N 学号   sname char 10   N 姓名   ssex char 2   Y 性别   sage smallint Y 不小于12 年龄 sdept char 15 Y 系名 course(课程表): 主码 列名 数据类型 宽度 小数位 空否 备 注 Pk cno Char 2   N 课程号   cname Char 20   Y 课程名称   cpno Char 2   Y 先行课号   ccredit smallint Y 学分 sc(学生选课表): 主码 列名 数据类型 宽度 小数 空否 外码 参照关系 取值范围 备 注 Pk sno Char 5   N Fk student 学号 cno Char 2   N Fk course 课程号   grade Decimal 5 1 Y 0≤x≤100 成绩 2. 在spjdb数据库中利用查询分析器创建以下4个表,同时完成数据完整性的定义(实体完整性、参照完整性和用户定义的域完整性): S(供应商信息表): 主码 列名 数据类型 宽度 小数位 空否 取值范围 备 注 Pk sno char 2   N 供应商号   sname char 10   N 供应商名称   status smallint Y 大于0 供应商状态 city char 10 Y 所在城市 P(零件信息表): 主码 列名 数据类型 宽度 小数位 空否 取值范围 备 注 Pk pno char 2   N 零件号   pname char 10   N 零件名称 color char 2 Y 颜色   weight smallint Y 大于0 重量 J(工程项目表): 主码 列名 数据类型 宽度 小数位 空否 取值范围 备 注 Pk jno char 2   N 工程项目号   jname char 10   N 工程项目名称 city char 10 Y 所在城市 SPJ(供应情况表): 主码 列名 数据类型 宽度 小数 空否 外码 参照关系 取值范围 备 注 Pk sno Char 2   N Fk S 供应商号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌意随影

您的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值