约束
1、主键约束(唯一标识)
当表的某一列被指定为主键后,该列就不能为空,不能有重复值出现。
create table 表名(
列名 列类型 primary key,
列名 列类型
);
或者
create table 表名(
id int,
列名 列类型,
primary key(id)
);
在创建表的时候我们可以通过在类型后面加primary key
,或者在最后通过primary key(列名)
来定义该列为主键。
当一个表已经创建完后,我们也可以通过alter table 表名 add primary key(列名);
来给该表添加主键,通过alter table 表名 drop primary key;
来删除主键。
自增长
create table 表名(
列名 列类型 primary key auto_increment,
列名 列类型
);
在列类型后加auto_increment
可以定义该列自增长,该列类型必须为数字类型,在插入数据时,对于自增长的列可以给值null
来使其自增长。
2、非空约束和唯一约束
create table 表名(
列名 列类型 not null,
列名 列类型 unique
);
not null
定义非空约束
unique
定义唯一约束
3、外键约束
- 外键必须是另一个表(或自己表)的主键的值
- 外键可以重复
- 外键可以为空
- 一个表中可以有多个外键
create table 表名1(
列名1 列类型 primary key,
列名2 列类型
);
create table 表名2(
列名1 列类型 primary key,
列名2 列类型,
constraint 别名(用于区分) foreign key(列名2) references 表名(主键列名)
)
为一个已经创建的表添加外键alter 表名 add constraint 别名(用于区分) foreign key(列名2) references 表名(主键列名);