📜  什么是 sql 中的约束 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:21:47.073000             🧑  作者: Mango

SQL 中的约束介绍

在 SQL 中,约束(Constraints)是一种规定表中数据格式、数据完整性和表之间的关系的限制条件。约束是实现数据库数据完整性的关键机制之一。下面介绍 SQL 中常见的约束类型:

主键(Primary Key)

主键是用来唯一标识一条记录的列,每个表只能有一个主键。主键的值不能为 NULL,必须是唯一的,并且不能修改或删除。在创建表的时候,我们可以通过以下语法定义主键:

CREATE TABLE table_name (
    column1 datatype CONSTRAINT pk_name PRIMARY KEY,
    column2 datatype,
    ...
);

其中,pk_name 是主键的名字。

外键(Foreign Key)

外键用于实现表之间的关系。它指向另一个表的主键,并在表之间建立起父子关系。在创建表的时候,我们可以通过以下语法定义外键:

CREATE TABLE table_name1 (
    column1 datatype CONSTRAINT fk_name REFERENCES table_name2(column_name),
    column2 datatype,
    ...
);

其中,fk_name 是外键的名字,table_name2 是被引用的表名,而 column_name 是被引用的列名。

唯一约束(Unique Constraint)

唯一约束要求该列中的所有值都是唯一的。与主键不同的是,唯一约束的值可以为 NULL。在创建表的时候,我们可以通过以下语法定义唯一约束:

CREATE TABLE table_name (
    column1 datatype CONSTRAINT uc_name UNIQUE,
    column2 datatype,
    ...
);

其中,uc_name 是唯一约束的名字。

CHECK 约束

CHECK 约束用于确保列中的所有值都满足一定的条件。在创建表的时候,我们可以通过以下语法定义 CHECK 约束:

CREATE TABLE table_name (
    column1 datatype CONSTRAINT ck_name CHECK (constraint_expression),
    column2 datatype,
    ...
);

其中,ck_name 是 CHECK 约束的名字,constraint_expression 是一个逻辑表达式,只有当该表达式的值为 TRUE 时才会通过约束。

NOT NULL 约束

NOT NULL 约束用于确保列中的值不为 NULL。在创建表的时候,我们可以通过以下语法定义 NOT NULL 约束:

CREATE TABLE table_name (
    column1 datatype NOT NULL,
    column2 datatype,
    ...
);

以上就是 SQL 中常见的约束类型,它们可以帮助我们保证数据的完整性和一致性。