约束:
- 作用于列表表上的规则,用于限制加入表中的数据
- 约束的存在保证了数据库中数据的正确性、有效性和完整性
分类:
1. 非空约束:not null 保证列中数据不能有null值
♦ 建表前添加:create table 表名(
列名 数据类型 not null,
......
);
♦ 建表后添加:alter table 表名 modify 列名 数据类型 not null;
♦ 删除:alter table 表名 modify 列名 数据类型;
2. 唯一约束:unique 保证列中所有数据各不相同
♦ 建表前添加:create table 表名(
列名 数据类型 unique [auto_increment],
......
);
♦ 建表前添加:create table 表名(
列名 数据类型,
......
[constraint] [约束名称] unique(列名)
);
♦ 建表后添加:alter table 表名 modify 列名 数据类型 unique;
♦ 删除:alter table 表名 drop index 列名;
3. 主键约束:primary key 主键是一行数据的唯一标识,要求非空且唯一,一张表只能有一个主键
♦ 建表前添加:create table 表名(
列名 数据类型 primary key [auto_increment],
......
);
♦ 建表前添加:create table 表名(
列名 数据类型,
......
[constraint] [约束名称] primary key(列名)
);
♦ 建表后添加:alter table 表名 add primary key(列名);
♦ 删除:alter table 表名 drop primary key;
4. 默认约束:default[value] 保存数据时,未指定值则采用默认值
♦ 建表前添加:create table 表名(
列名 数据类型 default 默认值,
......
);
♦ 建表后添加:alter table 表名 alter 列名 set default 默认值;
♦ 删除:alter table 表名 alter 列名 drop default;
5. 检查约束:check 保值列中的值满足某一条件 注:MySQL不支持检查约束
6. 外键约束:foreign key 外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性
♦ 建表前添加:create table 表名(
列名 数据类型,
......
[constraint] [外键名称] foreign key(外键列名) references 主表(主表列名)
);
♦ 建表后添加:alter table 表名 add constraint 外键名称 foreign key(外键列名) references 主表(主表列名);
♦ 删除:alter table 表名 drop foreign key 外键名称;
*. 如果列的值是数字类型且有唯一约束时,可以在约束后添加auto_increment让值自动增长
浙公网安备 33010602011771号