您的位置 >首页 > 星座 > 新闻正文

外键怎么用

外键怎么用


1.什么是外键

保证数据的参照完整性

外键的作用很重要,最好在数据库中使用。举一个例子比较明白。

比如有两张表格,一个是学生档案,另一个是上学期间的成绩单

档案中会有:学号,姓名。(学号为主键)

成绩单有(简化过的):学期号,学号,平均分数(学期号,学号两个同时为主键,学号同时为外键)

为了保证成绩单上的数据有效,所以要求录入学号时,必需保证档案中有这个学号,否则就不能录入。

从而保证了成绩单上的成绩数据的引用完整,否则将会是垃圾数据。

用程序控制,有很多缺点;录入成绩单时为了保证学号有效,首先要搜索档案,当档案很大时会影响效率。程序控制并不能保证百分之百引用完整性,尤其是并发操作。

说一个特例(主要是说明程序控制不好):

A录入成绩单,B在编辑档案。

当A录入张三的成绩,保存时,搜索张三存在,于是程序下一步就要存盘,但这时B恰好把张三删除了。但A那边的程序并不知道,于是就把一条垃圾数据存进数据库中了。

此例的操作流程正确与否不重要,但说明了程序控制并不是好方法。

2.oracle的外键怎么使用

1、外键是属于约束的一种,所谓约束顾名思义,就是限制你在数据库的操作。而你对数据库有什么操作,无非是增、删、改、查,外键起的作用就是让你在数据库帮助的情况下更合理的增加数据的正确度。

2、所以,外键只是辅助,并不能起到你说的【B.NAME是否也自动出现张三两个字】。

3、外键的作用是能够避免如下情况。

【班级信息表】存放的是班级信息表。

【学生表】存放的是学生信息,包含班级信息。

这个时候 在【学生表】中存放的班级信息应该在【班级信息表】存在才合法,自己人为控制的话难免有漏掉的情况,用外键则可以让数据库自动控制,当插入【学生表】中的数据在【班级信息表】不存在的时候,数据库不允许插入。

---

以上,希望对你有所帮助。

3.主键和外键

主键是本张表的主键,是唯一且非空的,而外键是另一张表中与这张表的某个字段的类型,字段名相同的字段,一般是用作关联两张或两张以上的数据表时用的。

以下面三张表为例:

有三张表,一张表是读者信息,有一个属性为readno,一张表是图书的信息,有一个属性是bookno,一张表是借阅关系,有两个属性分别以读者信息表中的readno,和图书信息表中的bookno为外键,我想问的是,在借阅关系表中插入数据时不是得自己写入readno和bookno吗,这样,设外键还有什么作用?

外键取值规则:空值或参照的主键值。

(1)插入非空值时,如果主键表中没有这个值,则不能插入。

(2)更新时,不能改为主键表中没有的值。

(3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。

(4)更新主键记录时,同样有级联更新和拒绝执行的选择。

简言之:

起约束作用,就是在借阅关系表中只能插入读者图书信息表中存在的值

不然会出错.

作用在于如果你插入的readno或者bookno在两个表中没有,就会插不进去

4.外键有什么用

键:唯一标识表中的所有行的一个列或一组列。

主键不允许空值。不能存在具有相同的主键值的两个行,因此主键值总是唯一标识单个行。

表中可以有不止一个键唯一标识行,每个键都称作候选键。只有一个候选键可以选作表的主键,所有其它候选键称作备用键。

尽管表不要求具有主键,但定义主键是很好的做法。 外键(FK): 是用于建立和加强两个表数据之间的链接的一列或多列。

通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。

例如:成绩表中的学号不能做成绩表的主键(因为一个学生可以有多行成绩数据),但每行的学号和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键 。(典型的一对多关系)。

为您推荐的相关新闻