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

创建外键

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. 如何使网站的右键失效
  2. RHEL/CentOS 下安装yum源地址汇集---不定期更新
  3. 使用Spring配置LogBack日志记录
  4. 学习过程中的一些细节
  5. 快微音频课程小程序v3.8.4+前端
  6. Internet信息服务找不到
  7. linux如何查看jupyter日志_在Linux服务器上运行Jupyter notebook server教程
  8. Centos7安装完毕后无法联网的解决方法
  9. bat 文件 服务器,bat文件做成服务器
  10. 电信机顶盒怎么连接鸿蒙系统电视,移动电信机顶盒怎么投屏?怎么连接手机
  11. em模型补缺失值_缺失值的四种处理方法
  12. [SpringCould篇]之服务消费方式Ribbon+RestTemplate
  13. oracle中笛卡尔积怎么用,Oracle的表连接方法(四)笛卡尔积
  14. 搜狐狐友搅局社交;小米手环4发布;2019互联网趋势报告发布;Python火爆依旧...
  15. ios支付宝支付--看我就够了
  16. linux下的go富集分析,GO富集分析(转载)-Go语言中文社区
  17. xming Error: Can‘t open display:
  18. 人工智能中的图灵测试
  19. Python图片裁剪的两种方式——Pillow和OpenCV
  20. php试卷分析,考试过后试卷分析该怎么做

热门文章

  1. python读文件一次读特定行_Python3实现从文件中读取指定行的方法 python读取文本内每行指定内容...
  2. classin摄像头打不开
  3. 电子表格为什么还要数据库,区别是什么?
  4. 2021-12-11 vue移动端卖座电影项目(十一) comingSoon用后台获取的数据写样式,以及用vuex的Action处理异步问题:切换FilmHeader中的两个标签时直接缓存数据
  5. Mixly米思齐软件学习
  6. Unity 游戏2048:制作总结
  7. 深度:自动驾驶特斯拉背后核心技术解析
  8. 机器学习(决策树五)——案例:鸢尾花数据分类 及 据特征属性比较
  9. Python爬虫学习笔记-第三课(网络请求模块下)
  10. 2.(leaflet之家)leaflet加载接入百度地图