oracle数据库完整性约束笔记

一、开发中使用完整性约束

1.非空约束
2.唯一约束
3.主键约束
4.检查约束
5.主外键约束
6.潜在约束(数据类型的检查)

形式:

    CONSTRAINT pk_mid_name PRIMARY KEY (mid,name) ,
    CONSTRAINT uk_email UNIQUE (email) ,
    CONSTRAINT ck_sex   CHECK (sex IN ('男','女'))

注意:

oracle中的约束也属于数据库中的一种对象。
在oracle中为了方便的进行约束维护,把所有的约束都作为一个一个独立的数据库对象进行保存,这些信息都存放在数据库字典中,每个约束都有一个自己的名字,这样便于维护。方式为系统分配和用户自定义(constraint关键字,约定为约束简写_字段)两种。

二、级联删除

下面介绍难懂的主外键约束(父子表关系)
如果父表没有,子表数据插入不进去。删除父表数据,得把子表响应的数据全部删除掉。

1.也可以使用强制删除表(不能再直接使用purge选项了)
DROP TABLE member CASCADE CONSTRAINT ;
2.级联删除
创建表时候,增加级联删除 on delete cascade;
CONSTRAINT fk_mid FOREIGN KEY(mid) REFERENCES member(mid) ON DELETE CASCADE
3.级联更新,创建表的时候,设置级联更新
CONSTRAINT fk_mid FOREIGN KEY(mid) REFERENCES member(mid) ON DELETE SET NULL

三、查看约束

1.查看全部的约束名称、类型、约束设置对应的表名称
SELECT constraint_name,constraint_type,table_name FROM user_constraints ;

2.查询emp表上的全部约束
SELECT constraint_name,constraint_type,table_name FROM user_constraints WHERE table_name='EMP' ;
3.查询user_cons_columns数据字典
SELECT * FROM user_cons_columns ;

四、修改约束

1.为member表的mid字段增加主键约束
ALTER TABLE member ADD CONSTRAINT pk_mid PRIMARY KEY(mid) ;
2.为member表的age增加检查约束
ALTER TABLE member ADD CONSTRAINT ck_age CHECK(age BETWEEN 0 AND 200) ;
2.非空约束
ALTER TABLE member MODIFY (name VARCHAR2(30) NOT NULL) ;
3.禁用约束
ALTER TABLE advice DISABLE CONSTRAINT pk_adid ;
4.重启约束
ALTER TABLE member ENABLE CONSTRAINT pk_mid ;
5.删除约束(无关联外键)
ALTER TABLE advice DROP CONSTRAINT pk_adid ;
6.删除member表之中的“pk_mid”约束 (有关联外键)
ALTER TABLE member DROP CONSTRAINT pk_mid CASCADE ;

五、总结

自律才能自由!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容