主键、外键、索引三者之间的区别?

主键的关键字primary key ,是由表中的一个或者多个字段构成,主键不能重复,不能为空。主键本身也是一种索引,使用主键,数据库会自动创建主键索引。每个数据表中只有一个主键。

外键的关键字foreign key ,是用来与其他表建立联系的,使数据保持一致性和完整性。建立外键的列必须与主键字段类型相同,只有他表的主键才能作为本表的外键。一个表可以有多个外键,外键数据可以重复,也可以为空。使用外键,数据库会自动创建外键索引。

索引的关键字 index ,可以分为单一索引和复合索引,单一索引是建立在一列上的索引,复合索引是建立在两个或多个列上的索引,索引可以提高查询的效率,但会降低dml操作的效率。所以建立索引时需要权衡。对于dml操作比较频繁的表,索引的个数不宜太多。

主键、外键一定是索引,索引不一定是主键、外键。

主键不允许为空值,外键允许为空值,唯一索引列允许空值;

2. 主键索引和唯一索引的区别?

1)主键一定会创建一个唯一索引,但是有唯一索引的列不一定是主键;
2)主键不允许为空值,唯一索引列允许空值;
3)一个表只能有一个主键,但是可以有多个唯一索引;
4)主键可以被其他表引用为外键,唯一索引列不可以;
5)主键是一种约束,而唯一索引是一种索引,是表的冗余数据结构,两者有本质的差别

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕枫520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值