环球科创网

2022年02月20日整理发布:主键和唯一索引的区别的是什么

更新时间:2022-02-20 19:27:09

导读 让我给你解释一下主键和唯一索引的区别。相信朋友们也应该非常关注这个话题。现在让我告诉你主键和唯一索引的区别。边肖还收集了关于主键和

让我给你解释一下主键和唯一索引的区别。相信朋友们也应该非常关注这个话题。现在让我告诉你主键和唯一索引的区别。边肖还收集了关于主键和唯一索引之间差异的相关信息。我希望你看到后会喜欢。

区别:1。主键是约束,唯一索引是索引。2.创建主键后,它必须包含唯一的索引,该索引不一定是主键。3.唯一索引列允许Null值,但主键列不允许。4.主键可以作为外键被其他表引用,但唯一索引不能。

本教程运行环境:windows7系统,mysql8版本,Dell G3电脑。

主键索引和唯一索引之间的差异

主键是约束,唯一索引是索引,两者有本质区别。

创建主键后,它必须包含唯一的索引,该索引不一定是主键。

唯一索引列允许Null值,但主键列不允许。

创建主键时,默认情况下,它已经是一个具有空值的唯一索引。

主键可以作为外键被其他表引用,但唯一索引不能。

一个表最多只能创建一个主键,但可以创建多个唯一索引。

主键更适合不易更改的唯一标识符,如自动增量列、ID号等。

在RBO模式下,主键的执行计划优先级高于唯一索引。两者都可以提高查询速度。

示例:

-创建只包含主键和唯一索引的表。

创建表测试

(PrimaryKey VARCHAR2(20)、

UniqueKey VARCHAR2(20)

);-使用不同的语法分别创建主键和唯一索引。

ALTER TABLE test ADD CONSTRAINT test _ PRIMARY KEY主键(PRIMARY KEY);在test (UniqueKey)上创建唯一索引test _ UniqueKey-您可以在USER_INDEXES中看到两个索引名称。

SELECT表名,表类型,索引名,索引类型,唯一性

来自用户索引

其中TABLE _ NAME=' TEST

-您可以在USER_IND_COLUMNS中看到两个索引字段名称。

SELECT表名,索引名,列名,列位置

从用户_索引_列

其中TABLE _ NAME=" TEST

-在USER_CONSTRAINTS中只能看到主键约束名。

SELECT表名,约束名,约束类型

来自用户约束

其中TABLE _ NAME=" TEST

-在USER _ CONS _列中只能看到主键约束字段名。

SELECT表名,约束条件名,列名,位置

从用户_ CONS _列

其中约束名称在(选择约束名称

来自用户约束

其中TABLE _ NAME=" TEST ');

-向唯一索引添加非空约束。

ALTER TABLE test MODIFY UniqueKey不为NULL-在USER_CONSTRAINTS中只能看到主键约束名和非空约束名。

SELECT表名,约束名,约束类型

来自用户约束

其中TABLE _ NAME=" TEST '

-在USER _ CONS _列中只能看到主键约束字段名和非空约束字段名。

SELECT表名,约束条件名,列名,位置

从用户_ CONS _列

其中约束名称在(选择约束名称

来自用户约束

其中TABLE _ NAME=" TEST ')

关于编程的更多信息,请访问:编程教学!以上是主键和唯一索引有什么区别的细节。请多关注php中文网站的其他相关文章!

来源:php中文网站

免责声明:本文由用户上传,如有侵权请联系删除!