资源描述:
《oracle认证应用技术学习资料汇总》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、管理Oracle约束与分区表1.约束 作用: 约束用于确保数据库数据的完整性,在oracle数据库中,可以使用约束,触发器和应用代码(过程,函数)3种方法实现数据完整性,这3种方法中,因为约束易于维护,并且具有最好的性能,所以实现数据完整性首选约束. 分类: 约束的种类有:notnull,unique,primarykey,foreignkey,check Notnull确保字段值不能为空 Unique:确保字段值唯一性 Primarykey,最常用的约束(主键约束),主键约束的列值不仅不能重复,也不能为NULL,注意一张表最多只能有一个主键约束,当定
2、义主键约束后oracle自动建立一个以主键为关键字段的索引。 Foreignkey:定义了主从表之间的关系,foreign要定义在从表上,但主表必须具有主键约束或唯一约束,当定义froeignkey后外部键列的数据必须在主表的主键列中存在,或者为NULL Check::用于强制表行数据必须满足的条件,如工资表,工人工资必须在2000-5000之间 约束状态 enablevalidate:是默认,新旧数据同时满足约束规则 enablenovalidate:旧数据可以不满足,检新插入的数据要满足约束 disablevalidate:不允许在表上执行任何DML
3、操作,主要用在分区表,对于主键和唯一约事,会删除相应的唯一索引,但约束状态任可用 disablenovalidate数据可不满足约束规则,对于主键和唯一约事,会删除相应的唯一索引, 约束常用语句 createtablet(inumber,vmubmernotnull) createtablet(inumber,vmubmerunique) createtablet(inumberconstraintpk_iprimarykey,vnumber) createtablet2(cnumber,dnumber,constraintfk_dforeignkey(
4、c),referencest1(v)); altertabletaddconstraintpk_iprimarykey(i) altertabletmodifyinotnull; altertabletaddconstraintt_iunique(i)[(createindexind_nameont(i))]; altertabletaddconstraintt_icheck(iin(1,2,3,4,5)); altertabletdisablenovalidateconstrainti altertabletenablenovalidateconstr
5、aintcheck_i altertabletdropconstrainti; altertabletdropprimarykeyi; #常用的数据字典 dba_constraints dba_cons_columns user_cons_columns user_constraints 简单应用 检验当为一个表建立主键索时后,这个字段是否满足约束非空,唯一性,而且自动建立一个索引,并查看当把约束状态关闭再次插入相同的记录,是否还能把把约束设为enableividate状态。 SQL>createtablet(inumberconstraintp
6、k_iprimarykey,vnumber); SQL>insertintotvalues(1,2); SQL>insertintotvalues(3,4); SQL>commit; SQL>select*fromt; IV ------------------------------------- 12 34 现在表中有两条记录,然后给它插主键为空或相同的值 SQL>insertintotvalues('',10); ERRORatline1: ORA-01400:cannotinsertNULLinto("Y"."T"."I") SQL
7、>insertintotvalues(1,10); ERRORatline1: ORA-00001:uniqueconstraint(Y.PK_I)violated 可以看到全部报错,此时主键不能为空或重复 查看是否建立索引 SQL>selectindex_namefromuser_indexes; INDEX_NAME ------------------------------ PK_I 把约束关闭再次做同样的操用 SQL>altertabletdisablenovalidateconstraintpk_i; Tablealtered.