mysql主键和外键通俗易懂
主键和外键都是用于维护数据库完整性的一种机制
主键:表中经常有一个列或多个列的组合,其值能唯一的标识表中的每一行。这样的一列或多列称为表的主键。
外键:用来表示表与表之间联系,是表中的一个列,通常可以通过外键来建立两个表之间的联系。
MYSQL的数据表与数据表之间的外键和主键是如何建立链接的呢
添加主键~altertabletable_nameaddconstraintpk_nameprimarykey(列名)
;添加外键~altertabletable_nameaddconstraionpk_nameforeignkey(列名)referencestable_name(列名);基础语法~其他条件自行添加
mysql主键索引和唯一索引的区别
MySQL主键索引和唯一索引都可以用来确保表中的每一行数据具有唯一性,但两者之间有以下几个区别:
主键索引是一种特殊的唯一索引,它不允许为空,并且每个表只能有一个主键索引,用于唯一标识每一行数据。
唯一索引可以为空,但是在一个表中可以创建多个唯一索引,用于确保某个字段或组合字段的唯一性。
主键索引可以被其他表的外键引用,从而建立表与表之间的关联关系。
主键索引默认是聚簇索引,即数据按主键值的顺序存储,而唯一索引默认是非聚簇索引,即数据按照索引的顺序存储。
主键索引可以自动创建,如果表中没有主键,则可以通过创建一个自增ID字段来自动创建主键索引;而唯一索引需要手动创建。
总之,主键索引和唯一索引都是用来保证数据的唯一性,但是主键索引是一种特殊的唯一索引,有着更多的限制和特殊用途。
1.主键是一种约束,唯一索引是一种索引,两者在本质上是不同的;
2.一张表只能有一个主键,但可以创建多个唯一索引;
3.主键创建后一定包含一个唯一索引,唯一索引并一定是主键;
4.主键不能为null,唯一索引可以为null;
5.主键可以做为外键,唯一索引不行;
主键列在创建时,已经默认为非空值 + 唯一索引了。
主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等。
在 RBO 模式下,主键的执行计划优先级要高于唯一索引。 两者可以提高查询的速度。