SQL中的约束

约束

概述

概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。

目的:保证数据库中数据的正确、有效性和完整性。

分类:

约束描述关键字

非空约束限制该字段的数据不能为nullNOT NULL

唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE

主键约束主键是一行数据的唯一标识,要求非空且唯一PRIMARY KEY

默认约束保存数据时,如果未指定该字段的值,则采用默认值DEFAULT

检查约束(8.0.1版本后)保证字段值满足某一个条件CHECK

外键约束用来让两张图的数据之间建立连接,保证数据的一致性和完整性FOREIGN KEY

注意:

约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。

约束演示

约束条件关键字

主键PRIMARY KEY

自动增长AUTO_INCREMENT

不为空NOT NULL

唯一UNIQUE

逻辑条件CHECK

默认值DEFAULT

添加外键:

--建表时添加外键

CREATE TABLE 表名(

    字段名 字段类型,

    ...

    [CONSTRAINT] [外键名称] FOREIGN KEY(外键字段名) REFERENCES 主表(主表列名)

);

--建表后添加外键

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名) REFERENCES 主表(主表列名);

删除外键:

ALTER TABLE 表名 DROP FOREIGN KEY 外键名;

删除/更新行为

行为说明

NO ACTION当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新(与RESTRICT一致)

RESTRICT当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新(与NO ACTION一致)

CASCADE当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则也删除/更新外键在子表中的记录

SET NULL当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(要求该外键允许为null)

SET DEFAULT父表有变更时,子表将外键设为一个默认值(Innodb不支持)

更改删除/更新行为:

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERENCES 主表名(主表字段名) ON UPDATE 行为 ON DELETE 行为;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • SQL--约束 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请...
    归子莫阅读 1,828评论 0 1
  • 前言:本文皆为基础内容,已经熟练掌握的建议跳过,你有更重要的内容需要学习。 零、本文纲要 一、函数 字符串函数 数...
    石头耳东阅读 1,445评论 0 1
  • 内容提纲 DQL:查询语句排序查询聚合函数分组查询分页查询 约束 多表之间的关系 范式 数据库的备份和还原 DQL...
    h2coder阅读 1,450评论 0 0
  • https://www.cnblogs.com/willingtolove/p/9215330.html #五大约...
    03ca2835cf70阅读 5,378评论 0 0
  • 约束能保证数据的完整性和一致性。约束类型:主键约束、唯一约束、非空约束、默认约束、外键约束 主键约束(PRIMAR...
    原来是仙女阿阅读 1,625评论 0 0

友情链接更多精彩内容