最新文章专题视频专题关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
新手SQLServer数据库dba需要注意的小细节 格力空调怎么加氟 怎么加空调氟 空调除湿原理是啥 松下空调怎么加氟 春兰空调故障代码e4 空调一小时几度电 格力空调加氟方法 LG空调怎么加氟 格兰仕空调故障代码e4 空调一小时用多少电 日立空调怎么加氟 格兰仕空调故障代码cf 空调每小时耗电量 海信空调怎么加氟 空调一个小时几度电 海尔空调怎么加氟 富士通空调怎么加氟 空调一晚上几度电 格兰仕空调e7故障代码 春兰空调故障代码e2 中央空调显示e6是什么意思 志高空调怎么加氟 志高空调压缩机不启动 空调显示e6不制冷 美的空调怎么加氟 澳柯玛空调压缩机不启动 空调e6怎么解决 tcl空调显示e6 奥克斯空调压缩机不启动 山寨技术下的网站图片服务器(NGINX) 浏览器AdobeFlashPlayer插件去除沙箱(保护模式)特性增强稳定 新手学堂最常用Oracle命令集锦 新手知识选择正确的MySQL安装包 新手学堂MySQL数据库多表删除方法 新手学堂Linux下Oracle的自动启动及停止 新手进阶查看MySQL表结构命令 新手进阶Python连接MySQL代码 格力中央空调故障代码e1 大金中央空调内机漏水
当前位置: 首页 - 科技 - 知识百科 - 正文

新手学习MySQL外键所要知道的知识

来源:懂视网 责编:小采 时间:2020-11-09 14:21:16
文档

新手学习MySQL外键所要知道的知识

新手学习MySQL外键所要知道的知识:我们今天是要和大家一起讨论的是新手学习MySQL外键所要知道的知识,我前两天在相关网站看见新手学习MySQL外键所要知道的相关知识的资料,觉得挺好,今天拿就出来供大家分享。 本文详细介绍MySQL外键:数据库新手入门之MySQL中如何定义外键 定义数据表 假如某
推荐度:
导读新手学习MySQL外键所要知道的知识:我们今天是要和大家一起讨论的是新手学习MySQL外键所要知道的知识,我前两天在相关网站看见新手学习MySQL外键所要知道的相关知识的资料,觉得挺好,今天拿就出来供大家分享。 本文详细介绍MySQL外键:数据库新手入门之MySQL中如何定义外键 定义数据表 假如某

我们今天是要和大家一起讨论的是新手学习MySQL外键所要知道的知识,我前两天在相关网站看见新手学习MySQL外键所要知道的相关知识的资料,觉得挺好,今天拿就出来供大家分享。 本文详细介绍MySQL外键:数据库新手入门之MySQL中如何定义外键 定义数据表 假如某

我们今天是要和大家一起讨论的是新手学习MySQL外键所要知道的知识,我前两天在相关网站看见新手学习MySQL外键所要知道的相关知识的资料,觉得挺好,今天拿就出来供大家分享。

本文详细介绍MySQL外键:数据库新手入门之MySQL中如何定义外键

定义数据表

假如某个电脑生产商,它的数据库中保存着整机和配件的产品信息。用来保存整机产品信息的表叫做 Pc;用来保存配件供货信息的表叫做Parts。

在Pc表中有一个字段,用来描述这款电脑所使用的CPU型号;

在Parts 表中相应有一个字段,描述的正是CPU的型号,我们可以把它想成是全部CPU的型号列表。

很显然,这个厂家生产的电脑,其使用的CPU一定是供货信息表(parts)中存在的型号。这时,两个表中就存在一种约束关系(constraint)——Pc表中的CPU型号受到Parts 表中型号的约束。

首先我们来创建 parts 表:

  1. CREATE TABLE parts (
  2. ... 字段定义 ...,
  3. model VARCHAR(20) NOT NULL,
  4. ... 字段定义 ...
  5. );
  6. 接下来是Pc表:
  7. CREATE TABLE pc (
  8. ... 字段定义 ...,
  9. cpumodel VARCHAR(20) NOT NULL,
  10. ... 字段定义 ...
  11. };

设置索引

若要设置MySQL外键,在参照表(referencing table,即Pc表) 和被参照表 (referenced table,即parts表) 中,相对应的两个字段必须都设置索引(index)。

对Parts表:

  1. ALTER TABLE parts ADD INDEX idx_model (model);

这句话的意思是,为 parts 表增加一个索引,索引建立在 model 字段上,给这个索引起个名字叫idx_model。

对Pc表也类似:

  1. ALTER TABLE pc ADD INDEX idx_cpumodel (cpumodel);

事实上这两个索引可以在创建表的时候就设置。这里只是为了突出其必要性。

定义外键

下面为两张表之间建立前面所述的那种“约束”。因为pc的CPU型号必须参照parts表中的相应型号,所以我们将Pc表的cpumodel字段设置为“外键”(FOREIGN KEY),即这个键的参照值来自于其他表。

  1. ALTER TABLE pc ADD CONSTRAINT fk_cpu_model
  2. FOREIGN KEY (cpumodel)
  3. REFERENCES parts(model);

第一行是说要为Pc表设置MySQL外键,给这个外键起一个名字叫做fk_cpu_model;第二行是说将本表的cpumodel字段设置为外键;第三行是说这个外键受到的约束来自于Parts表的model字段。

这样,我们的外键就可以了。如果我们试着CREATE一台Pc,它所使用的CPU的型号是Parts表中不存在的,那么MySQL会禁止这台PC被CREATE出来。

级联操作

考虑以下这种情况:

技术人员发现,一个月之前输入到 parts 表中的某个系列的 cpu (可能有很多款)的型号全都输错了一个字母,现在需要改正。我们希望的是,当 parts 表中那些 Referenced Column 有所变化时,相应表中的 Referencing Column 也能自动更正。

可以在定义MySQL外键的时候,在最后加入这样的关键字:

ON UPDATE CASCADE; 即在主表更新时,子表(们)产生连锁更新动作,似乎有些人喜欢把这个叫“级联”操作。:)

如果把这语句完整的写出来,就是:

  1. ALTER TABLE pc ADD CONSTRAINT fk_cpu_model
  2. FOREIGN KEY (cpumodel)
  3. REFERENCES parts(model)
  4. ON UPDATE CASCADE;

除了 CASCADE 外,还有 RESTRICT(禁止主表变更)、SET NULL(子表相应字段设置为空)等操作。

延伸阅读

外键(Foreign Key)

如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。

外键的作用:

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

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:0731-84117792 E-MAIL:11247931@qq.com

文档

新手学习MySQL外键所要知道的知识

新手学习MySQL外键所要知道的知识:我们今天是要和大家一起讨论的是新手学习MySQL外键所要知道的知识,我前两天在相关网站看见新手学习MySQL外键所要知道的相关知识的资料,觉得挺好,今天拿就出来供大家分享。 本文详细介绍MySQL外键:数据库新手入门之MySQL中如何定义外键 定义数据表 假如某
推荐度:
标签: 知道 学习 知识
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题用mysql创建一个学生表专题mysql建立一个学生表专题mysql分表案例专题mysql数据库sql练习专题mysql大数据课程专题简述mysql的特点专题数据库mysql练习专题mysql练习数据专题mysql 水平分表专题mysql 练习数据库专题mysql 练习数据专题mysql课程表创建专题mysql练习表专题mysql建表练习专题mysql数据库基础教学专题课程表mysql专题mysql课程表专题mysql数据库难学吗专题mysql要学到什么程度专题mysql数据库基本知识点总结专题
Top