修改约束
如果说表结构的修改还在可以容忍的范畴之内,那么约束的修改是绝对100%禁止的。所有的约束必须在表创建的时候就设置完成。
约束可以进行后期的添加以及后期的删除操作。但是如果要想进行这样的维护,那么必须要保证有约束名称。
范例:数据脚本
--删除数据表
DROP TABLE book PURGE;
DROP TABLE member PURGE;
--清空回收站
PURGE RECYCLEBIN;
--创建数据表
CREATE TABLE member(
mid NUMBER,
name VARCHAR2(20)
);
--测试数据
insert into member(mid,name)values (1,'韩信');
INSERT INTO member(mid,name)values (1,'李白');
INSERT INTO member(mid,name)values (2,null);
COMMIT;
范例:增加约束语法
ALTER TABLE 表名称 ADD CONSTRAINT 约束名称 约束类型(字段) 选项...
范例:为member表增加主键约束
ALTER TABLE member ADD CONSTRAINT pk_mid PRIMARY KEY(mid);
因为此时表中已经存在有相同的ID编号了,所以这个时候约束是不可能创建成功的。
范例:数据正确时增加表约束
delete from member where mid=1;
利用以上的语法可以实现四种约束的增加:主键、唯一、检查、外键,但不包含有非空。
范例:添加非空约束
ALTER TABLE member ADD CONSTRAINT nk_name NOT NULL(name);
如果想要为字段增加非空约束,那么只能够依靠修改表结构的方式完成。
范例:增加非空约束
ALTER TABLE member modify (name varchar2(20) not null);
但是需要保证此时name列上没有null值。
范例:更新表结构
update member set name='李白' where mid=2;
范例:删除约束语法
ALTER TABLE 表名称 DROP CONSTRAINT 约束名称;
范例:删除主键约束
ALTER TABLE member drop constraint primary key;
综合来讲,不要去修改表结构,约束一定要和数据表一起创建。
总结:
- 创建表、约束要一起完成
- 重要的约束:PRIMARY KEY 、FOREIGN KEY、NOT NULL、 UNIQUE