SQL关系-主键,外键

来源:互联网 发布:淘宝产品权重 编辑:程序博客网 时间:2024/06/06 05:07

一、定义:
主键--唯一标识一条记录,不能有重复的,不允许为空


外键--表的外键是另一表的主键,外键可以有重复的,可以是空值


二、作用:


主键--用来保证数据完整性


外键--用来和其他表建立联系用的


 三、个数:


主键--主键只能有一个


外键--一个表可以有多个外键


四、SQL中主键和外键的关系及运用


1.两实体间主外键关系就是一对多的关系。
例如:学生和班级之间就是一对多关系。
             班级是一;学生是多
             班级表包含主键(classpk);
             学生表包含对班级表的引用(classpk)
             这个引用关系就是通常说的外键,外键即使其他表的主键,在这里学生表中classpk就是来自于班级表中的主键。

             所以说:学生表是外键表,班级表是主键表。


2.外键表和主键表其实是相对的,某个表既可以是其他表的主键表,也可以是另一个或者另一些表的外键表,即某个表既可以是外键表也可以是主键表。
例如:  a 和 b 是1对多关系,那么a是主键表,b是外键表。
              c 和 a 是 1对多关系,那么c是主键表,a是外键表。

              综上可以发现a既可以是主键表,又可以是外键表。


3.在外键表中增加一行时数据,必先保证外键已经存在。 就是说插入数据时,外键必须已经存在于主键表中。
 (外键就是来源于主键表的主键嘛)

例如:先有班级后有学生,插入一个学生必须保证,班级先存在。


4.删除主键表时,必须首先删除主键表关联的所有外键表中的信息。

例如:删除一个班级之前,必须删除首先删除该班级所有的学生。


5.删除外键表中的数据时,对主键表不会有任何影响。

例如:删除一个学生对班级不会有影响。


6.实体之间的多对多关系,其实就是建立一个中间表,中间表包含多对多实体之间的外键。

例如:a 和 b 多对多


7.采用级联的方法,当含有主键的表中的数据删除时,外键表的数据自动进行删除操作。
0 0
原创粉丝点击