前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

UNIQUE

原创
作者头像
Yolo-Yolo
发布2024-11-14 10:03:37
110
发布2024-11-14 10:03:37

SQL UNIQUE 约束详解

UNIQUE 约束在 SQL 中用于确保某列或某几列的组合值在表中是唯一的。这意味着在应用了 UNIQUE 约束的列中,不能有两条记录具有相同的值,除非该值为 NULLUNIQUE 约束有助于维护数据的完整性,特别是在需要确保某些标识符(如电子邮件地址、电话号码等)在整个表中唯一的情况下。

特点和使用场景

  • 允许 NULL 值:与 PRIMARY KEY 不同,UNIQUE 约束允许列中有 NULL 值,并且可以有多个 NULL 值。
  • 多列唯一性:可以在多个列上设置 UNIQUE 约束,这样只有当这些列的组合值唯一时,才能插入新记录。
  • 多个 UNIQUE 约束:一个表可以有多个 UNIQUE 约束,但只能有一个 PRIMARY KEY 约束。

SQL UNIQUE 约束语法

在创建表时,可以为特定列或多个列定义 UNIQUE 约束:

代码语言:javascript
复制
sqlCREATE TABLE table_name
(
    column1 data_type UNIQUE,
    column2 data_type UNIQUE,
    ...
);

或者,为多个列定义一个 UNIQUE 约束:

代码语言:javascript
复制
sqlCREATE TABLE table_name
(
    column1 data_type,
    column2 data_type,
    UNIQUE (column1, column2)
    ...
);

代码示例

假设我们正在创建一个名为 Persons 的表,其中包含人的 ID、姓氏、名字和电子邮件地址。我们希望确保 P_Id(假设为电子邮件地址)在整个表中是唯一的。

代码语言:javascript
复制
sqlCREATE TABLE Persons (
    P_Id varchar(255) UNIQUE,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255) NOT NULL,
    Age int
);

在这个例子中:

  • P_Id 列被定义为 UNIQUE,这意味着在插入或更新 Persons 表的记录时,P_Id 的值必须是唯一的,不能有两条记录具有相同的 P_Id 值。
  • 如果尝试插入具有已存在的 P_Id 值的新记录,数据库系统将返回错误。

在多列上应用 UNIQUE 约束

如果我们需要确保 LastNameFirstName 的组合是唯一的,可以这样定义:

代码语言:javascript
复制
sqlCREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255) NOT NULL,
    Age int,
    UNIQUE (LastName, FirstName)
);

在这个例子中,LastNameFirstName 的组合值必须是唯一的。如果尝试插入具有相同姓氏和名字的另一条记录,数据库系统将返回错误。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SQL UNIQUE 约束详解
  • 特点和使用场景
  • SQL UNIQUE 约束语法
  • 代码示例
  • 在多列上应用 UNIQUE 约束
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档