约束

一、约束

1. 非空约束 NOT NULL

在一个已创建的表的 Age 字段中添加 NOT NULL 约束如下所示:

ALTER TABLE `Persons` MODIFY `Age` int NOT NULL;

2. 唯一约束 UNIQUE

2.1 ALTER TABLE 时的 UNIQUE 约束
当表已被创建时,在 P_Id 列创建 UNIQUE 约束:

ALTER TABLE `Persons` ADD UNIQUE(`P_Id`)

当表已被创建时,需命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束:

ALTER TABLE `Persons` ADD CONSTRAINT uc_PersonID UNIQUE (`P_Id`,`LastName`)

2.2 撤销 UNIQUE 约束
如需撤销 UNIQUE 约束 :

MySQL: ALTER TABLE `Persons` DROP INDEX uc_PersonID
SQL Server / Oracle / MS Access: ALTER TABLE `Persons` DROP CONSTRAINT uc_PersonID

3. 主键约束 PRIMARY KEY

3.1 添加 PRIMARY KEY

ALTER TABLE `Persons` ADD PRIMARY KEY (`P_Id`)

如需命名并定义多个列的 PRIMARY KEY 约束,可以使用下面的 SQL 语法:

ALTER TABLE `Persons` ADD CONSTRAINT pk_PersonID PRIMARY KEY (`P_Id`,`LastName`)

3.2 撤销 PRIMARY KEY

MYSQL: ALTER TABLE `Persons` DROP PRIMARY KEY
SQL Server / Oracle / MS Access: ALTER TABLE `Persons` DROP CONSTRAINT pk_PersonID

在创建数据表时,因为数据库工作人员忘记添加主键约束,现在我们需要对课程表 courses 添加主键约束,将 id 列设置为主键,请编写相应的 SQL 语句。

ALTER TABLE `courses` ADD PRIMARY KEY (`id`);

请编写 SQL 语句,删除课程表 courses 中的主键约束

ALTER TABLE courses DROP PRIMARY KEY;

4. 外键约束 FOREIGN KEY

4.1 ALTER TABLE 时的 SQL FOREIGN KEY 约束
当 "Orders" 表已被创建时,如需在 "P_Id" 列创建 FOREIGN KEY 约束:

ALTER TABLE `Orders` ADD FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)

如需命名 FOREIGN KEY 约束,并定义多个列的 FOREIGN KEY 约束:

ALTER TABLE `Orders` ADD CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)

4.2 撤销 FOREIGN KEY 约束
👇我们可以通过下面的实例来感受一下如何删除 FOREIGN KEY 约束。
如需撤销 FOREIGN KEY 约束:

MySQL: ALTER TABLE `Orders` DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Acces: ALTER TABLE `Orders` DROP CONSTRAINT fk_PerOrders

请编写 SQL 语句,为课程表 courses 中的 teacher_id 添加外键约束,使之能与教师表 teachers 中的 id 相关联。

alter table courses add foreign key(teacher_id) references teachers (id);

5. 检查约束 CHECK

5.1 表已存在时添加 CHECK 约束
课程表 courses 已存在的情况下为学生总数 student_count 字段添加一个大于 0 的 CHECK 约束。

ALTER TABLE `courses` ADD CHECK ( `student_count` > 0); ALTER TABLE `courses` ADD CONSTRAINT chk_courses CHECK ( `student_count` > 0 AND `teacher_id` > 0);

5.2 撤销 CHECK 约束
如果想要撤销 CHECK 约束,可以使用 DROP 关键字。

MYSQL: ALTER TABLE `courses` DROP CHECK chk_courses
SQL Server / Oracle / MS Access: ALTER TABLE `courses` DROP CONSTRAINT chk_courses

6. DEFAULT 约束

6.1 ALTER TABLE 时的 DEFAULT 约束
👇如果表已被创建时,想要在 City 列创建 DEFAULT 约束,请使用下面的 SQL:

MYSQL: ALTER TABLE `Persons` ALTER `City` SET DEFAULT 'SANDNES'
SQL Server / MS Access: ALTER TABLE `Persons` ADD CONSTRAINT ab_c DEFAULT 'SANDNES' for `City`

6.2 撤销 DEFAULT 约束
👇如需撤销 Persons表的 DEFAULT 约束 :

MYSQL: ALTER TABLE `Persons` ALTER `City` DROP DEFAULT
SQL Server / Oracle / MS Access: ALTER TABLE `Persons` ALTER COLUMN `City` DROP DEFAULT

__EOF__

本文作者粥粥alg
本文链接https://www.cnblogs.com/3456939606zwp/p/17810626.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   粥粥alg  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示