约束
一、概述
1、什么是约束?
在 MySQL 中,约束是用于对表中的存储的数据进行限制和规范的规则,其作用在表中的以确保数据的完整性、一致性和准确性。常见的约束包括主键约束、外键约束、唯一约束、非空约束等等,具体如下表所示:
约束类型 | 定义 | 作用 | 关键字 |
---|---|---|---|
非空约束 | 规定指定列值不能为空 | 保证列有意义数据,避免缺失 | NOT NULL |
唯一约束 | 确保指定列(或组合)值唯一,可含一个NULL | 防止指定列插入重复数据 | UNIQUE |
主键约束 | 表中一列或多列组合,唯一标识每行记录,一个表仅一个主键 | 确保主键列值唯一且非空 | PRIMARY KEY |
默认约束 | 当在表中插入新行时,如果没有为特定列指定值,该列将自动采用默认值。 | 简化数据插入操作,保证数据完整。 | DEFAULT |
检查约束 | 定义条件表达式,列值需满足才可插入或更新 | 依条件限制列值符合业务规则 | CHECK |
外键约束 | 指向另表主键,建立表间关联 | 维护表间数据一致性 | FOREIGN KEY |
2、本文内容
-
本文主要介绍MySQL中约束的定义及分类,包括非空约束、唯一约束、主键约束、默认约束、检查约束、外键约束等,并结合具体实例中展示约束在对数据表中存储数据、规范格式的应用。
-
本文思维导图如下,以供大家参考。视频教程参考B站黑马程序员,如有任何问题欢迎批评指正。
二、约束类型
0、通用语法
CREATE TABLE table_name (
column_name_1 data_type_1 constraint_type_1,
column_name_2 data_type_2 constraint_type_2,
...
);
其中,colume_name为创建表中指定列的名称,data_type为指定列中的字段类型,constraint_type为指定列的约束类型,下面对常见的约束类型进行解释和举例。
1、非空约束(关键词:NOT NULL)
- 非空约束规定表中指定列的值不能为空值(NULL)。
- 对指定列的值规定非空约束,可以保证列必须包含有意义的数据,避免出现数据缺失的情况。
- 示例:
CREATE TABLE products (
product_id INT PRIMARY KEY,
product_name VARCHAR(100) NOT NULL,
price DECIMAL(10, 2)
);
在products表中,product_name列设置了非空约束,表示在插入或更新数据时,必须为product_name列提供一个值,不能使其为 NULL,否则会出现报错信息。