一、数据库的主键与外键的作用?
主键作用: 能够保证设置主键的列唯一且非空。另外在定义主键时如果这个列之前没有索引,数据库会自动建立唯一索引。
外键作用: 能够保证设置外键的列的取值必须匹配父表中已有的值。通过外键可以将同一张表建立引用关系,也可以将不同的表建立引用关系。
二、 主键和索引的区别?
1. 主键是为了标识数据库记录的唯一性,不允许记录重复,且键值不能为空,主键也是一个特殊的索引。
2. 数据表中只能有一个主键,但是可以有多个索引。
3. 使用主键数据库会自动创建索引,也可以在非主键上建立索引,提高查询效率。
4. 索引可以提高查询速度,相当于字典的目录,可以通过它来快速的查询想要的结果,而不需要全表扫描。
5. 主键可以由多个字段组成,组成复合主键,同时主键肯定也是唯一的索引。
6 .唯一索引则表示该索引值唯一,一可以由一个或多个字段组成,一个表可以有多个唯一索引。
三、使用索引一定能提高查询效率嘛?为什么?
不一定。如果给不适合索引的列创建了索引,不会提高索引,还有使用%模糊查询也会导致索引失效,所以使用索引不一定能提高查询效率。