主键约束
它能够唯一确定一张表中的一条记录,也就是我们通过某个字段添加约束,就可以是的该字段不重复且不为空。
create table user(
id int primary key,
name VARCHAR(20)
)
联合主键:只要联合的主键加起来不重复就可以 这样id 和uname 就允许重复了
CREATE TABLE user(
id INT,
uname VARCHAR(20),
passwords VARCHAR(20),
PRIMARY KEY(id,uname)
);
添加主键约束,修改表结构:
alter table user add primary key(id);
删除主键约束:
alter table user drop primary key;
自增约束
CREATE TABLE user(
id INT primary key auto_increment,
uname VARCHAR(20)
);
唯一约束
约束该字段的值不允许重复
联合约束:只要联合的主键加起来不重复就可以 这样id 和uname 就允许重复了
CREATE TABLE user(
id INT,
uname VARCHAR(20),
unique(id,uname)
);
非空约束
修饰的字段不能为空 null
CREATE TABLE user(
id INT,
uname VARCHAR(20) not null,
);
默认约束
当我们插入字段值的时候,如果没有传值,就会使用默认值
CREATE TABLE user(
id INT,
uname VARCHAR(20),
age INT default 10
);
外键约束
设计到两个表:父表,子表
主表。父表。
班级表
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)
)
可自行试验约束:
insert into classes values(1,'一班');
insert into classes values(2,'二班');
insert into classes values(3,'三班');
insert into classes values(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);