SQL的ADD CONSTRAINT的总结

本文详细介绍了如何在已存在的SQL表中添加各种约束,包括主键、唯一约束、默认约束、检查约束和外键,提供了具体的语法格式和使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

添加约束

该语法在已经存在的列名添加约束,具体用法和语法格式如下
###主键:
alter table 表名
add constraint 约束名 primary key (约束的列名)
###唯一约束
alter table 表名
add constraint 约束名 unique (约束的列名)
###默认约束
alter table 表名
add constraint 约束名 default for 约束的列名
###检查约束
alter table 表名
add constraint 约束名 check(表达式)
###外键
alter table 表名
add constraint 约束名 foreign 主键表名(列名) references 外键表名(列名)

SQL中,`ADD CONSTRAINT`语句用于为表添加约束条件。以下是其语法结构和示例的详细说明: ### 1. 主键约束 (PRIMARY KEY) 主键约束确保某列或列组合中的值是唯一的且非空。 ```sql ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY (字段名); ``` 例如: ```sql ALTER TABLE Employees ADD CONSTRAINT PK_EmployeeID PRIMARY KEY (EmployeeID); ``` ### 2. 外键约束 (FOREIGN KEY) 外键约束用于建立和加强两个表数据之间的链接完整性。 ```sql ALTER TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN KEY (字段名) REFERENCES 参考表名(参考字段名); ``` 例如: ```sql ALTER TABLE Orders ADD CONSTRAINT FK_CustomerID FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID); ``` ### 3. 唯一约束 (UNIQUE) 唯一约束确保某列或列组合中的所有值都是唯一的。 ```sql ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE (字段名); ``` 例如: ```sql ALTER TABLE Products ADD CONSTRAINT UQ_ProductCode UNIQUE (ProductCode); ``` ### 4. 检查约束 (CHECK) 检查约束限制列中的值范围。 ```sql ALTER TABLE 表名 ADD CONSTRAINT 约束名 CHECK (条件); ``` 例如: ```sql ALTER TABLE Students ADD CONSTRAINT CHK_Age CHECK (Age >= 18); ``` ### 5. 默认值约束 (DEFAULT) 默认值约束为列指定默认值。 ```sql ALTER TABLE 表名 ADD CONSTRAINT 约束名 DEFAULT 默认值 FOR 字段名; ``` 例如: ```sql ALTER TABLE Orders ADD CONSTRAINT DF_OrderDate DEFAULT GETDATE() FOR OrderDate; ``` ### 注意事项 - **命名规范**:建议使用`约束类型_字段名`格式(如`FK_CustomerID`),以便于维护和错误排查。 - **数据库差异**:不同数据库系统对某些约束的支持可能略有不同。例如,在MySQL中,默认值约束通常通过`ALTER COLUMN`实现。 ### 综合应用示例 以下是一个同时添加多个约束的示例: ```sql ALTER TABLE Employees ADD CONSTRAINT PK_EmpID PRIMARY KEY (EmpID), ADD CONSTRAINT UQ_Email UNIQUE (Email), ADD CONSTRAINT CHK_Salary CHECK (Salary > 0); ```
最新发布
05-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值