SQL Server2012 【总结】“ alter table 表名 add constraints 约束名 约束[,...n] ” 用法

本文详细介绍了SQL中六种常见的表约束:主键约束、外键约束、检查约束、默认值约束、唯一性约束及空值/非空值约束。通过具体的SQL语句格式展示如何在数据库表中应用这些约束。

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

1.主键约束

【格式】alter table <表名> add constraint <约束名> primary key [clusterd | nonclustered] (<主键列名>)

2.外键约束

【格式】alter tabel <表名> add constraint <约束名> foreign key (<外键列名>) reference <父表名>(<主键列名>)

3.检查约束

【格式】alter table <表名> add constraint <约束名> check(<逻辑表达式>)

4.默认值约束

【格式】alter table <表名> add constraint <约束名> default 常量表达式 for <列名>

5.唯一性约束

【格式】alter table <表名> add constraint <约束名> unique[ clustered | nonclustered] (<列名>)

6.空值/非空值约束

【格式】alter table <表名> add constraint <约束名> check( <列名> is [ null | not null ])

目录


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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值