目录
1.主键约束
他能够唯一确定一张表中的一条记录,也就是我们通过给某个字段添加约束就可以使得该字段不重复且不为空。
例:
Create table user(
id int primary key,
name varchar(20)
);
联合主键(2个值加起来不重复就可以)
Create table user(
id int ,
name varchar(20),
Password varchar(20),
Primary key(id,name)
);
Insert into user(name) values(“张三”);
2.自增约束
与主键约束搭配使用,自动管控值,自动增长id的1,2,3.....的值
Create table user(
id int primary key auto_increment,
name varchar(20)
);
Insert into user(name) values(“张三”);
修改表结构,添加主键(假如创建表时,忘记创建主键约束):
Create table user(
id int,
name varchar(20)
);
alter table user add primary key(id);
删除主键:
alter table user drop primary key(id);
使用modify修改字段添加主键:
alter table user modify id int primary key;
3.外键约束
涉及到两个表:父表,子表
主表,副表
班级表
Create table classes(
id int primary key,
name varchar(20)
);
学生表
Create table students(
id int primary key,
name varchar(20),
class_id int,
foreign key(class_id) references classes(id)(class_id必须来自classes表中的id值)
);
- 主表classes中没有数据值,副表中不可以使用
- 主表中的记录被副表引用,是不可以被删除的
4.唯一约束
约束修饰的字段的值不可以重复
Create table user(
id int,
name varchar(20) ①unique
②unique(id,name)(两个键在一起不重复就可以);
);
③alter table user add unique(name);
删除唯一约束:
alter table user drop index name;
modify修改字段添加:
alter table user modify name varchar(20) unique;
5.非空约束
修饰的字段不能为空
Create table user(
id int,
name varchar(20) not null
);
6.默认约束
当我们插入字段时,如果没有传值,就会在使用默认值
Create table user(
id int,
name varchar(20),
age int default 10
);
传了值就不会使用默认值