数据库-主键、外键
来源:互联网 发布:js 插件写法 面向对象 编辑:程序博客网 时间:2024/06/05 23:42
1:什么是主键
在一张表中,用来唯一标识一条记录的字段集,叫做主关键字或者主关键码,简称主键(或主码),这里说"字段集"是因为主键可能用一个字段或者多个字段来表示。举例来看:
学生表(学号, 姓名, 性别,专业编号),这里学号是主键,一个学号id就可以唯一标识一个学生的信息。另一个表:学生选课表(学号, 课程号, 成绩),这里(学号, 课程号)是主键,因为一个学号(即一个学生)可以选择多门课程,一个课程号(即一个课程)可以被多个学生选择,无法用一个字段来标识一条学生选课的信息记录,而使用(学号, 课程号)这两个字段作为关键字就可以唯一标识学生的选课信息。
2:什么是外键?
一张表的非主属性是另一个表的主属性就是这个表的外键。这里有两个分别为: 学生表(学号, 姓名, 性别,专业编号),专业信息表(专业编号,专业名称,专业备注信息)。学生表中主键是学号,专业信息表中主键是专业编号。学生表中的非主属性专业编号恰好是专业信息表中的主键。我们就称这个专业编号是学生表的外键。像这样,一个表的非主属性是另一个表的主属性,该非主属性就是外键。
概念定义:什么是父表和子表?
有两张表A表和B表,表A中的一个字段id是外键,表B中的一个字段id是主键,那么称B为父表,A为子表。就是说一个表中外键字段(相当于这里的A表)是另一个表中(相当于这里的B表)的主键。 还是上面的两个表来举例理解:学生表(学号, 姓名, 性别,专业编号),专业信息表(专业编号,专业名称,专业备注信息)。这里学生表是子表,专业信息表是父表。
设置表的外键的作用在于建立与父表的联系,比如在专业信息表中某个专业编号的id为'1001',删除这个id后,则学生表中的专业编号id为'1001'的记录也随着删除,这样做的目的在于保证表的完整性。
数据库的三种约束
2.参照完整性约束,即外键的约束,某一外键的值必须在它引用的主键字段中存在。如,学生表中专业编号属性的值,必须都存于专业信息表中的专业编号属性中。想一想也就明白了,一个学生(大学生)怎么可能属于一个不存在的专业。
3.用户自定义完整性约束,指的是一些用户自己设定的约束,例如字段是否可以为空,字段值的取值范围(如:人的性别只能取男、女)。
- 数据库-主键、外键
- 外键 外键表、主键表 数据库
- 数据库之主键、外键、索引
- 数据库概念:主键,外键,索引
- 数据库中主键,外键,索引
- 数据库主键、外键、表结构查询
- 数据库扫盲一(主键、外键)
- 数据库约束 主键-唯一性-Check-外键
- MySQL数据库(主键、索引、外键、触发器...)
- 数据库:超键、候选键、主键、外键
- 数据库的范式,主键,外键,候选键
- hibernate主键和数据库主键
- 数据库学习--基于postgreSQL的数据库设计与主键 外键
- 数据库主键设计原则
- 数据库主键的设计
- 数据库主键选取策略
- 数据库主键讨论
- 数据库主键生成策略
- 1067. 试密码(20)
- HEVC/H.265参考代码跟踪
- 准技术人员的职业发展应该注意什么
- MySQL并发更新数据加锁处理
- 【Tensorflow 实战】实现欧式距离
- 数据库-主键、外键
- Mac 安装Qt
- MediaMuxer和MediaExtractor类(音频和视频数据的混合和分离)
- wordpress更新
- SAO为例浅析跟踪HM代码
- Protobuf 序列化和反序列化源码分析
- 模拟实现strncat( )函数
- 关于时间计算的工具类 DateTool
- 变量名跟对象实体的关系