mysql 索引 键 主键 外键等概念彻底理清楚

参考文章:
Mysql 索引详解和优化
数据库原理-几种数据模型
Mysql中的key和index的区别 (讲的很合理)
Mysql中的Cascade,NO ACTION,Restrict,SET NULL几种功能说明
Mysql中key 、primary key 、unique key 与index区别

重点总结:

1、mysql 的特点: 括号里面是-类型,外面是-名字。
2、主表、附表都必须用 InnoDB引擎。
3、只有附表才用到 constraint约束、FOREIGN KEY外键、REFERENCES引用参考 三个陌生的东西(SQL语句中可以看到)
4、主没有子不能增加,子有主不能删。特例:子表(外键所在表)的外键可以为NULL,前面的规律作废(与主表引用列无关)。
5、主表的 约束键 叫:引用列、子表的约束键 叫:外键
6、Mysql中key 、primary key 、unique key 与index区别:前面三个是用户级别的概念,包含constraint、index。index是硬件级别的,放在硬盘的一个文件。

不存在歧义的概念:

1、 primary key
数据库的每张表只能有一个主键,不可能有多个主键。所谓的一张表多个主键,我们称之为联合主键。联合主键就是用多个字段一起作为一张表的主键。主键的主键的作用是保证数据的唯一性和完整性,同时通过主键检索表能够增加检索速度。
唯一性:列可以不唯一,但联合起来必须唯一。
2、

存在歧义的概念:

key 和 索引index
1、索引—在SQL语句里叫 key

错综复杂的关系:

1、primary key 与 外键

一图理解:

mysql 索引 键 主键 外键等概念彻底理清楚