数据库表中一共有七种约束
非空约束
非空,即不能为空,
- 空格不属于空 ’ ’
- 留白符不属于空 ‘’
- 0不属于空
- ‘null’ 不属于 null
给字段名设置非空约束
create table student(
id int,
name varchar(20) not null
);
唯一约束unique
加了唯一约束的字段不能设置重复---------有两种添加方式
//方式一 列级约束 即直接在字段名的后面加unique
create table student (
id int unique,
name varchar(20)
);
//方式二 表级约束 即所有字段设置完成之后,再设置唯一约束
create table student (
id int,
name varchar(20),
unique(int)
);
//表级约束可以设置组合唯一键,存放的数据只要id和name这两个字段不完全一样就可以存放
create table course (
id int,
name varchar(20),
gender varchar(3),
unique(id,name)
);
主键约束primary key
主键约束-------即限定字段之下值不能重复,且不能为null. 一张表中最多只能有一个主键约束-----同样也有两种添加约束的方式
//方式一 列级约束
create table student (
id int primary key,
name varchar(20)
);
//方式二 表级约束
create table student (
id int,
name varchar(20),
primary key(int)
);
//组合主键
create table course (
id int,
name varchar(20),
gender varchar(3) not null,
primary key(id,name)
);
外键约束 foreign key
外键约束-----即建立不同表之间的数据关联关系。外键一般建立在从表里然后和主表里的含有主键或者unique约束的字段关联
需要注意的是,建立外键约束需要分清楚主从表,
比如说,教师表和学生表,学生和教室是学生属于教室的关系,学生表是从表,教室表是主表
同样有两种添加约束的方式
//方式一:(列级约束,语法可以执行,但是在mysql中失效)
create table class(
id int primary key,
name varchar(20),
address varcahr(20)
);
create table student(
id int primary key,
name varchar(20) not null,
gender varchar(20) not null,
classid int references class (id)
);
//方式二: 表级约束
create table class(
id int primary key,
name varchar(20),
address varchar(20)
);
create table student(
id int primary key,
name varchar(20) not null,
gender varchar(20) not null,
classid int,
foreign key (classid) references class (id)
);
check约束
由于在MySQL失效,这里先不介绍
默认值(缺省约束)default
如果添加数据时,未给字段添加内容,则字段使用默认值填充。
create table student(
id int primary key,
name varchar(20) not null,
country varchar(10) default 'China'
);
自增属性约束 auto_increment
自增属性,设置字段下的值,进行自动增长,一般配合主键 或 唯一键约束使用
create table student(
id int primary key auto_increment,
name varchar(20)
);