1、default 默认约束
default用于为表中的列设置默认值,如果插入行时没有为这个列设置默认值,Mysql会自动为这个列填上默认值。
create table t1(id int default 110, name varchar(10));
insert into t1(name) value("thenew"),("ameng"); # 插入时未设置id默认值
2、not null 非空约束
not null 非空约束,添加该约束的字段的值不能为空。
create table t2(id int not null, name varchar(20));
insert into t2(name) values("haha"); # id为空,执行时会报错
3、unique key 唯一约束
unique key用于确保在有约束的列中所有数据是唯一的。
create table t3(id int unique key, name varchar(20) not null);
insert into t3 value(1,'xiaoming');
insert into t3 value(1,'xiaoming'); # 会报错
4、primary key 主键约束
主键约束由两部分组成,唯一性和非空性,主键一般用于唯一标识表中的每一行,并可被用来做联接表的查询。
create table t4(id int primary key,name varchar(20) not null unique key);
insert into t4 values(1,'yy');
5、auto_increment 自增长约束
用于在insert新行到表时生成数字序列,这个数字通常是主键,用于唯一标识表中的每一行
create table t5(id int primary key auto_increment, name varchar(10));
insert into t5(name) values('xiaowang'),('laowang');
6、foreign key 外键约束
用来建立主表和从表之间的关联关系,这种关系用于保证数据的完整性和一致性,删除主表的时候需要先把从表删除后才能删除主表。
create table a(a_id int primary key auto_increment,
a_name varchar(20) not null
); # 主表
insert into a values(1,'a1'),(2,'a2');
create table b(b_id int primary key,
age int not null,
sex varchar(20),
hei int,
fy_id int not null,
foreign key(fy_id) references a(a_id)
); #从表
insert into b values(1,19,'nan',178,1),(2,20,'nv',172,2);
7、表关系
ER模型用于描述现实世界中的实体、属性和它们之间的关系,主要由三个基本元组组成:实体、属性、关系、
关系:一对一、一对多、多对多