常见约束有:
Not Null 非空约束
Unique 唯一性约束(不重复)
Primary Key 主键约束(非空,不重复)
Foreign Key 外键约束(必须使用引用表存在的值)
Check 检查数据类型约束
ref 高级约束,这里不讲
Not Null 非空约束
alter table STUDENT modify name not null;
alter table STUDENT modify name null; -- 这个删除约束和其他的有点不一样
unique约束
alter table STUDENT add CONSTRAINT uk_name UNIQUE(name);
alter table STUDENT disable CONSTRAINT uk_name; -- disable
alter table STUDENT enable CONSTRAINT uk_name; -- enable
alter table STUDENT drop CONSTRAINT uk_name ;
Primary Key 主键约束(非空,不重复)
alter table STUDENT ADD CONSTRAINT pk_id primary key(ID);
alter table STUDENT drop primary key; -- 注:删除主键后面不用跟主键名,因为操作是先drop主键,再重新添加主键,多字段主键同样是这样的操作
alter table STUDENT ADD CONSTRAINT pk_id primary key(ID,NAME); -- 联合主键
Foreign Key 外键约束(必须使用引用表存在的值)
alter table STUDENT add CONSTRAINT fk_class_id foreign key(class_id) references CLASS(ID);
alter table STUDENT disable CONSTRAINT fk_class_id ; -- disable
alter table STUDENT enable CONSTRAINT fk_class_id ; -- enable
alter table STUDENT drop CONSTRAINT fk_class_id ;
Check 检查数据类型约束 (check 后面按照该字段where条件即可 )
ALTER TABLE student ADD CONSTRAINT check_no check (no between 1 and 100);
ALTER TABLE student ADD CONSTRAINT check_no check (no > 1 and no < 100);
ALTER TABLE student ADD CONSTRAINT check_no check (no in (4,5,6));
ALTER TABLE student drop CONSTRAINT check_no; -- 删除
unique,primary key ,check 语法类似。
foreign key 多了个references
not null 是用modify来修饰的
add的时候不需要constraint,但是删除的时候需要,因为drop不只可以删除constraint,还可以删除列等,如drop column。