SQL数据定义之约束
主键约束
唯一确定一张表中的一条记录,使字段不重复且不为空
CREATE TABLE user(
id int PRIMARY KEY,
name VARCHAR(20));
联合主键:主键值的并集可以唯一确定一张表中的一条记录
CREATE TABLE user2(
id int PRIMARY KEY,
name VARCHAR(20),
PRIMARY KEY(id, name));
自增约束
CREATE TABLE user2(
id int PRIMARY KEY auto_increment,
name VARCHAR(20),
PRIMARY KEY(id, name));
唯一约束
约束修饰的字段的值不可以重复
creat table user(
id integer,
name varchar(20) -- 方法一
unique(name) -- 方法二
);
alter table user add unique(name) -- 方法三
insert into user values(1, '张三')
-- insert into user values(1, '张三') 错误,张三重复
删除唯一约束
alter table user
drop index name
添加唯一约束
alter table user modify name varchar(20) unique
非空约束
creat table user(
id int,
name varchar(20) not null
);
-- insert into user values(1) 错误
默认约束
creat table user(
id integer,
name varchar(20),
age integer default 10
);
insert into user (id, name) values(i, '张三');
外键约束
creat table classes(
id integer primary key,
name varchar(20)
);
creat table student(
id integer primary key,
name varchar(20),
classid integer,
foreign key(classid) references classes(id)
);
1.主表classes中没有的数据值,在副表(子表)中,是不可以使用的
2.主表中的记录被附表引用,是不可以被删除的