精华内容
下载资源
问答
  • 主键和唯一索引区别

    千次阅读 2021-01-18 19:21:09
    前言:作为一个非开发出身的DBA刚开始对数据库的主键、外键等一系列的词很是困惑,到后面对主键(primary key)和唯一索引(Unique Index)又迷糊了很久,后面终于陆续整理清楚了,总结大家分享下;一、相似之处创建...

    前言: 作为一个非开发出身的DBA刚开始对数据库的主键、外键等一系列的词很是困惑,到后面对主键(primary key)和唯一索引(Unique Index)又迷糊了很久,后面终于陆续整理清楚了,总结和大家分享下;

    一、相似之处创建主键的同时会创建一个唯一索引;

    二、区别主键是一种约束,目的是对这个表的某一列进行限制;

    唯一索引是一种索引,索引是数据库表的一个冗余结构,目的是为了更好的查询;

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

    一个表最多只能一个主键,但是可以包含多个唯一索引;

    三、测试

    测试步骤:

    3.1 创建一个表

    脚本:create table john as select * from dba_objects where 1=0;(拷贝表的结构)

    3.2 创建主键,检查是否产生唯一索引和约束

    脚本:ALTER TABLE john ADD CONSTRAINT john_PrimaryKey PRIMARY KEY (object_id);   CREATE UNIQUE INDEX john_UniqueKey ON john  (owner);

    查找语句:

    SELECT table_name,table_type,index_name,index_type,uniqueness

    FROM DBA_INDEXES

    WHERE TABLE_NAME='JOHN';

    43dc03dcdf25fc83bb79904c5283028b.png

    3.3 测试再创建唯一索引和主键

    ALTER TABLE john ADD CONSTRAINT john_PrimaryKey_2 PRIMARY KEY (namespace); ---会报错误ORA-02260: 表只能具有一个主键

    CREATE UNIQUE INDEX john_UniqueKey_2 ON john  (timestamp); -----可以创建

    d3dd70a99a77ea08f4fc395fa62d9a29.png

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    本文作者:JOHN

    ORACLE技术博客:ORACLE 猎人笔记               数据库技术群:367875324 (请备注ORACLE管理 )

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    展开全文
  • 总结,对于主键唯一索引约束: • 执行insertupdate时,会触发约束检查 • InnoDB违反约束时,会回滚对应SQL • MyISAM违反约束时,会中断对应的SQL,可能造成不符合预期的结果集 • 可以使用 insert … on ...
  • 主键和唯一索引区别

    2021-10-15 11:12:05
    1 主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。 2 主键创建后一定包含一个唯一性索引,唯一性索引不一定就是主键。 3 唯一性索引列允许空值, 而主键列不允许为空值。 4 主键可以被其他表引用为...

    区别

    1  主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。

    2  主键创建后一定包含一个唯一性索引,唯一性索引不一定就是主键。

    3   唯一性索引列允许空值, 而主键列不允许为空值。

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

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

    6   主键更适合那些不容易改变的唯一标识,如自动递增列,身份证号等。

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

    展开全文
  • 1.主键是一种约束,唯一索引是一种索引,两者在本质上是不同的;2.一张表只能有一个主键,但可以创建多个唯一索引;3.主键创建后一定包含一个唯一索引唯一索引并一定是主键;4.主键不能为null,唯一索引可以为null...

    1.主键是一种约束,唯一索引是一种索引,两者在本质上是不同的
    2.一张表只能有一个主键,但可以创建多个唯一索引;
    3.主键创建后一定包含一个唯一索引,唯一索引并一定是主键;
    4.主键不能为null,唯一索引可以为null;
    5.主键可以做为外键,唯一索引不行;

    主键列在创建时,已经默认为非空值 + 唯一索引了。

    主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等。

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

    展开全文
  • mysql 主键和唯一索引区别

    千次阅读 2019-10-23 21:02:02
    主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。 主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。...主键和唯一索引都可以有多列。 主键更适合那些不容易更改的唯一标识...

    主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。

    主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。

    唯一性索引列允许空值,而主键列不允许为空值。

    主键列在创建时,已经默认为非空值 + 唯一索引了。

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

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

    主键和唯一索引都可以有多列。

    主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等。

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

    展开全文
  • 主键和唯一索引区别-- 区别主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。唯一性索引列允许空值,而主键列不允许为空值。主键列在...
  • 一、唯一索引: 一是简化了MySQL对这个索引的管理工作,这个索引也因此而变得更有效率; 二是MySQL会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;如果是,...
  • 在这种关系表中,我们可以确定的是,学生课程关系虽然是多对多,但一个确定的学生id一个确定的课程id在关系表中只能存在一个。如下图所示:,业务逻辑就是一个学生只能有当前课程的一个分数。 t_stu...
  • 主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。主键索引:数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。在数据库关系图中为表定义主键将自动创建主键索引,主键索引是...
  • 主键索引和唯一索引区别

    万次阅读 2016-12-21 19:10:37
    主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。 2 主键创建后一定包含一个唯一性索引,唯一性索引不一定就是主键。 3 唯一性索引列允许空值, 而主键列不允许为空值。 4 主键可以被其他表...
  • 索引是一种特殊的文件(InnoDB数据表上的...如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。也就是说,唯一索引可以保证数据记录的唯一...
  • 一般,我们看到术语“索引”“键”交换使用,但实际上这两个是不同的。...推荐阅读:接下来我们看看数据库中的主键约束、唯一键约束和唯一索引区别。SQL> select * from v$version;BANNER----------------...
  • 主键是一种约束; 唯一索引是一种索引 主键创建后一定包含一个唯一索引;但唯一索引不一定是主键 主键不允许空值;唯一索引允许
  • 主键和唯一索引区别 主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。 主键不能 null,而唯一索引可以为 null。 主键可以被其他表引用为外键,而唯一索引不行。 一个表只能有一个主键,但可以有多个...
  • 主键和唯一索引都要求值唯一,但是它们还是有区别的: ①.主键是一种约束,唯一索引是一种索引; ②.一张表只能有一个主键,但可以创建多个唯一索引; ③.主键创建后一定包含一个唯一索引唯一索引并一定是主键...
  • 主键和唯一索引都要求值唯一,但是它们还是有区别的: ①.主键是一种约束,唯一索引是一种索引; ②.一张表只能有一个主键,但可以创建多个唯一索引; ③.主键创建后一定包含一个唯一索引唯一索引并一定是主键; ...
  • 数据库中主键和唯一索引区别

    千次阅读 2018-07-28 16:51:33
    1.主键为一种约束,唯一索引为一种索引,本质上就不同。 2.主键在表中只能有一个,唯一索引可以有多个。 3.主键创建后一定包含唯一性索引,而唯一索引不一定就是主键。 4.主键不能为null,唯一索引可以为null. 5....
  • MySQL索引主键索引

    2020-12-15 16:43:01
    在MySQL里,主键索引和辅助索引分别是什么意思,有什么区别? 上次的分享我们介绍了聚集索引和非聚集索引区别,本次我们继续介绍主键索引和辅助索引区别。 1、主键索引 主键索引,简称主键,原文是PRIMARY KEY,...
  • 查看索引 show index from 数据库表名alter table 数据库add index 索引名称(数据库字段名称)PRIMARY KEY(主键索引)ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )UNIQUE(唯一索引)ALTER TABLE `table_name...
  • 主键与索引的区别如下: 主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。 主键创建后一定包含一个...主键和唯一索引区别 二、区别 主键是一种约束,目的是对这个表的某一列进行限制; 唯一索引是一种
  • 简单描述MySQL中,索引,主键唯一索引,联合索引 的区别,对数据库的性能有什么影响 索引是一种特殊的文件(InnoDB 数据表上的索引是表空间的一个组成部分),它们 包含着对数据表里所有记录的引用指针。 普通索引...
  • (转)仅供自己学习,特此记录Mysql索引概念:说说Mysql索引,看到一个很少比如:索引就好比一本书...Mysql索引主要有两种结构:B+树hash.hash:hsah索引在mysql比较少用,他以把数据的索引以hash形式组织起来,因此当...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 175,709
精华内容 70,283
关键字:

主键和唯一索引的区别