在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

mysql的外键如何设置

102次阅读
没有评论

共计 2473 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章主要介绍“mysql 的外键如何设置”,在日常操作中,相信很多人在 mysql 的外键如何设置问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql 的外键如何设置”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

什么是外键?

在数据库中,一个表的列称为该表的字段或属性。例如,在一个电商网站的数据库中,用户的手机号码可能存储在一个名为“user”(用户)的表中,而用户的订单则存储在另一个名为“order”(订单)的表中。这两个表之间有一个关系,一个用户可以下多个订单,同时一个订单只能属于一个用户。

外键是一个关系数据库术语,它是一种将两个表连接起来的约束。通过外键约束,可以确保在一个表中引用另一个表中的数据时,其实例必须与另一个表中的值相匹配。

外键的优点在于它们能够确保数据表之间的关系完整性。这意味着,如果两个表之间有一个外键约束,则在删除或更新主表中的一个记录时,所有依赖它的外键将被自动删除或更新。

如何设置外键?

为了设置外键,您需要确保正在使用的 MySQL 引擎支持它。目前,MySQL 支持 MyISAM、InnoDB 和 NDB 引擎,其中 InnoDB 是最广泛使用的引擎,也是唯一支持外键的 MySQL 引擎。

如果您要使用外键约束,请确保您的表使用的是 InnoDB 引擎。您可以执行以下命令来验证表的引擎类型:

SHOW TABLE STATUS FROM database_name WHERE Name= table_name

其中,database_name 是数据库名称,table_name 是您要查看引擎类型的表名。

如果您的表使用的是不支持外键约束的引擎,则需要将其更改为 InnoDB 引擎,执行以下命令:

ALTER TABLE table_name ENGINE=InnoDB;

接下来,您需要创建一个表并添加一个外键约束。以下是相应的代码示例:

CREATE TABLE order (
 order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
 user_id INT NOT NULL,
 date_added DATETIME,
 FOREIGN KEY (user_id) REFERENCES user(user_id)
);

在此示例中,我们创建了一个“订单”(order)表,其中包括订单 ID(order_id)、用户 ID(user_id)和日期(date_added)字段。然后,我们为“订单”表添加了一个外键约束,以确保在添加新订单之前先存在用户 ID。

在这个约束表达式中,user_id 是当前表中的字段名称,user 是所依赖的表的名称,user_id 是所依赖表中的字段名称。此外,FOREIGN KEY 关键字用于定义外键约束。

在 MySQL 中,还可以将外键约束定义为 CASCADE、SET NULL 或 RESTRICT。以下是这些选项的说明:

CASCADE:在指定父项时,将同时删除或更新子项。

SET NULL:在指定父项时将删除或更新子项的值为 Null。

RESTRICT:在指定父项时阻止删除或更新子项。

以下是完整的代码示例,其中包括 CASCADE、SET NULL 和 RESTRICT 选择:

--  创建父表
CREATE TABLE user (
 user_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
 username VARCHAR(50) NOT NULL,
 password VARCHAR(50) NOT NULL
--  创建子表,并定义外键约束
CREATE TABLE order (
 order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
 user_id INT NOT NULL,
 date_added DATETIME,
 FOREIGN KEY (user_id) REFERENCES user(user_id)
 ON DELETE CASCADE
 ON UPDATE SET NULL
);

在此示例中,我们为“订单”表添加了两个选项。ON DELETE CASCADE 选项表示在删除用户记录时,也将删除所有与该用户关联的订单记录。ON UPDATE SET NULL 选项表示在更新用户记录时,将会将订单记录中的用户 ID 设置为 Null 值。

如何使用外键?

在数据库编程中,您可以使用一些基础命令来查询包含外键的表。下面是一些示例代码:

--  查找所有订单
SELECT * FROM order;
--  查找用户 John 的所有订单
SELECT * FROM order WHERE user_id=(SELECT user_id FROM user WHERE username= John

在这两个示例中,我们查询了包含外键约束的“订单”表。在第二个示例中,我们还使用了嵌套查询来导出特定用户的订单记录。

当您执行修改操作时,请确保修改不会违反外键约束。如果修改的值不满足外键约束,则会出现错误。如果出现这种情况,请修改相应的数据以满足外键约束。下面是一个示例:

--  修改订单,将 John 的所有订单修改为 Jane 的订单
UPDATE order SET user_id=(SELECT user_id FROM user WHERE username= Jane) WHERE user_id=(SELECT user_id FROM user WHERE username= John

在此示例中,我们将所有属于用户“John”的订单修改为属于用户“Jane”的订单。在执行此操作之前,请确保用户“Jane”已存在。

到此,关于“mysql 的外键如何设置”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2024-02-03发表,共计2473字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 国产欧美日韩专区发布 | 欧洲亚洲精品久久久久 | 午夜久草| 成人做爰高潮片免费视频 | 永久免费观看的毛片的网站 | 成人www视频网站免费观看 | 毛片在线播放观看日本 | 窝窝午夜视频 | 热99re久久精品这里都是免费 | 日韩一区二区不卡中文字幕 | 欧美三级午夜理伦三级小说 | 久久91精品久久91综合 | 成码无人av片在线电影网站 | 变态另类先锋影音 | 天天综合天天综合 | 国产综合成人观看在线 | 亚洲青涩在线 | 亚洲国产精品成人精品无码区 | 亚洲国产一区在线观看 | 欧美国产视频 | 国产国拍亚洲精品mv在线观看 | 韩国电影一区 | 九九热国产视频 | 一二三四在线观看免费视频 | 亚洲日韩天堂 | 波多野结衣中文字幕一区二区三区 | 性色av免费网站 | 精品乱码一区二区三区四区 | 伊人激情综合网 | 午夜国产福利在线 | 人人妻人人爽人人澡欧美一区 | 成熟丰满熟妇xxxxx丰满 | 99国产高清久久久久久网站 | 久久色成人 | a毛片免费看 | 边啃奶头边躁狠狠躁玩爽在水里面 | 一级黄色免费观看 | 奇米网777四色国产精品 | 五月天香蕉 | 亚洲av一本岛在线播放 | 国语精品视频在线观看不卡 |