约束
概念:对表中的数据进行限定,保证数据的正确性,有效性,完整性;
分类: 四种约束
主键约束: primary key
非空约束: not null
唯一约束: unique
外键约束: foreign key
(一)非空约束
创建表的时候添加非空约束
create table stu(
id int,
name varchar(20) not null
)
删除表中的非空约束
删除表中的非空约束
alter table stu modify name varchar(20);
创建表以后,添加非空约束
alter table stu modify name varchar(20) not null;
(二)唯一约束
创建表时候添加唯一约束
create table stu(
id int ,
phone_number varchar(20) unique
);
唯一约束可以有null ,但是只可以有一条为null
删除唯一约束
alter table stu drop index phone_number;
(三)主键约束
主键约束
primary key
注意: 1.含义:非空且唯一
2.一张表只能有一个字段是主键
3.主键就是表中记录的唯一标识
在创建表的时候添加主键
create table stu(
id int primary key,
name varchar(20)
)
删除表中的主键
alter table stu drop primary key; (主键是唯一的,所以不需要指定字段)
创建完表以后,添加主键
alter table stu modify id int primary key ;
主键的自动增长
概念:如果某一列是数值类型的,使用auto_increment可以完成值的自动增长,
创建表时候添加自动增长
create table stu(
id int PRIMARY KEY auto_increment ,
name varchar(20)
);
注意:自动增长与上一条记录有关,他会先读取上一条记录,然后在进行自动增长;
删除自动增长
alter table stu modify id int;
添加自动增长
alter table stu modify id int auto_increment ;
(四)外键约束
外键约束 foreign key ; 让表与表产生关系,从而保证数据的正确性;
1.在创建表时候,可以添加外键
语法:
create table 表名(
...
外键列
CONSTRAINT 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
);
A表字段属于B表中的字段 那么B表就是主表,其中字段就是主键
另外外键可以为null;
2.删除外键
alter table employee DROP FOREIGN key emp_dep_fk;
3.添加外键
alter table employee add CONSTRAINT emp_dep_fk foreign key (dep_id) REFERENCES department (id);
4.级联操作
就是你修改主表中的数据,从表中的数据也会跟着改变,这就是级联
添加外键,设置级联更新
alter table employee add CONSTRAINT emp_dep_fk foreign key (dep_id) REFERENCES department (id) on update CASCADE;
添加外键,设置级联删除
alter table employee add CONSTRAINT emp_dep_fk foreign key (dep_id) REFERENCES department (id) on update CASCADE;
当你将主表中的一条记录删除的时候,相应的从表中的数据也会被删除