SQL 向已有数据的表格中添加 CHECK 约束

SQL 向已有数据的表格中添加 CHECK 约束

在本文中,我们将介绍如何向已有数据的表格中添加 CHECK 约束。

阅读更多:SQL 教程

什么是 CHECK 约束?

SQL 中,CHECK 约束是一种用于限制列值的条件。它可以确保只有满足某些条件的数据才能插入到表中。通过添加 CHECK 约束,我们可以在已有数据的表格中增加数据完整性。

添加 CHECK 约束的语法

下面是向已有数据的表格中添加 CHECK 约束的语法:

ALTER TABLE 表名
ADD CONSTRAINT 约束名 CHECK (条件);
SQL

其中,表名 是要添加约束的表格名字,约束名 是给约束起的名称,条件 是指定要求的条件。

例如,假设我们有一个名为 Employees 的表格,其中有一个 age 列,我们想要添加一个 CHECK 约束,限制 age 列的值必须大于等于 18。我们可以使用以下 SQL 语句来实现:

ALTER TABLE Employees
ADD CONSTRAINT chk_age CHECK (age >= 18);
SQL

示例说明

为了更好地理解向已有数据的表格中添加 CHECK 约束的过程,我们将以一个示例说明。

假设我们有一个名为 Students 的表格,它包含以下几列:ID姓名性别年龄。现在我们的要求是,只能向 Students 表格中插入年龄大于等于 18 岁的学生记录。

首先,让我们创建这个表格,并插入一些初始数据:

CREATE TABLE Students
(
    ID INT PRIMARY KEY,
    姓名 VARCHAR(50),
    性别 VARCHAR(10),
    年龄 INT
);

INSERT INTO Students (ID, 姓名, 性别, 年龄) VALUES (1, '张三', '男', 20);
INSERT INTO Students (ID, 姓名, 性别, 年龄) VALUES (2, '李四', '女', 17);
INSERT INTO Students (ID, 姓名, 性别, 年龄) VALUES (3, '王五', '男', 22);
INSERT INTO Students (ID, 姓名, 性别, 年龄) VALUES (4, '赵六', '女', 16);
INSERT INTO Students (ID, 姓名, 性别, 年龄) VALUES (5, '田七', '男', 19);
SQL

现在,我们需要添加一个 CHECK 约束,确保只有年龄大于等于 18 的记录才能被插入到 Students 表格中。

使用以下 SQL 语句添加 CHECK 约束:

ALTER TABLE Students
ADD CONSTRAINT chk_age CHECK (年龄 >= 18);
SQL

现在,如果我们尝试插入不符合条件的数据,例如年龄为 16 的学生记录,将会得到一个错误提示。只有符合条件的数据才会被允许插入。

INSERT INTO Students (ID, 姓名, 性别, 年龄) VALUES (6, '刘八', '男', 16);
-- 错误:  CHECK 约束 "chk_age" 违反了约束条件
SQL

总结

通过本文,我们学习了如何向已有数据的表格中添加 CHECK 约束。CHECK 约束可以帮助我们确保数据的完整性,限制只有满足特定条件的数据才能被插入到表格中。通过 ALTER TABLE 语句,我们可以向表格中添加 CHECK 约束,并使用 CONSTRAINT 子句为约束命名。当插入不符合条件的数据时,将会得到一个错误提示。

添加 CHECK 约束是 SQL 中一个重要的数据完整性控制手段,可以有效避免不符合要求的数据被插入。学会使用 CHECK 约束将对数据库的管理和数据质量控制非常有帮助。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册