在维护和平秩序的规则中,数据库世界中的这些规则被称为完整性约束。就像社会在每个人遵守法律时蓬勃发展一样,当数据遵循这些关键约束时,数据库保持准确和一致。本文将进一步讨论SQL中的完整性约束。
想象一个存储客户及其订单信息的表格。没有约束,可能会遇到一个订单引用了一个不存在的客户!完整性约束通过执行特定规则帮助防止此类数据异常。
SQL中有四种主要类型的完整性约束,每种都服务于特定目的:
这些确保每行表有一个唯一的标识符,通常通过主键约束来执行。这有助于防止重复条目,并保证有办法唯一地识别每条记录。还可以利用该属性来获取和组织数据。
这些定义了特定列的有效值。例如,年龄列可能有域约束限制条目为非空。这确保数据符合预期格式,并防止可能导致数据库中更多问题的不想要的数据条目。
这些维护表之间的关系。外键约束在一张表的列(外键)和另一张表的主键(被引用表)之间创建链接。这确保数据库中的数据引用有效且一致。
这些允许对列或列组进行更复杂的验证规则。可以定义数据必须遵守的自定义表达式。这为在数据库中执行特定业务逻辑提供了更大的灵活性。
以下是使用完整性约束的好处:
-- 创建表
CREATE TABLE Departments (
DeptID INT PRIMARY KEY,
DeptName VARCHAR(50) UNIQUE NOT NULL
);
CREATE TABLE Employees (
EmpID INT PRIMARY KEY,
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Email VARCHAR(100) UNIQUE,
Salary DECIMAL(10, 2) CHECK (Salary > 0),
DeptID INT,
FOREIGN KEY (DeptID) REFERENCES Departments(DeptID)
);
-- 插入示例数据
INSERT INTO Departments (DeptID, DeptName) VALUES
(1, 'HR'),
(2, 'IT'),
(3, 'Finance');
INSERT INTO Employees (EmpID, FirstName, LastName, Email, Salary, DeptID) VALUES
(101, 'John', 'Doe', '[email protected]', 50000, 1),
(102, 'Jane', 'Smith', '[email protected]', 60000, 2),
(103, 'Mike', 'Johnson', '[email protected]', 55000, 3);