Mysql数据库外键的使用【重点】

Mysql数据库外键的使用【重点】Mysql 数据库外键用法


? 作者简介:大学机械本科,野生程序猿,学过C语言,玩过前端,还鼓捣过嵌入式,设计也会一点点,不过如今痴迷于网络爬虫,因此现深耕Python、数据库、seienium、JS逆向、安卓逆向等等,,目前为全职爬虫工程师,学习的过程喜欢记录,目前已经写下15W字电子笔记,因此你看到了下面这篇文章~

? 技术栈:Python、HTML、CSS、JavaScript、C、Xpath语法、正则、、MySQL、Redis、MongoDB、Scrapy、Pyspider、Fiddler、Mitmproxy、分布式爬虫、JAVA等

?个人博客:https://pythonlamb.github.io/

?大学作品合集:https://sourl.cn/h9M2jX

?欢迎点赞⭐️收藏?关注?留言呀?








外键使用

外键的使用场景

答:两个数据表相关联,一个数据表是产品名称,另一个数据表是这些产品的分类,向产品名称这个数据表添加数据时,但是产品分类这个数据表内没有这个产品的相应分类,我们就不能向名称数据表进行插入数据,这时就要用到外键!

什么是外键

答:两个数据表相关联时,一个数据表的主键出现在另外一个数据表中,称另外这个数据表内的这个字段为外键

图示:

image-20211012151343486

怎么向已经存在的字段添加外键约束

关键字:foreign key 、references

语法:alter table product add foreign key (nid) references classification(id);

表示向 product 表的 nid 字段添加外键,这个外键引用于 classification数据表的主键(id字段)

快速代码体验:

Mysql数据库外键的使用【重点】

怎么在创建数据表时添加外键

语法:

create table product_test( id int not null primary key, name varchar(10)not null, mid int not null, foreign key (mid) references classification(id)); 

上面语法表示创建 product_test 数据表并且为mid字段加上外键,foreign key (mid) references classification(id)语法表示将mid字段设置为外键,外键引用于 classification数据表的 id 字段

注意事项:创建数据表添加外键,引用于哪个数据表的字段,那么这个数据表必须事先存在,例如上述的classification数据表之前就已经创建好!

快速代码体验:

image-20211012151414268

怎么查询数据表中的外键字段名称

show create table 要查找外键的数据表名

例如:show create table product_test;

代码演示

image-20211012151423481

注意事项:上面查询的字段名称不是 mid 而是刚开始的那段字符串,即 product_test_ibfk_1 才是字段名称

怎么删除数据表中的字段外键

alter table 数据表名 drop foreign key 外键字段名

快速代码体验

image-20211012151433707

持续更新中…

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233691.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 持久层(数据层,Dao层) MyBatis框架「建议收藏」

    持久层(数据层,Dao层) MyBatis框架「建议收藏」所谓的持久层就是把数据可以永久保持的存储到设备中,不像放到内存中那样断电就消失,一般来说,持久层为直接的理解就是对数据库的各种操作,如CRUD(增加,删除,修改,查询),更新等操作持久层,就是把持久

    2022年7月2日
    43
  • navicat mac激活码【2021.7最新】

    (navicat mac激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月22日
    62
  • kong 网关 修改返回数据_kong网关教程

    kong 网关 修改返回数据_kong网关教程一、简介路由用来匹配客户端向上游服务器请求的规则,也就是客户端调用的API,每个路由(Route)和一个服务(Service)相关联,一个服务可有有多个路由,我们可以对每一条路由进行细粒度的配置,可以使用正则表达式进行通用的配置。二、重要属性创建一个路由需要配置的属性,其中路径paths为必须设置,其余为可选。AttributesDescriptionname…

    2025年10月22日
    7
  • 关于Navicat ER图「建议收藏」

    关于Navicat ER图「建议收藏」今天给大家分享一个关于NavicatER图使用的小技巧,这里以NavicatforMySQL10.1.7为例。首先说一下ER图在哪里打开点击“查看”,选择“ER图表”这时就可以显示你建好的各个表了。虽然加了外键,但是显示不是很清晰,怎么办?在NavicatforMySQL界面的左下角有一个刷新按钮点击后,即可生成关系明确的ER图了如果点击刷新后仍没反应,请点击“重新…

    2025年11月27日
    12
  • Java基础算法详解

    Java基础算法详解查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。面试官对于这些排序可能会…

    2022年7月8日
    17
  • linux安装rabbitmq教程(rabbitmq中文文档)

    一、准备依赖包yuminstallbuild-essentialopensslopenssl-develunixODBCunixODBC-develmakegccgcc-c++kernel-develm4ncurses-develtktcxz二、下载erlang-18.3-1wgetwww.rabbitmq.com/releases/erlang…

    2022年4月11日
    139

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号