📅  最后修改于: 2023-12-03 15:20:16.344000             🧑  作者: Mango
在SQL(Structured Query Language)中,约束是用于限制表中数据的规则。它们用于确保数据的完整性和一致性,防止非法数据的插入和更新。约束可以应用于整个表或单个列,并可以通过创建复合约束来应用于多个列。
在SQL中,常见的约束有以下几种:
一个表可以有多个列,但只能有一个主键。主键用于唯一标识表中的每一行数据。主键列不能有空值(NULL),并且每个值必须是唯一的。
CREATE TABLE example (
id INT PRIMARY KEY,
name VARCHAR(50)
);
外键用于将两个表之间的数据关联起来。它指向另一个表中的主键列,并且可以确保参照完整性。这意味着,只能将一个存在于另一个表中的值插入外键列。
CREATE TABLE orders (
id INT,
customer_id INT,
order_date DATE,
FOREIGN KEY (customer_id) REFERENCES customers(id)
);
唯一约束确保表中每个值都是唯一的,但可以有空值。每个表可以有多个唯一约束。
CREATE TABLE example (
id INT UNIQUE,
name VARCHAR(50) UNIQUE
);
NOT NULL约束用于确保列中没有空值(NULL)。
CREATE TABLE example (
id INT NOT NULL,
name VARCHAR(50) NOT NULL
);
CHECK约束用于在插入或更新表中的数据时检查值是否符合特定的条件。
CREATE TABLE example (
id INT CHECK (id > 0),
name VARCHAR(50) CHECK (len(name) > 0)
);
SQL约束是确保数据完整性和一致性的重要工具。它们用于限制表中数据的规则,可以应用于整个表或单个列,并可以通过创建复合约束来应用于多个列。熟悉SQL约束对于编写高质量的SQL查询和开发更安全的应用程序非常重要。