MySQL
四种约束
概念:对表中的数据进行限定,保证数据的正确性、有效性和完整性。
分类:
1. 主键约束:primary key
一张表只能由一个字段为主键,作为这张表的唯一标识(非空且唯一)
- 在创建表时添加主键:
\qquad create table stu(
\qquad \qquad id int primary key,
\qquad \qquad name varchar(20)
\qquad ); - 删除主键
\qquad alter table stu drop primary key; - 创建完表后添加主键
\qquad alter table stu modify id int primary key;
2. 非空约束:not null
表中的某些数据不能为空值
- 创建表时添加非空约束:
\qquad create table stu(
\qquad \qquad id int,
\qquad \qquad name varchar(20) not null
\qquad ); - 删除非空约束
\qquad alter table stu modify name varchar(20); - 创建表玩之后添加非空约束
\qquad alter table stu modify name varchar(20) not null;
3. 唯一约束: unique
值不能重复 - 创建表时添加唯一约束
\qquad create table stu(
\qquad \qquad id int,
\qquad \qquad phone varchar(20) unique
\qquad ); - 删除唯一约束
\qquad alter table stu drop index phone; - 在创建表后,添加唯一主键
\qquad alter table stu modify phone varchar(20) unique; - 自动增长
\qquad 如果某一列是数值类型的,使用auto_increament可以来完成自动增长
\qquad 在创建表时,添加添加主键约束,并完成主键自动增长
\qquad \qquad create table stu(
\qquad \qquad \qquad id int primary key auto_increment,-- 给id添加主键约束
\qquad \qquad \qquad name varcar(20)
\qquad \qquad );
\qquad 删除自动增长
\qquad \qquad alter table stu modify id int;
\qquad 添加自动增长
\qquad \qquad alter table stu modify id int;
4. 外键约束:foreign key
让表与表之间产生关系,从而保证数据的正确性 - 创建表时添加外键
\qquad create table 表名(
\qquad \qquad …
\qquad \qquad 外键列
\qquad \qquad constraint 外键名称 foreign key (外键列名称) references 主键名称(主键列名称)
\qquad ); - 删出主键
alter table 表名 drop foreign key 外键名称; - 创建表之后,添加外键
\qquad alter table 表名 add constraint 外键名称 foreign key (外键字段名称) references 主表名称(主表列名称);