MySQL约束条件
主键约束:primary key
建议为所有的数据库表都定义一个主键,一张表中只允许设置一个主键,主键字段的值不允许为空。
create table stu1(
id int primary key,
name varchar(20)
);
create table stu2(
id int ,
name varchar(20),
primary key(id)
);
#复合主键:只要有一个不一样就算不重复
create table stu3(
id int ,
name varchar(20),
primary key(id,name)
);
#增加,删除主键(其他的约束也类似)
alter table table_name add primary key(..);
alter table table_name drop primary key;
外键约束:foreign key
外键约束主要用于定义父表和子表之间的某种关系,子表外间的取值要么是UNLL,要么是来自父表主键字段的取值
#父表
create table class(
id int primary key,
name varchar(20)
);
#子表
create table sutdent(
id int primary key,
name varchar(20),
foreign key(class_id) references class(id)
);
非空约束:NOT NULL
有非空约束的内容不能为空,但可以为空白
create table stu(
id int not null,
name varchar
);
唯一约束:unique
一张表中可以存在多个而唯一性约束,并且满足唯一约束的字段可以去NULL值
create table stu(
id int unique,
name varchar
);
默认约束:default
若添加默认值的字段没有被赋值,其值为默认值
create table stu(
id int default=1 ,
name varchar
);
自增约束:anto_increment
一个数据库表中只能有一个字段使用该约束,该字段的数据类型必须是整数类型,由于设置anto_increment约束后的字段会生成唯一的ID,所以该字段经常设置为主键
create table stu(
id int primary key auto_increment ,
name varchar
);
检查约束:check
列如:人的年龄不会有负数
create table stu(
id int ,
name varchar ,
age int check(age>0)
);