MySQL完整性约束学习
create database adrui;
show databases;
use adrui;
/**not null : 非空约束, 插入数据该字段不能为空*/
/**primary key : 主键约束(主键约束相当于非空约束 && 唯一约束, )*/
/**auto_increment是MySQL扩展的字段值自加的约束,约束字段数据类型必须是整数(默认从1开始加, 或者从第一条记录该字段的值开始自加)*/
/**default : 设置默认值的约束*/
create table tmp(
v int not null,
ID int primary key auto_increment,
sex varchar(7) default 'man'
);
/**foreign key : 外键约束, 字表中的某一记录和父表的参照关系*/
/**
(1)从表中的外键值必须在主表中存在
(2)从表中的外键类型一定要和参照键(主表中的主键)类型一致,若为数#字,则要完全一致;若为字符,字符个数可以不一致。*/
create table employ(
empno int primary key,
ID int,
constraint fk_ID foreign key(ID) references tmp(ID);
);
desc tmp;
desc employ;
/**父表*/
insert into tmp(v) values(3, 1);
insert into tmp(v, sex) values(3, 'woman');
/**字表:带有外键约束的数据插入*/
insert into employ(empno, ID) values(1, 1);
insert into employ(empno, ID) values(2, 2);
select * from tmp;
alter table tmp drop v;
desc tmp;
alter table tmp modify sex varchar(8);
desc tmp;
/*drop table tmp;*/
drop database adrui;
show databases;
unique : 唯一约束, 字面意思
转一篇外键约束的文章 : mysql外键约束