📅  最后修改于: 2023-12-03 15:35:05.605000             🧑  作者: Mango
在SQL中,约束是指用于限定表中数据的规则。这些规则可以是列的数据类型、主键、唯一性、检查约束和外键。本文将会讲解这些不同类型的约束以及如何在SQL中应用它们。
在创建表时,必须为每个列指定数据类型,以确保只有正确类型的数据可以存储在表中。以下是一些通用的数据类型:
例如,以下代码片段创建一个具有两个列的表,其中一个列具有整数类型,另一个列具有文本类型。
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL
);
在此示例中,我们使用INT
数据类型创建主键列,并使用VARCHAR
创建存储名称的列。我们还使用NOT NULL
约束确保name
列中的每个行都包含值。
主键约束用于定义表中唯一标识每个行的列。主键列的值不能重复,且不能为NULL。以下是使用主键约束创建表的示例:
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL
);
在此示例中,我们使用PRIMARY KEY
约束定义了id
列。这意味着每个行都有唯一的ID号,并且id
列不能为NULL。
唯一性约束用于确保表中的列值唯一。与主键约束不同,唯一性约束允许NULL值。以下是创建唯一性约束的示例:
CREATE TABLE users (
id INT PRIMARY KEY,
email VARCHAR(50) UNIQUE,
name VARCHAR(50) NOT NULL
);
在此示例中,我们在email
列上定义了UNIQUE
约束,确保每个行的值都是唯一的。该约束允许NULL值。
检查约束用于确保添加到表中的每个行都符合指定的条件。以下是使用检查约束的示例。
CREATE TABLE users (
id INT PRIMARY KEY,
email VARCHAR(50) UNIQUE,
age INT CHECK(age >= 18),
name VARCHAR(50) NOT NULL
);
在此示例中,我们使用CHECK
约束检查年龄列是否 >=18。
外键约束用于确保引用其他表的表中的列值始终有效。以下是使用外键约束的示例。
CREATE TABLE orders (
id INT PRIMARY KEY,
user_id INT,
amount FLOAT,
FOREIGN KEY (user_id) REFERENCES users(id)
);
在此示例中,我们使用FOREIGN KEY
约束与REFERENCES
子句定义了user_id
列。这表示该列是外键,它引用了users
表中的id
列。
SQL约束用于限制表中的数据,这能够使表保持一致性和完整性。可以使用数据类型、主键、唯一性、检查和外键约束。了解这些约束的使用可以帮助我们打造更加规范有效的SQL数据库。