primary key主建
唯一标识表中的每一条数据 不能重复,不能为空
create table if not exists stu(
id int primary key, <------
name varchar(20)
);
auto_increment自增约束
自增长字段的值从1开始,每次增加1; 数据不重复,生成唯一的id 自增长字段必须是主键
create table if not exists stu(
id int auto_increment primary key, <------
name varchar(20)
);
自增约束可以和逐渐结合在一起使用
如果说我们创建表的时候,忘记创建主键约束
create table user4(
id int,
name verchar(20)
);
alter table user4 add primary key(id);
如何删除主键
alter table user4 drop primary key;
修改主键约束
使用modify修改字段,添加约束
alter table user4 modify id int primary key;
唯一约束
约束修饰字段的值不可以重复
create table user5(
id int,
name varchar(20)
);
alter table user5 add unique(name);
create table user6(
id int,
name varchar(20) unique
);
create table user6(
id int,
name varchar(20),
unique(name)
);
create table user6(
id int,
name varchar(20),
unique(id,name)
);
删除唯一约束
alter table user7 drop index name;
modify添加
alter table user7 modify name varchar(20) unique;
注意
- 建表的时候就添加约束
- 可以使用alter 。。。。。add。。。
- alter。。。modify
- 删除alter。。。。 drop
not null非空约束
修饰的字段不能为空
create table user9(
id int,
name varchar(20) not null
);
default默认约束
当我们插入字段值的时候,如果没有传值,就会使用默认值
create table user10(
id int,
name varchar(20),
age int default 10
)
foreigin_key 外键约束
涉及到两个表:父表、子表 主表、副标
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) reference classes(id)
);
insert into classes value (1,'一班')
insert into classes value (2,'二班')
insert into classes value (3,'三班')
insert into classes value (4,'四班')
insert into students values(1001,'张三',1)
insert into students values(1002,'张三',2)
insert into students values(1003,'张三',3)
insert into students values(1004,'张三',4)
insert into students values(1005,'张三',5)
主表中classes中没有的数据值,在副表中,是不可以使用的。 主表中的记录被副表引用,是不可以被删除的。 参考 参考笔记
|