文档详情

管理Oracle约束及分区表.doc

发布:2017-05-30约8.18千字共8页下载文档
文本预览下载声明
1.约束 作用: 约束用于确保数据库数据的完整性,在oracle数据库中,可以使用约束,触发器和应用代码(过程,函数)3种方法实现数据完整性,这3种方法中,因为约束易于维护,并且具有最好的性能,所以实现数据完整性首选约束. 分类: 约束的种类有:not null,unique,primary key,foreign key,check Not null确保字段值不能为空 Unique:确保字段值唯一性 Primary key,最常用的约束(主键约束),主键约束的列值不仅不能重复,也不能为NULL,注意一张表最多只能有一个主键约束,当定义主键约束后oracle自动建立一个以主键为关键字段的索引。 Foreign key:定义了主从表之间的关系,foreign要定义在从表上,但主表必须具有主键约束或唯一约束,当定义froeign key后外部键列的数据必须在主表的主键列中存在,或者为NULL Check::用于强制表行数据必须满足的条件,如工资表,工人工资必须在2000-5000之间 约束状态 enable validate:是默认,新旧数据同时满足约束规则 enable novalidate:旧数据可以不满足,检新插入的数据要满足约束 disable validate:不允许在表上执行任何DML操作,主要用在分区表,对于主键和唯一约事,会删除相应的唯一索引,但约束状态任可用 disable novalidate数据可不满足约束规则,对于主键和唯一约事,会删除相应的唯一索引, 约束常用语句 create?table?t(i?number,v?mubmer?not?null) ? create?table?t(i?number,v?mubmer?unique) ? create?table?t(i?number?constraint?pk_i?primary?key,v?number) ? create?table?t2(c?number,d?number,constraint?fk_d?foreign?key(c),references?t1(v)); ? alter?table?t?add?constraint?pk_i?primary?key?(i) ? alter?table?t?modify?i?not?null; ? alter?table?t?add?constraint?t_i?unique(i)[(create?index?ind_name?on?t(i))]; ? alter?table?t?add?constraint?t_i?check(i?in?(1,2,3,4,5)); ? alter?table?t?disable?novalidate?constraint?i ? alter?table?t?enable?novalidate?constraint?check_i ? alter?table?t?drop?constraint?i; ? alter?table?t?drop?primary?key?i;? #常用的数据字典 dba_constraints ? dba_cons_columns ? user_cons_columns ? user_constraints?? 简单应用 检验当为一个表建立主键索时后,这个字段是否满足约束非空,唯一性,而且自动建立一个索引,并查看当把约束状态关闭再次插入相同的记录,是否还能把把约束设为enable ividate状态。 SQL?create?table?t(i?number?constraint?pk_i?primary?key,v?number); ? SQL?insert?into?t?values(1,2); ? SQL?insert?into?t?values(3,4); ? SQL?commit; ? SQL?select?*?from?t; ? ?????????I??????????V ? ----------?--------------------------- ? ?????????1??????????2 ? ?????????3??????????4?? 现在表中有两条记录,然后给它插主键为空或相同的值 SQL?insert?into?t?values(,10); ? ERROR?at?line?1: ? ORA-01400:?cannot?insert?NULL?into?(Y.T.I) ? SQL?insert?into?t?values(1,10); ? ERROR?at?line?1: ? ORA-00001:?unique?constraint?(Y.PK_I)?violated?? 可以看到全部报错,此时主键不能为空或重复
显示全部
相似文档