如何在MySQL中设置外键约束以及外键的作用(mysql数据库--外键约束及外键使用)

mysql 主外键 在MySQL中如何设置主键和外键

大家好,今天小编来为大家解答以下的问题,关于如何在MySQL中设置外键约束以及外键的作用,为什么不建议使用外键约束这个很多人还不知道,现在让我们一起来看看吧!

本文目录

  1. 如何在MySQL中设置外键约束以及外键的作用
  2. 什么是主键什么是外键它们之间有什么关系
  3. 什么是外键外键如何使用
  4. 在SQL中什么是外键,怎样建立外键约束

如何在MySQL中设置外键约束以及外键的作用

外键的作用:外键主要用来保证数据的完整性和一致性,便于关系数据的日常维护。是两张关系表中的主表数据修改或删除是自动操作字表中的数据。(外键并不是费用不可,通过程序逻辑上的操作完全可以替代)

注意事项:

1、两个表必须是InnoDB表,MyISAM表暂时不支持外键

2、如果在较早的版本(4.1.2以前)则需要显示建立外键列必须建立了索引

3、外键关系的两个表的列必须是数据类型相似。比如int和tinyint可以,而int和char则不可以

外键约束使用最多的两种情况:

1)父表更新时子表也更新,父表删除时如果子表有匹配的项,删除失败;

2)父表更新时子表也更新,父表删除时子表匹配的项也删除。

前一种情况,在外键定义中,用ONUPDATECASCADEONDELETERESTRICT;

后一种情况,可以使用ONUPDATECASCADEONDELETECASCADE。

举例说明:用最常见的场景:文章表,和分类表;

创建外键约束:

ALTERTABLE`article`ADDCONSTRAINT`fk_1`FOREIGNKEY(`category_id`)REFERENCES`category`(`id`);

现在删除分类表中的一条数据:

文章表添加一条数据:

这样是不是就保证了文章表里的分类ID都能在分类表找到对应的名称啦?

下面我们删除外键重新创建:

什么是主键什么是外键它们之间有什么关系

主键:能够唯一表示数据表中的每个记录的字段或者字段的组合就称为主键。

一个主键是唯一识别一个表的每一行记录,但这只是其作用的一疗分,主键的主要作用是将记录和存放在其他表中的数据进行关联,在这一点上,主键是不同表中各记录间的简单指针,主键约整就是确定表中的每一条记录,主键不能是空值,唯一约束是用于指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值,所以,主键的值对用户而言是没有什么意义,并且和它赋予的值也没有什么特别联系。

外键:若有两个表A,B,C是A的主键,而B中也有C字段,则C就是表B的外键,外键约束主要用来维护两个表之间数据的一致性。

A为基本表,B为信息表。

在数据库中,常常不只是一个表,这些表之间也不是相互独立的,不同的表之间需要建立一种关系,才能将它们的数据相互沟通,而在这个沟通过程中,就需要表中有一个字段作为标志,不同的记录对应的字段取值不能相同,也不能是空白的,通过这个字段中不同的值可以区别各条记录,就像我们区别不同的人,每个人都有名字,但它却不能作为主键,因为人名很容易出现重复,而身份证号是每个人都不同的,所以可以根据它来区别不同的人,数据库的表中作为主键的段段就要像人的身份证号一样,必须是每个记录的值都不同,这才能根据主键的值来确定不同的记录。

关系:外键一定是另外某个表的主键。

什么是外键外键如何使用

外键是表里某个字段,或是一些字段(引用的其它表里主码)外键就是用来实现外键约束,即检查参照完整性(外键取值不能超过所引用的主码的范围)。

在SQL中什么是外键,怎样建立外键约束

外键就是一个连接的表而已,一般情况下我们都会设计主外键,就是为了让两张表的数据进行连接,然后并做约束,只需要正常的加两张表的约束,建立到一起就可以了。

OK,关于如何在MySQL中设置外键约束以及外键的作用和为什么不建议使用外键约束的内容到此结束了,希望对大家有所帮助。

mysql怎么设主键和外键 在MySQL中如何设置主键和外键

本文内容来自互联网,若需转载请注明:https://bk.66688891.com/12/122781.html