约束:
列级定义:
1、not null 非空(可以多个)
2、unique 唯一(可以多个,不能重复,但可以null)
3、primary key 主键(只能一个)
4、foreign key 外键(可以多个,列定义 references 关键表(关键字段))
5、check 检查(可以多个,check (字段名 between 1 and 30),check (字段名 in(男,女)))
表级定义(表级定义不包括not null):
constraint 表名_列名_uk unique(列名)
constraint 表名_列名_pk primary key(列名)
constraint 表名_列名_fk foreign key(列名) references 表名(列名) [on delete cascade]--表示要级联删除
constraint 表名_列名_ck check(列名 in(值1,值2))或者(列名 between n and m)或者(列名<m)...
注意:当某个表的约束名称用过以后,另一个表不可以再用这个约束名。
当表已经创建完成后,修改约束的语句:
alter table 表名 modify 列名 not null;
alter table 表名 add constraint {约束名称 unique(列名)}大括号里面和表级定义的语句是一样的.
删除约束:
alter table 表名 drop constraint 约束名
在删除主键约束的时候可能错误。因为存在主从关系,那么在删除主表的主键约束时,必须带上cascade:
alter table 表名 drop primary key cascade;
列级定义:
1、not null 非空(可以多个)
2、unique 唯一(可以多个,不能重复,但可以null)
3、primary key 主键(只能一个)
4、foreign key 外键(可以多个,列定义 references 关键表(关键字段))
5、check 检查(可以多个,check (字段名 between 1 and 30),check (字段名 in(男,女)))
表级定义(表级定义不包括not null):
constraint 表名_列名_uk unique(列名)
constraint 表名_列名_pk primary key(列名)
constraint 表名_列名_fk foreign key(列名) references 表名(列名) [on delete cascade]--表示要级联删除
constraint 表名_列名_ck check(列名 in(值1,值2))或者(列名 between n and m)或者(列名<m)...
注意:当某个表的约束名称用过以后,另一个表不可以再用这个约束名。
当表已经创建完成后,修改约束的语句:
alter table 表名 modify 列名 not null;
alter table 表名 add constraint {约束名称 unique(列名)}大括号里面和表级定义的语句是一样的.
删除约束:
alter table 表名 drop constraint 约束名
在删除主键约束的时候可能错误。因为存在主从关系,那么在删除主表的主键约束时,必须带上cascade:
alter table 表名 drop primary key cascade;