一、主键
主键约束:primary key ,非空且唯一
create table emp2(
id int primary key,
name varchar(10),
salary double
);
#第二种方式
create table emp2(
id int,
name varchar(10),
salary double,
constraint xx primary key(id) -- constraint xx可以省略,它是约束名
);
联合主键:constraint <约束名> primary key(字段1,字段2)
要求:1、插入数据时字段1和字段2必须都不能为空
2、插入数据时字段1和字段2有一个和其他数据不同即可
create table emp3(
id int,
name varchar(10),
salary double,
constraint xx primary key(id,name)
);
insert into emp3 values(1,'pjr',3000)(2,'pjr',3000) --可以执行,因为只需要一个不同即可
也可以在表创建完之后再添加主键
create table emp3(
id int,
name varchar(10),
salary double
);
alter table emp3 add primary key(id,name);
删除主键:
alter table emp3 drop primary key;
二、自增长约束
自增长(auto_increment)约束的特点:
1、默认初始值为1,添加数据时自动+1。
2、一个表中只能有一个字段有自增长约束,并且该字段非空且唯一,类型为整数型(int, tinyint等)
3、注意delete和truncate的区别,delete不会重置,而truncate会
create table emp3(
id int primary key auto_increment, #添加auto_increment约束
name varchar(10),
salary double
)auto_increment=100; #括号后面的auto_increment代表从第几开始
#第二种方法
create table emp3(
id int primary key, #添加auto_increment约束
name varchar(10),
salary double
);
alter table emp3 auto_increment = 100;
insert into emp3 values(NULL,'pjr',3000)
insert into emp3 values(NULL,'pjr2',4000)
三、非空约束
not null。值不能为null
create table emp3(
id int,
name varchar(10) not null,
salary double
);
#创建完表后再添加
create table emp3(
id int,
name varchar(10),
salary double
);
#modify用于修改字段属性
alter table emp3 modify name varchar(15) not null;
使用modify删除非空约束
create table emp3(
id int,
name varchar(10) not null,
salary double
);
alter table emp3 modify name varchar(10); #modify 重构约束的属性,不带not null即是删除
四、唯一约束和默认约束
#唯一约束, 值可以为null,null与任何值都不一样
create table emp3(
id int,
name varchar(10) unique,
salary double
);
#默认约束
create table emp3(
id int,
name varchar(10) default 'user',
salary double
);
#也可以用modify在表创建后在添加约束
alter table emp3 modify name varchar(10) unique;