史上最简单的 MySQL 教程(二十八)「外键(上)」
来源:互联网 发布:淘宝店主风怎么调色 编辑:程序博客网 时间:2024/04/26 07:21
外键
外键:foreign key
,外面的键,即不在自己表中的键。如果一张表中有一个非主键的字段指向另外一张表的主键,那么将该字段称之为外键。每张表中,可以有多个外键。
新增外键
外键既可以在创建表的时候增加,也可以在创建表之后增加(但是要考虑数据的问题)。
第 1 种:在创建表的时候,增加外键
- 基本语法:
foreign key(外键字段) + references + 外部表名(主键字段);
执行如下 SQL 语句,进行测试:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
观察上图可知,字段c_id
的key
显示为MUL
,表示多个键的意思。这是因为外键要求字段本身是一个索引(普通索引)如果字段本身没有索引,外键就会先创建一个索引,然后才创建外键本身。此外,CONSTRAINT
后面的my_foreign_ibfk_1
表示外键的名字。
第 2 种:在创建表之后,增加外键
- 基本语法:
alter table + 表名 + add[constraint + 外键名字] + foreign key(外键字段) + references + 外部表名(主键字段);
执行如下 SQL 语句,进行测试:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
如上图所示,显然咱们已经增加外键成功啦!
修改外键 & 删除外键
外键不能修改,只能先删除后增加。
- 基本语法:
alter table + 表名 + drop foreign key + 外键名字;
执行如下 SQL 语句,进行测试:
- 1
- 2
- 1
- 2
观察上图可知,删除外键不能通过查看表结构来体现,而是应该通过创建表的语句来查看。
温馨提示:符号[]
括起来的内容,表示可选项;符号+
,则表示连接的意思。
阅读全文
0 0
- 史上最简单的 MySQL 教程(二十八)「外键(上)」
- 史上最简单的 MySQL 教程(二十八)「外键(上)」
- 史上最简单的 MySQL 教程(十八)「关系」
- 史上最简单的 MySQL 教程(十八)「关系」
- 史上最简单的 MySQL 教程(二十六)「连接查询(上)」
- 史上最简单的 MySQL 教程(二十六)「连接查询(上)」
- 史上最简单的 MySQL 教程(二十三)「数据的高级操作 之 查询(上)」
- 史上最简单的 MySQL 教程(二十三)「数据的高级操作 之 查询(上)」
- 史上最简单的 MySQL 教程(二十九)「外键(下)」
- 史上最简单的 MySQL 教程(二十九)「外键(下)」
- 史上最简单的 MySQL 教程(三十一)「子查询(上)」
- 史上最简单的 MySQL 教程(三十三)「视图(上)」
- 史上最简单的 MySQL 教程(三十五)「数据备份与还原(上)」
- 史上最简单的 MySQL 教程(三十八)「事务(上)」
- 史上最简单的 MySQL 教程(三十八)「事务(上)」
- 史上最简单的 MySQL 教程(二十七)「连接查询(下)」
- 史上最简单的 MySQL 教程(二十七)「连接查询(下)」
- 史上最简单的 MySQL 教程(二)「关系型数据库」
- 排序算法实现总结
- 求整数序列的最大子列和
- hdu1008 Elevator
- MySQL主从复制
- 哈工大和中科院的文本处理系统
- 史上最简单的 MySQL 教程(二十八)「外键(上)」
- Java/Android 设计模式系列(1)--单例模式
- Sublime Text 3 代码编辑器快捷键汇总
- BP神经网络计算过程详解,用笔手算一遍弄懂反向传播
- 7个PHP基础与JS操作的区别
- 栈的实现
- Java文件夹操作,判断多级路径是否存在,不存在就创建(包括windows和linux下的路径字符分析),兼容Windows和Linux
- 求乱序数组中第K大的值
- 【PAT】【Advanced Level】1079. Total Sales of Supply Chain (25)