1. 数据库约束
数据库约束是指对数据库表中的数据所施加的规则或条件,用于确保数据的准确性和可靠性。这些约束可以是基于数据类型、值范围、唯一性、非空等规则,以确保数据的正确性和相容性。
1.1 NOT NULL 非空约束
CREATE TABLE 表名 (
列名 1 数据类型 NOT NULL,
);
非空约束是用来保证某列的值不能为空的,类似于学生姓名、学号、身份证号这些必要的信息都可以设置为非空约束,如果这些信息为 null 的话是没有意义的。
当我们查看表结构时,有非空约束就会显示 NO,没有非空约束就会显示 YES
1.2 DEFAULT 默认值约束
CREATE TABLE 表名 (
列名 1 数据类型 DEFAULT 默认值,
);
默认值约束是指当我们没有在某列填写数据时,则 MySQL 会自动帮我们生成一个默认值填进去,而这个默认值就是我们自己设置的 default 默认值约束。
通过表结构我们可以发现,不设置默认值的时候 default 对应的时 null。
当插入数据时,如我们指定了插入的值,则插入我们指定的值,否则自动填充默认值。如果我们想指定插入 null 值,也是可以的。
1.3 UNIQUE 唯一约束
CREATE TABLE 表名 (
列名 1 数据类型 UNIQUE,
);
指定了唯一约束的列,该列的值在所有记录中不能重复,比如一个人的身份证号、学生的学号等。
当我们查看表结构时,Key 列显示 UNI 表示唯一约束。
1.4 PRIMARY KEY 主键约束
-- primary key 是主键关键字
-- auto_increment 是自增长关键字
CREATE TABLE 表名 (
列名 1 数据类型 PRIMARY KEY AUTO_INCREMENT,
);
- 主键约束唯一标识数据库表中的每条记录。
- 主键必须包含唯一的值,且不能包含 NULL 值。
- 每个表只能有一个主键,可以由单个列或多个列组成。
- 通常为每张表都指定一个主键,主键列建议使用 BIGINT 类型。
- 通常把主键列设置为自动增长,让数据库维护主键值。
- 如果某条记录写入失败,新生成的主键值将会作废。
- 主键值可以不连续,手动指定一个值,下一次自增从主键的最大值开始。
主键或唯一键冲突时的更新操作,插入否则更新
# 插入 ID 为 100,学号为 100100 的学生记录时,报主键冲突
INSERT INTO student (id, name, sno) VALUES (100,'赵六','100100');
# 可以使用以上语法,如果插入时有冲突则更新当前列的值
student (id, name, sno) (,,) DUPLICATE KEY name , sno ;


