在 PostgreSQL 中,约束(Constraints)是用于定义表格中数据的有效性和完整性规则的规范。通过约束,你可以强制执行表格中数据的特定规则,以确保数据的一致性和正确性。以下是一些常见的约束类型:

1. 主键约束(Primary Key Constraint):

主键约束用于唯一标识表格中的每一行,并确保每个主键列中的值都是唯一的。主键列不能包含空值。
CREATE TABLE employees (
    employee_id SERIAL PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50)
);

2. 唯一约束(Unique Constraint):

唯一约束确保列中的所有值都是唯一的,但与主键不同,唯一约束允许列包含空值。
CREATE TABLE departments (
    department_id SERIAL PRIMARY KEY,
    department_name VARCHAR(50) UNIQUE
);

3. 检查约束(Check Constraint):

检查约束用于限制列中的值的范围,确保它们满足指定的条件。
CREATE TABLE products (
    product_id SERIAL PRIMARY KEY,
    product_name VARCHAR(100),
    price NUMERIC CHECK (price > 0)
);

4. 外键约束(Foreign Key Constraint):

外键约束用于确保在一个表格的列中的值在另一个表格的列中存在匹配。这有助于维护表格之间的引用完整性。
CREATE TABLE orders (
    order_id SERIAL PRIMARY KEY,
    customer_id INTEGER REFERENCES customers(customer_id),
    order_date DATE
);

5. 默认约束(Default Constraint):

默认约束用于在插入新行时为列提供默认值,如果未提供其他值。
CREATE TABLE students (
    student_id SERIAL PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    enrollment_date DATE DEFAULT CURRENT_DATE
);

6. 非空约束(Not Null Constraint):

非空约束用于确保列中的值不为空。
CREATE TABLE books (
    book_id SERIAL PRIMARY KEY,
    title VARCHAR(100) NOT NULL,
    author VARCHAR(50)
);

这些约束类型可以单独使用,也可以组合在一起,以便更好地定义表格的数据规则。在创建表格时,可以通过在列定义中使用 CONSTRAINT 关键字来为列添加约束,或者在表格级别使用 ALTER TABLE 语句来添加约束。




转载请注明出处:http://www.pingtaimeng.com/article/detail/14140/PostgreSQL