SQL约束详解:主键、唯一、外键等

1星 需积分: 5 3 下载量 183 浏览量 更新于2024-07-31 收藏 75KB DOC 举报
"这篇文档主要介绍了SQL中的六种约束语句,包括创建约束、检查约束、主键约束、惟一性约束、外部键约束和默认约束以及空值约束,这些都是确保数据库完整性和数据准确性的关键机制。" 在SQL中,约束是一种规则,用于限制表中的数据类型和值,以维护数据的准确性和一致性。以下是每种约束类型的详细说明: 1. 创建约束:这是定义所有类型约束的基础,可以为特定列或整个表设置约束。约束名是可选的,如果未指定,系统会自动生成。 2. 检查约束 (CHECK constraint):允许设置条件,确保插入或更新的数据满足指定的逻辑表达式。例如,你可以设定一个年龄列的最小值和最大值,确保输入的年龄在合理的范围内。 示例: ```sql CREATE TABLE 我的会员 ( 会员编号 smallint NOT NULL CONSTRAINT MemberNoChk CHECK (会员编号 > 0) ) ``` 3. 主键约束 (PRIMARY KEY constraint):主键是表中的一个或一组列,其值必须是唯一的,并且不允许为空。主键用于标识表中的每一行,并且可以用于与其他表建立关联。 示例: ```sql CREATE TABLE Customers ( CustomerID int PRIMARY KEY, Name varchar(50) ) ``` 4. 惟一性约束 (UNIQUE constraint):与主键类似,惟一性约束确保列中的每个值都是唯一的,但不强制非空。这可以用于那些不需要作为主键但仍然需要唯一性的列。 示例: ```sql ALTER TABLE Customers ADD UNIQUE (Email) ``` 5. 外部键约束 (FOREIGN KEY constraint):外部键约束用于关联两个表,确保引用的值存在于被引用表的主键或唯一键中。这有助于维护数据的一致性,防止出现“孤儿”记录。 示例: ```sql CREATE TABLE Orders ( OrderID int PRIMARY KEY, CustomerID int, FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) ) ``` 6. 默认约束 (DEFAULT constraint):允许为列设置默认值,当插入新记录时,如果未提供该列的值,系统将自动使用默认值。 示例: ```sql CREATE TABLE Employees ( EmployeeID int PRIMARY KEY, HireDate datetime DEFAULT GETDATE() ) ``` 7. 空值约束 (NULL | NOT NULL constraint):定义列是否允许包含NULL值。NOT NULL约束要求列中的每个值都必须存在,不允许为空。 示例: ```sql CREATE TABLE Products ( ProductID int PRIMARY KEY, ProductName varchar(50) NOT NULL ) ``` 这些约束在SQL中扮演着至关重要的角色,它们确保了数据的准确性和完整性,防止了无效或不合法的数据输入,从而维护了数据库的健康状态。在设计数据库时,正确地应用这些约束是确保数据质量的关键步骤。