Oracle 唯一约束和主键非空

Oracle 唯一约束和主键非空

在本文中,我们将介绍Oracle数据库中的唯一约束和主键非空的概念、用法以及示例说明。

阅读更多:Oracle 教程

什么是唯一约束和主键非空?

唯一约束和主键非空都是用于保证表中某列或列组的数据唯一性和非空性的约束条件。

唯一约束(Unique Constraint)是指对于某一列(或列组)的所有值都是唯一的。如果在表中已经存在某一列(或列组)的值,那么在插入或更新数据时,如果违反了唯一约束,则会抛出异常。

主键非空(Primary Key Not Null)是指对于某一列(或列组)的所有值都不能为空(即非空)。主键是表中的唯一标识,插入或更新数据时,必须保证主键的值为非空且唯一。

如何创建唯一约束和主键非空?

在创建表的时候,可以通过列定义或使用ALTER TABLE语句来创建唯一约束和主键非空。

创建唯一约束

创建唯一约束可以使用UNIQUE关键字。例如,假设我们有一个名为”employees”的表,其中有一个列名为”email”,我们希望该列的值是唯一的,可以这样创建唯一约束:

CREATE TABLE employees (
    id INT PRIMARY KEY,
    email VARCHAR(100) UNIQUE,
    ...
);
SQL

创建主键非空

创建主键非空可以使用PRIMARY KEY关键字,并且该列(或列组)不能为NULL。例如,假设我们有一个名为”employees”的表,其中有一个列名为”id”,我们希望该列的值是主键且非空,可以这样创建主键非空:

CREATE TABLE employees (
    id INT PRIMARY KEY NOT NULL,
    ...
);
SQL

或者,在创建表之后,可以使用ALTER TABLE语句来添加主键约束:

ALTER TABLE employees
ADD CONSTRAINT employees_pk PRIMARY KEY (id);
SQL

示例说明

下面我们通过一个具体的示例来说明唯一约束和主键非空的应用。

假设我们有一个名为”customers”的表,其中有两列:id和email。我们希望id列是主键且非空,而email列的值是唯一的。可以使用以下代码来创建该表:

CREATE TABLE customers (
    id INT PRIMARY KEY NOT NULL,
    email VARCHAR(100) UNIQUE,
    ...
);
SQL

接下来,我们可以插入一些数据来验证唯一约束和主键非空的效果:

INSERT INTO customers (id, email, ...) VALUES (1, 'test1@example.com', ...);
-- 插入成功

INSERT INTO customers (id, email, ...) VALUES (1, 'test1@example.com', ...);
-- 违反唯一约束,插入失败

INSERT INTO customers (id, email, ...) VALUES (NULL, 'test2@example.com', ...);
-- 违反主键非空,插入失败

INSERT INTO customers (id, email, ...) VALUES (2, 'test2@example.com', ...);
-- 插入成功
SQL

通过以上示例,我们可以看到当违反唯一约束或主键非空的条件时,数据库会抛出异常,插入或更新操作会失败。

总结

本文介绍了Oracle数据库中唯一约束和主键非空的概念、用法和示例。唯一约束用于保证某列(或列组)的值是唯一的,主键非空用于保证某列(或列组)的值非空且唯一。通过创建表时定义列约束或使用ALTER TABLE语句添加约束,可以有效地保证数据的完整性。在实际应用中,根据业务需求和数据特点,选择合适的约束来设计和管理数据库表结构十分重要。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册