约束类型:
NOT NULL | 指定某列不能存储NULL值 |
---|---|
UNIQUE | 保证某列的每行必须有唯一的值 |
DEFAULT | 规定没有给列赋值时的默认值 |
PRIMARY KEY | NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录 |
FOREIGN KEY | 保证一个表中的数据匹配另一个表中的值的参照完整性 |
CHECK | 保证列中的值符合指定的条件;对于MySQL数据库,对CHECK子句进行分析,但是忽略CHECK子句 |
创建主键约束
create table 数据表名 (字段名1 数据类型 primary key,......);//创建表时添加主键约束
alter table 数据表名 add primary key (字段名1, 字段名2,....);//在已存在的表中添加主键约束
alter table 数据表名 drop primary key;//删除主键约束
唯一约束
create table 数据表名 (字段名1 数据类型 unique, );
alter table 数据表名 add unique (字段名1, 字段名2,....);
alter table 数据表名 drop index 字段名;
非空约束
create table 数据表名 (字段名 字段类型 not null,...);
alter table 数据表名 modify 字段名 数据类型 not null;
alter table 数据表名 modify 字段名 数据类型 (null); //null可写可不写
默认值约束
create table 数据表名 (字段名 数据类型 default value,....);
alter table 数据表名 modify 字段名 数据类型 default value;
alter table 数据表名 modify 字段名 数据类型;
外键约束
create table child_数据表名 (字段名1 数据类型,字段名2 数据类型,...
[constraint 别名] foreign key (外键列名称) references 数据表名 (主表列名称) );
alter table child_数据表名 add foreign key (外键列名称) references 数据表 parent_数据表名(主表列名称) );
alter table child_数据表名 drop foreign key fk_name;