1.1、MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种。不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引。用于外键关系的字段必须在所有的参照表中进行明确地索引,InnoDB不能自动地创建索引。

2.2、外键可以是一对一的,一个表的记录只能与另一个表的一条记录连接,或者是一对多的,一个表的记录与另一个表的多条记录连接。

3.

3、如果需要更好的性能,并且不需要完整性检查,可以选择使用MyISAM表类型,如果想要在MySQL中根据参照完整性来建立表并且希望在此基础上保持良好的性能,最好选择表结构为innoDB类型。

4、外键的使用条件

① 两个表必须是InnoDB表,MyISAM表暂时不支持外键

② 外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显式建立;

③ 外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;

5、外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作。

mysql 添加外键详解

为已经添加好的数据表添加外键: 语法:alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字 ...

django ORM 外键详解

Django中的外键: 首先,为了方便理解,我们把使用ForeignKey的字段所在的表定义为从表,把ForeignKey中to参数连接的表称为主表. 外键使用的先决条件: 在mysql数据表中,数据 ...

Mysql 外键设置

MySql外键设置详解 (1) 外键的使用: 外键的作用,主要有两个:    一个是让数据库自己通过外键来保证数据的完整性和一致性    一个就是能够增加ER图的可读性    有些人认为外键的建立会给 ...

Mysql加锁过程详解(8)-理解innodb的锁(record,gap,Next-Key lock)

Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...

Mysql加锁过程详解(1)-基本知识

Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...

Mysql加锁过程详解(5)-innodb 多版本并发控制原理详解

Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...

Mysql加锁过程详解(7)-初步理解MySQL的gap锁

Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...

【转载整理】mysql权限分配详解

原文:https://www.cnblogs.com/Csir/p/7889953.html MySQL权限级别 1)全局性的管理权限,作用于整个MySQL实例级别 2)数据库级别的权限,作用于某个指 ...

MySQL数据库优化详解(收藏)

MySQL数据库优化详解 mysql表复制 复制表结构+复制表数据mysql> create table t3 like t1;mysql> insert into t3 select * ...

随机推荐

mysql内置函数大全

mysql 字符串函数用法集合 ASCII(str)返回字符串str的最左面字符的ASCII代码值. mysql> select ascii('d'); +------------+ | asc ...

Bootstrap栅格系统详解,响应式布局

Bootstrap栅格系统详解 栅格系统介绍 Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列. 栅格系统用于通 ...

UIApplication

1.UIApplication 是 iPhone 应用程序的开始并且负责初始化并显示 UIWindow,并负责加载应用程序的第一个 UIView 到 UIWindow 窗体中. UIApplicati ...

SkipList 跳表

1.定义描述      跳跃列表(也称跳表)是一种随机化数据结构,基于并联的链表,其效率可比拟于二叉查找树(对于大多数操作需要O(log n)平均时间).      基本上,跳跃列表是对有序的链表增加 ...

30年的Hello world

30 年的 Hello world 转载自:http://www.admin10000.com/document/2398.html 最近我在7月4日这一天所在的那周休假了.休假期间,我利用大把的时间 ...

Spring学习笔记3——使用注解的方式完成注入对象中的效果

第一步:修改applicationContext.xml 添加表示告诉Spring要用注解的方式进行配置 <?xml vers ...

【BZOJ4029】&lbrack;HEOI2015&rsqb;定价(贪心)

[BZOJ4029][HEOI2015]定价(贪心) 题面 BZOJ 洛谷 题解 每次加上十进制下的\(lowbit\)就行了??? #include #include ...

Alpha阶段个人心得

在一个学期的学习中,我从一个只会一个人打打小规模代码的初学者也变成了一个能参与到团队做项目的“入门码农”,而我们团队从一开始对大型项目的望而生畏无从下手变成细分任务各司其职,也了解并感受到github ...

【转载】详解KMP算法

网址:https://www.cnblogs.com/yjiyjige/p/3263858.html

js中的数值转换

js中有3个函数可以把非数值转换为数值:Number().parseInt().parseFloat().其中Number()可以用于任何数据类型.parseInt()及parseFloat()用于将 ...

mysql 外键详解_mysql外键详解相关推荐

  1. mysql 主键 聚集索引_MySQL主键索引和聚焦索引

    主键索引 主键索引,简称主键,原文是PRIMARY KEY,由一个或多个列组成,用于唯一性标识数据表中的某一条记录.一个表可以没有主键,但最多只能有一个主键,并且主键值不能包含NULL. 在MySQL ...

  2. MySql数据库explain用法示例_mysql explain用法详解

    explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了,如: explai ...

  3. mysql 大量数据 更改索引_Mysql索引数据结构详解与索引优化

    本篇文章主要学习了MySQL的索引的数据结构的认识,做一个大概的了解即可. 一.索引 在关系数据库中,索引是一种单独的.物理的对数据库表中一列或多列的值进行排序的一种存储数据结构,它是某个表中一列或若 ...

  4. mysql 主键 默认索引_mysql 主键和默认 设为索引的规则

    一.mysql 表中如果是单主键的话,那这个主键也会被 系统默认建为 索引 二.mysql 表中如果是复合主键的话,那系统会遵循左对齐原则,即如复合主键 a 和 b字段和c字段..., 默认建的主键索 ...

  5. mysql外键无法删除_mysql外键无法删除数据的情况

    最近碰到一次在msyql主从删除数据,居然报错 delete from pt_game_server where id=2; ERROR 1451 (23000): Cannot delete or ...

  6. mysql外键引用语法_mysql – 外键语法

    我先创建了Teacher表,其描述是 mysql> desc teacher; +--------------+-------------+------+-----+---------+---- ...

  7. mysql外键关联查询_MySQL外键约束和多表联查

    一.创建外键 #测试数据表 # 教师表,主表 CREATE TABLE teacher( id INT PRIMARY KEY AUTO_INCREMENT, name varchar(20), ag ...

  8. mysql外键级联操作_Mysql 外键级联

    如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表.外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常 ...

  9. mysql 外键约束失败_mysql外键创建失败原因

    在MySQL中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1.  两个字段的类型或者大小不严格匹配.例如,如果一个 ...

最新文章

  1. 人脸检测算法_目前最强!开源人脸检测算法:RetinaFace
  2. 【干货】网络中常用的9个命令,超级实用
  3. python数据类型介绍_python的数据类型简介
  4. linux 查看磁盘分区,文件系统,使用情况的命令和相关工具介绍,Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍df...
  5. vue 微信公众号支付接口_基于vue的h5项目之支付宝支付与微信支付
  6. Java Package getPackage()方法与示例
  7. 小A点菜(洛谷P1164题题解,Java语言描述)
  8. Android四大组件---BroadcastReceiver
  9. Linux查看版本信息及CPU内核、型号等
  10. python基本运算_python中的基本运算
  11. 收集几个AS3频谱代码SoundMixer.ComputeSpectrum()
  12. JSP中9个隐含对象
  13. jQuery学习基础理论(二)
  14. CE-植物大战僵尸-子弹速度-豌豆射手
  15. 运用卫星数据及AI技术 微软推出新一代模拟飞行游戏
  16. 一个不错的SQLserver 数据库比较软件
  17. 华为生态伙伴精英赛背后的深意:做人才的“黑土地”
  18. pythonapp爬虫库_python爬虫抓取app列表的图标
  19. 使用鲁大师检测硬盘健康状态
  20. IC岗位详解| 一位合格的模拟版图工程师需要具备哪些能力?

热门文章

  1. 安装 wine QQ 最新版本的方法
  2. 女人永远不知道的12件事——看后有点感动!
  3. ArcGIS教程:使用 Spatial Analyst 工具条
  4. 中投参股摩根士丹利幕后的中国关系网
  5. 贴图不说话:2500元的羊绒长丝巾
  6. mooc计算机应用基础2020,智慧职教MOOC_计算机应用基础_2020答案
  7. 已经发车的票还能取出来吗_火车票过了开车时间,还能在自动取票机取出该票吗?...
  8. html flex 上中下布局,flex 布局
  9. Nodejs学习网址
  10. 入手Hi nova9 Pro一周,你们关心的问题都在这里