在对数据库表的操作中,往往需要在多个表之间建立一定的关系,而这种关系一定具有完整性和一致性,而建立这种关系的方式就是外键。

创建外键

create table 表名(字段名 数据类型 约束,...[constraint] [外键名] foreign key(外键字段名) references 主表(主表字段名)
);

外键名可以不写,在创建时系统会自动帮你取,但是最好还是自己取,不然删除的时候会很麻烦。

添加外键

alter table 表名 add constraint [外键名] foreign key(外键字段名) references 主表(主表字段名);

删除外键

alter table score drop foreign key 外键名;

删除外键时必须指定外键名,如果不知道外键名,可以用查看表的方式进行查看(show create table 表名;),如果有第三方工具可以直接在对应表中进行查看。

外键级联

创建或添加约束语句 on update 行为 on delete 行为;

关于行为(图片来自 黑马程序员 MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括_哔哩哔哩_bilibili ):

MySQL 支持外键的引擎只有 Innodb,因此可以不用管 SET DEFAULT。

MySQL学习-外键约束相关推荐

  1. mysql 创建外键约束以及注意事项

    mysql 创建外键约束以及注意事项: 创建外键: 首先创建一张区域表 CREATE TABLE `area` (`id` int(11) NOT NULL DEFAULT '0' COMMENT ' ...

  2. MySQL 主外键约束与标准SQL不同的地方

    [标准SQL的外键约束条件] 1): 子表引用父表的主键 drop table if exists child,parent;create table if not exists parent(id ...

  3. mysql 添加外键约束

    创建表时添加约束 create table table_name( id int primary key auto_increment, #设为主键且自动增长 name not null unique ...

  4. MySQL的外键约束

    一.MySQL外键 外键表示一个表中的一个字段被另一个表中的一个字段引用.外键对相关表中的数据造成了限制,使MySQL的能够保持参照完整性.只有InnoDB类型的表才可以使用外键. 1.外键的好处 可 ...

  5. mysql 设置外键约束SET FOREIGN_KEY_CHECKS=1

    问题描述:Mysql中如果表和表之间建立的外键约束,则无法删除表及修改表结构 解决方法: 在Mysql中取消外键约束: SET FOREIGN_KEY_CHECKS=0; 然后将原来表的数据导出到sq ...

  6. mysql添加外键约束的语法_Mysql添加外键约束.

    最近学习遇到一条添加外键约束的语句,记录下来. alter table selection add constraint FK_Reference_1 foreign key(course) refe ...

  7. mysql级联删除外键约束_玩转MySQL的外键约束之级联删除篇

    [IT168 文档]如今,许多关系型数据库管理系统都提供了外键约束这一强大的功能特性,它能够帮助我们自动地触发指定的动作,诸如删掉.更新数据库表的记录等,从而维护各数据库表之间预定义的关系.本文将演示 ...

  8. mysql数据库 外键约束

    外部关键字 在以后我们统一将外部关键字叫做外键,外键就是另一张表中的主键. 问:外键有啥用啊? 答:外键的主要作用就是保持数据的一致性,完整性. 再问:怎么保证的呢? 答:看图. 如图有两张表,cla ...

  9. 使用mysql创建外键约束_Mysql创建外键约束的两种方式

    通过给mysql的表字段添加外键约束,可以有效的保持数据的一致性和完整性,数据就不会很容易出问题. 1.创建表时直接创建外键约束create table books( bookid number(10 ...

最新文章

  1. MySQL与优化有关的命令_MySQL优化全攻略-相关数据库命令
  2. (转载)keras使用入门及3D卷积神经网络资源
  3. Excel如何快速将科学计数法数字变成正常形式
  4. 浅谈 Java 字符串(String, StringBuffer, StringBuilder)
  5. aida64 extreme 序列号_轻声问海关,规范申报错了谁负责?底料来源四川行不行?没有公式定价行不行?序列号是料号行不行?...
  6. Smart Template tile的绘制原理
  7. PHP源码安装及配置——以fastCGI的方式与httpd整合
  8. 达梦数据库删除用户_达梦数据库的表空间及用户管理
  9. C++动态内存会被自动释放吗?
  10. 嵌入式实时操作系统ucos-ii_「正点原子NANO STM32开发板资料连载」第三十八章 UCOSII 实验 3...
  11. chrome正受到自动软件的控制_河南科信混凝土搅拌站电脑全自动控制系统PLY1200A称重控制器上位机软件现场安装调试...
  12. 学习笔记:聚类算法Kmeans/K-均值算法
  13. 开源大数据生态下的 Flink 应用实践
  14. 【窗口置顶神器】DeskPins
  15. http的CA证书安装(也就是https)
  16. 《电子元器件的可靠性》——第3章可靠性试验
  17. 数据结构教程 李春葆主编 (第5版)绪论笔记
  18. Eigen优化及并行性能测试
  19. 00:编程入门--了解计算机
  20. 计算机端口com1,访问端口“COM1”被拒绝(Access to the port “COM1” is denied)

热门文章

  1. 100个网络运维工作者必须知道的小知识!(上)
  2. excel调整图片透明度教程
  3. docker、oci、runc以及kubernetes梳理
  4. 墨者学院;SQL手工注入;在线靶场;SQLsever;
  5. 企业网站如何插入第三方平台不带广告的宣传宣传片
  6. Python星座问题
  7. 荣耀magicbook15C语言,荣耀MagicBook X 15
  8. 用《只狼》教你学会Git(上)
  9. linux smtp ip伪造,邮件伪造和SPF
  10. html文本缩进自动换行,如何实现网页文字的自动换行