总结SQL中add constraint的用法

本文详细介绍了如何在SQL中使用ALTERTABLEADDCONSTRAINT来添加主键、检查、唯一、默认和外键约束,强调了这些约束在数据库设计中的重要性及其实现方式。

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

【总结】alter table *** add constraint *** 用法

1.主键约束:
要对一个列加主键约束的话,这列就必须要满足的条件就是分空
因为主键约束:就是对一个列进行了约束,约束为(非空、不重复)
以下是代码   要对一个列加主键,列名为id,表名为emp
格式为:
alter table 表格名称 add constraint 约束名称 增加的约束类型 (列名)
例子:

alter table emp add constraint ppp primary key (id)


————————————————————————————————
2.check约束:
就是给一列的数据进行了限制
比方说,年龄列的数据都要大于20的
表名(emp) 列名(age)
格式:
alter table 表名称 add constraint 约束名称 增加的约束类型 (列名)
例子:

alter table emp add constraint xxx check(age>20)


______________________________________________________________________
3.unique约束:
这样的约束就是给列的数据追加的不重复的约束类型
格式:
alter table 表名 add constraint 约束名称 约束类型(列名)
比方说可以给ename列加个unique,让ename列的数据不重复
例子:

alter table emp add constraint qwe unique(ename)


————————————————————————————————
4.默认约束:
意思很简单就是让此列的数据默认为一定的数据
格式:
alter table 表名称 add constraint 约束名称 约束类型 默认值) for 列名
比方说:emp表中的gongzi列默认为10000

alter table emp add constraint jfsd default 10000 for gongzi

————————————————————————————————
5.外键约束:
这个有点难理解了,外键其实就是引用
因为主键实现了实体的完整性,
外键实现了引用的完整性,
应用完整性规定,所引用的数据必须存在!
其实就是个引用,
比方说一个表名称叫dept 里面有2列数据 一列是ID一列是ENAME
id:表示产品的编号
ename:表示产品的名称
另外一个表格名称是emp 里面有2列数据,一列是ID 一列是DID
id:表示用户号
did:表示购买的产品号
要让emp表中的did列去引用dept表中的id
可以用下面的方法
格式:
alter table 表名 add constraint 约束名称 约束类型 (列名) references 被引用的表名称 (列名)
例子:

alter table emp add constraint jfkdsj foreign key (did) references dept (id)

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
发出的红包

打赏作者

小小哭包

创作不易,给作者加个鸡腿吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值