📅  最后修改于: 2023-12-03 14:47:38.923000             🧑  作者: Mango
在 SQL 数据库中,约束(constraint)是用于保证数据完整性的规则。它们可以用于规定表中数据的限制和要求。
常见的 SQL 约束有如下几种:
主键约束定义了表中一个特定列的唯一标识符,用于保证每一行的数据都能被唯一地标识。主键列的值不能为 NULL。
在创建表时,可以在列定义中使用 PRIMARY KEY 来定义主键约束。例如:
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100)
);
外键约束定义了表之间的关系,确保表之间的参照关系完整和一致。外键必须参照其他表中的主键,从而可以确保关系的唯一性。
在创建表时,可以在列定义中使用 FOREIGN KEY 来定义外键约束。例如:
CREATE TABLE orders (
id INT PRIMARY KEY,
user_id INT,
product_id INT,
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (product_id) REFERENCES products(id)
);
唯一约束保证某个特定列中的值是唯一的,可以用于保证数据中的重复数据不会被插入进来。
在创建表时,可以在列定义中使用 UNIQUE 来定义唯一约束。例如:
CREATE TABLE products (
id INT PRIMARY KEY,
name VARCHAR(50) UNIQUE,
price DECIMAL(10,2)
);
检查约束用于添加额外的条件,确保在插入数据时满足某些逻辑条件,例如一个数字列只能大于 0。
在创建表时,可以在列定义中使用 CHECK 来定义检查约束。例如:
CREATE TABLE invoices (
id INT PRIMARY KEY,
customer_id INT,
total DECIMAL(10,2) CHECK (total > 0),
FOREIGN KEY (customer_id) REFERENCES customers(id)
);
非空约束用于确保某个特定列中的值不为空。
在创建表时,可以在列定义中使用 NOT NULL 来定义非空约束。例如:
CREATE TABLE customers (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100),
phone VARCHAR(20) NOT NULL
);
以上是常见的 SQL 约束,它们能够有效地保证数据的完整性和安全性。在实际开发过程中,根据需要选择使用合适的约束是非常重要的。