iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中的外键作用是什么
  • 512
分享到

MySQL中的外键作用是什么

2024-04-02 19:04:59 512人浏览 独家记忆
摘要

小编给大家分享一下Mysql中的外键作用是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!MySQL外键的作用:保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,

小编给大家分享一下Mysql中的外键作用是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

MySQL外键的作用:

保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,外键只能引用外表中列的值!

我们来建两个表

CREATE TABLE `example1` (
  `stu_id` int(11) NOT NULL DEFAULT '0',
  `course_id` int(11) NOT NULL DEFAULT '0',
  `grade` float DEFAULT NULL,
  PRIMARY KEY (`stu_id`,`course_id`)
);
CREATE TABLE `example2` (
  `id` int(11) NOT NULL,
  `stu_id` int(11) DEFAULT NULL,
  `course_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `f_ck` (`stu_id`,`course_id`),
  CONSTRaiNT `f_ck` FOREIGN KEY (`stu_id`, `course_id`) REFERENCES `example1` (`stu_id`, `course_id`)
);
insert into example1 (stu_id,course_id,grade)values(1,1,98.5),(2,2,89);
insert into example2 (id,stu_id,course_id)values(1,1,1),(2,2,2);

我们建了

example1表,里面包含stu_id学号,course_id课程号,grade分数

example2表,里面包含id,stu_id学号,course_id课程号,然后建立外键

分别插入数据到两个表中。

我们把example2中的stu_id和course_id称为example2表的外键,example1是父表,example2是字表,两个表形成关联,必须字表的数据删除后,才能删除父表中的对应数据

现在我们来删除example1中的一条数据

delete from example1 where stu_id=2;

会发现报错

ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`test`.`example3`, CONSTRAINT `f_ck` FOREIGN KEY (`stu_id`, `course_id`) REFERENCES `example2` (`stu_id`, `course_id`))

因为example2中的数据关联了example1的数据,这样是删不了的,达到了外键的作用;

然后我们来先删除example2表中的数据,再删除example1表中的数据

delete from example2 where stu_id=2;
delete from example1 where stu_id=2;

这样就成功了;

事件触发限制:

on delete和on update , 可设参数cascade(跟随外键改动), restrict(限制外表中的外键改动),set Null(设空值),set Default(设默认值),[默认]no action

我们来看看事件触发限制是干嘛的。。。

我们先删除外键,然后重新建立外键带上事件触发限制

alter table example2 drop foreign key f_ck; alter table example2 add CONSTRAINT `f_ck` FOREIGN KEY (`stu_id`, `course_id`) REFERENCES `example1` (`stu_id`, `course_id`) ON DELETE CASCADE ON UPDATE CASCADE;

我们先查看一下数据

mysql> select * from example1;select * from example2;
+--------+-----------+-------+

| stu_id | course_id | grade |

+--------+-----------+-------+

|      1 |         1 |  98.5 |

+--------+-----------+-------+

1 row in set (0.00 sec)

+----+--------+-----------+

| id | stu_id | course_id |

+----+--------+-----------+

|  1 |      1 |         1 |

+----+--------+-----------+

1 row in set (0.00 sec)

这时example1和example2中的stu_id和course_id都是1,

再来修改example1表中的数据看看

update example1 set stu_id=3,course_id=3 where stu_id=1;

再来查看数据

mysql> select * from example1;select * from example2;
+--------+-----------+-------+

| stu_id | course_id | grade |

+--------+-----------+-------+

|      3 |         3 |  98.5 |

+--------+-----------+-------+

1 row in set (0.00 sec)

+----+--------+-----------+

| id | stu_id | course_id |

+----+--------+-----------+

|  1 |      3 |         3 |

+----+--------+-----------+

1 row in set (0.00 sec)

发现没,example1和example2中的stu_id和course_id都变成了3

我们在来删除example1表中的数据

delete from example1 where stu_id=3;

会发现可以删除,而且example2中的数据也没有了;

其实啊,外键就这个作用,保持数据一致性,完整性,是不让改还是一起改,由事件触发器决定;

看完了这篇文章,相信你对MySQL中的外键作用是什么有了一定的了解,想了解更多相关知识,欢迎关注编程网数据库频道,感谢各位的阅读!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中的外键作用是什么

本文链接: https://www.lsjlt.com/news/50859.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL中的外键作用是什么
    小编给大家分享一下MySQL中的外键作用是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!MySQL外键的作用:保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,...
    99+
    2024-04-02
  • MYSQL外键的作用是什么
    MYSQL外键的作用是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  MYSQL外键是什么  定义:外键是相对于主键说的,是建立表之间联...
    99+
    2024-04-02
  • MySQL设置外键的作用是什么
    MySQL设置外键的作用是确保数据库之间的关系完整性,保证数据的一致性和有效性。通过外键约束,可以限制某些表的数据只能在另一个表中找...
    99+
    2024-03-06
    MySQL
  • MySQL外键约束的作用是什么
    MySQL外键约束的作用是确保在相关表之间的数据完整性和一致性。外键约束定义了一个表中的列或一组列,这些列的值必须匹配另一个表中的主...
    99+
    2023-08-30
    MySQL
  • mysql中的外键是什么
    本篇内容介绍了“mysql中的外键是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Foreign ke...
    99+
    2024-04-02
  • mysql中的外键的作用
    mysql 中的外键扮演着约束关系和数据维护者的角色,具有三个主要作用:确保表之间的引用完整性,防止因删除或更新表记录而造成数据不一致;通过规则级联强制在表之间执行操作,确保引用完整性和...
    99+
    2024-05-01
    mysql
  • 什么是MySQL的主键和外键
    在MySQL数据库中,主键是用于唯一标识每一行数据的字段,确保表中每一行都具有唯一的标识符。主键字段的值不能为NULL,并且每一行数...
    99+
    2024-04-09
    MySQL
  • mysql中的外键有什么用
    本篇内容主要讲解“mysql中的外键有什么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql中的外键有什么用”吧! 在mys...
    99+
    2024-04-02
  • mysql中exists关键字的作用是什么
    在MySQL中,EXISTS关键字用于检查子查询是否返回任何行。如果子查询返回至少一行,则EXISTS返回TRUE,否则返回FALS...
    99+
    2024-04-09
    mysql
  • 什么是SQLServer中的外键
    在SQL Server中,外键是用来建立两个表之间关系的一种约束。外键用于确保两个表之间的数据一致性,它指定了一个表中的列(子表)引...
    99+
    2024-04-09
    SQLServer
  • navicat设置外键约束的作用是什么
    在Navicat中设置外键约束的作用是保证数据的完整性和一致性。通过设置外键约束,可以确保在一个表中的外键字段只能包含另一个表中已存...
    99+
    2024-03-06
    navicat
  • sql中外键是什么
    外键是 sql 数据库中表之间建立的数据完整性约束,它表示一个表中的列引用了另一个表中的主键列。外键通过参照完整性、级联操作和数据关系管理来确保数据的完整性和一致性。 什么是 SQL ...
    99+
    2024-05-10
  • mysql设置主键的作用是什么
    这篇文章给大家分享的是有关mysql设置主键的作用是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql设置主键的作用是:1、唯一地标识表中的每一行,通过它可强制表的实体...
    99+
    2024-04-02
  • mysql禁用外键约束的方法是什么
    在MySQL中,可以通过以下方法禁用外键约束: 使用ALTER TABLE语句禁用外键约束: ALTER TABLE table...
    99+
    2023-10-26
    mysql
  • mysql创建外键的方法是什么
    在MySQL中创建外键的方法如下: 1、在创建表时指定外键约束。例如,假设我们有两个表,一个是students表,另一个是cours...
    99+
    2024-03-07
    mysql
  • MySQL中外键和主键的自动连接机制是什么?
    MySQL中外键和主键的自动连接机制是通过建立外键约束来实现的。外键约束是一种关系约束,在一个表中的字段与另一个表中的字段建立关联,从而确保数据的一致性和完整性。主键是一个表中唯一标识...
    99+
    2024-03-15
  • sql中外键的作用
    外键在 sql 中维护数据完整性和一致性,通过引用另一个表的主键来建立两个表之间的关系。它们强制参照完整性,确保引用记录在被引用表中存在,并触发级联操作,在修改或删除记录时自动更新相关表...
    99+
    2024-05-02
  • mysql外键约束是什么意思
    MySQL外键约束指的是对表与表之间的关系进行限制的一种约束,可以在一个表中定义一个列,这个列将引用另外一个表中的列,这种关联关系可以确保数据的完整性和一致性。本教程操作系统:Windows10系统、mysql 8.0版本、Dell G3电...
    99+
    2023-07-10
  • mysql外键设置方式是什么
    这篇文章给大家介绍mysql外键设置方式是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。外键的作用保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值!例如:a...
    99+
    2023-06-22
  • mac中control键的作用是什么
    在Mac中,Control键(简写为Ctrl)的作用有以下几种: 快捷键:Control键可以与其他按键组合使用,形成各种快捷键...
    99+
    2023-10-21
    mac
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作