四大约束
一、主键约束
注意:
1、含义:非空且唯一
2、一张表只能有一个字段为主键
3、主键就是表中记录的唯一标识
在创建表时,添加主键约束
create table stu(
id int primary key,---给 id 添加主键约束
name varchar(20)
);
删除主键
alter table 表名 drop primary key;
创建完表后,添加主键
alter table 表名 modify (要添加主键的列名)int primary key;
自动增长
1、概念:如果某一列是数值类型的,使用 auto_increment 可以来完成值的自动增长
2、在创建表时,添加主键约束,并且完成主键自增长
create table stu(
id int primary key auto_increment, ---给id添加主键约束
name varchar(20)
);
3、删除自动增长
alter table 表名 modify 列名 int;
4、添加自动增长
alter table 表名 modify 列名 int auto_increment;
二、外键约束
作用:
让表与表之间产生关系,从而保证数据的正确性。
在创建表时,可以添加外键
语法:
create table 表名(
……
外键列
constraint 外键名称 foreign key(外键列名称)references 主表名称(主表列名称)
);
删除外键
alter table 表名 drop foreign key 外键名称;
创建表之后,添加外键
alter table 表名 add constraint 外键名称 foreign key(外键字段名称)references 主表名称(主表列名称);
级联操作
1、添加级联操作
语法:alter table 表名 add constraint 外键名称
foreign key(外键字段名称)references 主表名称(主表列名称)on update cascade on delete cascade;
2、分类:
①级联更新:on update cascade
②级联删除:on delete cascade
三、非空约束
作用:
某一列的值不能为空
创建表时添加约束
CREATE TABLE 表名(
id INT,
NAME VARCHAR(20) NOT NULL -- name为非空
);
创建表完后,添加非空约束
ALTER TABLE 表名 MODIFY 列名 该列数据类型 NOT NULL;
删除name的非空约束
ALTER TABLE 表名 MODIFY 列名 该列数据类型;
四、唯一约束
作用:
某一列的值不能重复
注意:
唯一约束可以有 null 值,但是只能有一条记录为 null
在创建表时,添加唯一约束
CREATE TABLE 表名(
id INT,
phone_number VARCHAR(20) UNIQUE -- 手机号
);
删除唯一约束
ALTER TABLE 表名 DROP INDEX phone_number;
在表创建完后,添加唯一约束
ALTER TABLE 表名 MODIFY phone_number VARCHAR(20) UNIQUE;