SQL的约束
1. 概念:对表种的数据进行限定,保证数据的正确性、完整性和有效性
2. 分类:
1. 主键约束:primary key
2. 非空约束:not null
3. 唯一约束:unique
4. 外键约束:foreign key
3.各约束细节:
1. not null:值不能为空
* 创建表时添加非空:直接在列后面加 eg: id INT NOT NULL
* 创建表后添加非空:alter 表名 MODIFY 列名 数据类型 NOT NULL
* 删除非空:alter 表名 modify 列名 数据类型
2. unique:值唯一
* 创建表时添加唯一:直接在列后面加 eg: id INT UNIQUE;
* 创建表后添加唯一:alter 表名 MODIFY 列名 数据类型 UNIQUE
* 删除唯一:alter table 表名 DROP INDEX 列名
3. primay key:非空且唯一
注意:
1. 一张表只能有一个字段为主键
2. 主键就是表中记录的唯一标识
* 创建表时添加主键:直接在列后面加 eg: id INT primary key;
* 创建表后添加主键:alter table 表名 MODIFY 列名 数据类型 PRIMARY KEY;
* 删除主键:alter table 表名 DROP PRIMARY KEY;
* 自动增长:
* 概念:如果某一列时数值类型的,使用auto_increment 可以来完成值的自动增长
* 在创建表时自动增长:id INT primary_key
* 创建表后自动增长:alter table 表名 MODIFY 列名 数据类型 auto_increment
* 删除自动增长:alter table 表名 MODIFY 列名 数据类型
4. foreign key:外键约束
1. 创建表时,可以添加外键
* 语法:
create table 表名(
.....
外键列
constraint 外键名称 foreign key (外键列名称) references 主表名称(主表主键名称)
);
2. 删除外键
* alter table 表名 drop foreign key 外键名称
3. 创建表之后,添加外键
* alter table 表名 add constraint 外键名称 foreign key (外键列名称) references 主表名称(主表主键名称);
4. 级联操作
* 添加级联操作:alter table 表名 add constraint 外键名称 foreign key (外键列名称) references 主表名称(主表主键名称) ON UPDATE CASCADE(级联更新) ON DELETE CASCADE(级联删除);
* 分类:
1.级联添加:ON UPDATE CASCADE
2.级联删除:ON DELETE CASCADE