主键约束
它能够唯一确定一条表中的某条记录,给某条字段添加主键约束,使得它不重复也不为空,比如学号之类的
--给id添加主键
create table user(
id int primary key,
name varchar(20)
);
--联合主键,是指两个字段不同时重复,例给id和name添加主键
create table user2(
id int,
name varchar(20),
password varchar(20),
primary key(id,name)
);
--建表后再添加主键约束
alter table user2 add primary key(id);
--删除主键
alter table user2 drop primary key;
自增约束
给id添加主键约束和自增约束,可以实现插入新数据时不输入id而自动增加id的值
create table user3(
id int primary key auto_increment,
name varchar(20)
);
insert into user3(name) values('zhangsan');
insert into user3 values(2,'lisi');
非空约束
修饰的字段不能为NULL
create table user4(
id int primary key auto_increment not null,
name varchar(20)
);
默认约束
当插入字段值的时候,如果没有传值,就会使用默认值
create table user4(
id int ,
name varchar(20),
age int default 10
);
外键约束
涉及到两个表,一个主表一个副表
1.主表中没有的数据值,副表是不可以引用的,比如主表班级数据中没有5班,副表学生表班级id绑定了主表的班级数据,则不能在副表中插入到5班
2.主表被引用的外键不允许被删除,比如说删除了主表班级表中的4班,则副表中的4班同学就不知道归属于哪了
--创建班级表,为主表
create table classes(
id int primary key,
name varchar(20)
);
--创建学生表,为副表
create table student(
id int primary key,
name varchar(20),
class_id int,
foreign key(class_id) references classes(id)
);
insert into classes values(1,'一班');
insert into classes values(2,'二班');
insert into classes values(3,'三班');
insert into classes values(4,'四班');
insert into student values(1001,'张三',1);
insert into student values(1002,'张三',2);
insert into student values(1003,'张三',3);
insert into student values(1004,'张三',4);
--报错
insert into student values(1005,'李四',5);
1189

被折叠的 条评论
为什么被折叠?



