📜  PostgreSQL约束(1)

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

PostgreSQL约束

PostgreSQL约束用于保证表中数据的完整性和正确性,它可以限定列值的取值范围、关系、规则和表之间的依赖关系等,保证了数据的一致性和可靠性。

主键约束

主键约束是最常用的约束,用于保证表中的数据唯一性。在一个表中,只能有一个主键,该主键列的值不能为NULL。在创建表时,可以用PRIMARY KEY约束来定义主键:

CREATE TABLE contacts (
    id integer PRIMARY KEY,
    name varchar(50),
    email varchar(50)
);
唯一约束

唯一约束保证某些列的值不能重复,与主键约束类似,但允许NULL值。在创建表时,可以用UNIQUE约束来定义唯一约束:

CREATE TABLE contacts (
    id integer,
    email varchar(50) UNIQUE,
    name varchar(50)
);
外键约束

外键约束用于保证表之间的关系,一个表(子表)中的外键列必须引用另一个表(父表)中的主键列,这种关系称为引用完整性。在创建表时,可以用FOREIGN KEY约束来定义外键约束:

CREATE TABLE orders (
    id integer PRIMARY KEY,
    customer_id integer,
    FOREIGN KEY (customer_id) REFERENCES customers(id)
);
检查约束

检查约束用于保证列中数据的正确性,可以设置规则来限制某些列取值的范围。在创建表时,可以用CHECK约束来定义检查约束:

CREATE TABLE customers (
    id integer PRIMARY KEY,
    name varchar(50),
    age integer CHECK(age >= 18 AND age <= 100)
);
非空约束

非空约束用于保证某些列中的数据不为NULL,在创建表时,可以使用NOT NULL约束来定义非空约束:

CREATE TABLE customers (
    id integer PRIMARY KEY,
    name varchar(50) NOT NULL,
    age integer NOT NULL
);
总结

PostgreSQL约束保证表的数据完整性和正确性,我们可以使用主键约束、唯一约束、外键约束、检查约束和非空约束来定义约束。使用约束可以避免了一些常见错误,提高了数据的可靠性和一致性。