`
guoyanxi
  • 浏览: 275767 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

主键和唯一键约束与唯一索引的区别

    博客分类:
  • db2
阅读更多
唯一的区别就是:
前者:不允许有空值
后者:可以有一个空值

对后者实验:
[db2inst@rhel5 ~]$ db2 "create table nnull(aaa varchar(7))"        --建表 
DB20000I  The SQL command completed successfully.
[db2inst@rhel5 ~]$ 
[db2inst@rhel5 ~]$ db2 "create unique index x on nnull(aaa)"      --建索引
DB20000I  The SQL command completed successfully.
[db2inst@rhel5 ~]$ 
[db2inst@rhel5 ~]$ db2 "insert into nnull values('')"       --insert空值
DB20000I  The SQL command completed successfully.
[db2inst@rhel5 ~]$ db2 "commit"
DB20000I  The SQL command completed successfully.
[db2inst@rhel5 ~]$ db2 "insert into nnull values('')"      --再insert空值就失败了
DB21034E  The command was processed as an SQL statement because it was not a 
valid Command Line Processor command.  During SQL processing it returned:
SQL0803N  One or more values in the INSERT statement, UPDATE statement, or 
foreign key update caused by a DELETE statement are not valid because the 
primary key, unique constraint or unique index identified by "1" constrains 
table "DB2INST.NNULL" from having duplicate values for the index key.  
SQLSTATE=23505
分享到:
评论

相关推荐

    MySQL的主键与唯一索引约束

    MySQL中的主键与唯一索引约束是数据库设计中至关重要的概念,它们确保数据的唯一性和完整性。主键是一种特殊的唯一索引,它定义了一个表的唯一标识,不允许有重复值且不能为空。唯一索引则允许有空值,但索引中的每...

    主键索引与唯一索引的区别

    1、 主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。 2、 主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。 3、 唯一性索引列允许空值,而主键列不允许为空值。 4、 主键列在创建时...

    MySQL 主键与索引的联系与区别分析

    下面是主键和索引的一些区别与联系。 1. 主键一定是唯一性索引,唯一性索引并不一定就是主键。 所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一...

    goldengate同步无主键无唯一索引表的问题以及解决方案.docx

    1. 添加主键或唯一索引:在源表和目标表中添加主键或唯一索引,以便 GoldenGate 正确地识别和处理数据的变化。 2. 使用 supplemental logging:使用 supplemental logging 功能, GoldenGate 可以记录所有列的变化,...

    键、索引、约束及其区别

    ### 键、索引、约束及其区别 #### 一、索引 **1.1 什么是索引?** 索引是对数据库表中一列或多列的值进行排序的一种结构。在关系型数据库中,索引是一种特殊的数据库结构,用于提高对表的操作效率,特别是对于`...

    mysql主键和唯一索引的区别(csdn)————程序.pdf

    即使一个列上有唯一索引,如果不指定为主键,那么它就不是主键,不具有主键的全部约束特性。唯一索引可以用于实现部分数据完整性,但并不像主键那样有强制的非空属性。 在数据库设计中,主键常被用作外键,以建立表...

    主键、外键、唯一、约束区别

    唯一性约束与主键的主要区别在于: 1) **空值(NULL)**:唯一性约束的列可以接受空值,而主键列则不能。 2) **角色**:主键是表的标识符,而唯一性约束只是提供另一种方式来唯一识别记录,但不是必需的。 3) **索引...

    Mysql主键和唯一键的区别点总结

    在MySQL数据库设计中,主键和唯一键是两种重要的约束类型,它们用于确保数据的唯一性和完整性。了解它们之间的区别对于有效地设计数据库至关重要。 首先,让我们深入了解一下**主键**。主键是表中的一个或一组列,...

    数据库,索引,主键,约束,sql

    在数据库中,索引、主键和约束是至关重要的概念,而SQL(Structured Query Language)则是与数据库交互的语言。 首先,索引是提高数据库查询速度的关键工具。它们类似于书籍的目录,使得数据库能够快速定位到特定的...

    SQLServer主键和唯一约束的区别

    主键和唯一约束都要求字段值唯一,除此外,它们还有如下区别: ·同一张表只能有一个主键,但能有多个唯一约束; ·主键字段值不能为NULL,唯一约束字段值可以为NULL; ·主键字段可以做为其他表的外键,唯一约束...

    oracle约束和索引笔记

    - **唯一索引(Unique Index)**: 确保索引键的唯一性,与唯一约束相似,但不强制非空。 - **分区索引(Partitioned Index)**: 将大型表的索引分割成更小、更易管理的部分,提高大规模数据的查询性能。 - **复合...

    oracle创建表创建唯一索引

    以下将详细介绍如何创建学员信息表,创建唯一索引,以及如何修改表来添加主键和检查约束。 首先,我们来理解"创建学员信息表"。在Oracle中,我们可以使用`CREATE TABLE`语句来创建新的表。一个典型的学员信息表可能...

    oracle表主键和外键的区别

    **唯一键**与主键相似,也是保证数据唯一性的约束,但有以下不同: 1. 允许空值:唯一键允许包含空值,而主键不允许。 2. 不是主键:一个表可以有多个唯一键,但只有一个主键。 **左联接**和**右联接**是SQL中的两...

    超键 候选键 主键的简单介绍

    在数据库设计中,超键(Superkey)、候选键(Candidate Key)与主键(Primary Key)是三个非常重要的概念,它们在关系型数据库的实体完整性约束中扮演着核心角色。 1. **超键(Superkey)**:在一个关系模型中,...

    SQL 2005中约束和索引的作用与联系.pdf

    主键约束(PRIMARY KEY)和唯一约束(UNIQUE)与索引紧密相关。创建主键约束时,系统通常会自动创建一个聚集索引(如果表中尚未存在)。如果表已有一个聚集索引,那么创建主键约束时,系统会创建一个唯一的非聚集...

    第B章-MySQL索引与数据完整性约束优秀文档.ppt

    2. 唯一性索引(UNIQUE):这种索引和前面的普通索引基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须是唯一的。创建唯一性索引的关键字是UNIQUE。 3. 主键(PRIMARY KEY):主键是一种唯一性索引,它...

    MySQL索引之主键索引

    在MyISAM引擎中,唯一索引和主键索引的区别不大,除非唯一索引包含NULL值。而在InnoDB中,主键作为聚集索引,而其他唯一索引和辅助索引仅作为非聚集索引。这导致了查询性能上的差异,辅助索引查询可能需要额外的步骤...

Global site tag (gtag.js) - Google Analytics