📜  在单个表中添加多个约束(1)

📅  最后修改于: 2023-12-03 15:07:58.354000             🧑  作者: Mango

在单个表中添加多个约束

在关系数据库中,一个表可以拥有多个约束。约束是用来确保数据的完整性和规范性的规则。在本文中,我们将介绍如何在单个表中添加多个约束。

什么是约束

约束是对表中数据进行限制或规范的规则。以下是常见的约束类型:

  • 主键约束:用于确保表中每一行的唯一性,主键列的值不能为 NULL;
  • 外键约束:用于实现表之间的关联关系;
  • 唯一约束:用于确保表中某一列的值是唯一的;
  • 检查约束:用于确保表中某一列的值符合特定的条件。
添加约束

在 SQL 中,使用 ALTER TABLE 语句添加约束。以下是添加不同约束的语法:

  1. 添加主键约束:
ALTER TABLE table_name
ADD CONSTRAINT constraint_name PRIMARY KEY (column_name);
  1. 添加外键约束:
ALTER TABLE table_name
ADD CONSTRAINT constraint_name FOREIGN KEY (column_name)
REFERENCES reference_table(reference_column);
  1. 添加唯一约束:
ALTER TABLE table_name 
ADD CONSTRAINT constraint_name UNIQUE (column_name);
  1. 添加检查约束:
ALTER TABLE table_name
ADD CONSTRAINT constraint_name CHECK (condition);

需要注意的是,一张表中可以同时存在多个约束,每个约束都需要有一个唯一的名称。

示例

以一个学生表和班级表的关联为例,我们可以在学生表中添加外键约束和检查约束:

CREATE TABLE class (
    class_id INT PRIMARY KEY,
    class_name VARCHAR(20) NOT NULL
);

CREATE TABLE student (
    student_id INT PRIMARY KEY,
    student_name VARCHAR(20) NOT NULL,
    class_id INT,
    score INT,
    CONSTRAINT fk_class FOREIGN KEY (class_id) REFERENCES class(class_id),
    CONSTRAINT check_score CHECK (score >= 0 AND score <= 100)
);

在上述示例中,学生表的外键约束指向班级表的主键,确保每个学生所在的班级存在;检查约束则确保学生的成绩在 0 到 100 分之间。

总结

在一个表中添加多个约束可以确保数据的规范性和完整性,提高数据库的可靠性。常见的约束类型包括主键约束、外键约束、唯一约束和检查约束。在 SQL 中,使用 ALTER TABLE 语句可以添加约束。注意,每个约束需要有一个唯一的名称。