ImageVerifierCode 换一换
格式:DOC , 页数:8 ,大小:208.36KB ,
资源ID:5706105      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/5706105.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(管理Oracle约束与分区表.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

管理Oracle约束与分区表.doc

1、1.约束 作用: 约束用于确保数据库数据的完整性,在oracle数据库中,可以使用约束,触发器和应用代码(过程,函数)3种方法实现数据完整性,这3种方法中,因为约束易于维护,并且具有最好的性能,所以实现数据完整性首选约束. 分类: 约束的种类有:not null,unique,primary key,foreign key,check Not null确保字段值不能为空 Unique:确保字段值唯一性 Primary key,最常用的约束(主键约束),主键约束的列值不仅不能重复,也不能为NULL,注意一张表最多只能有一个主键约束,当定义主键约束后oracle自动建立一个以主键为关

2、键字段的索引。 Foreign key:定义了主从表之间的关系,foreign要定义在从表上,但主表必须具有主键约束或唯一约束,当定义froeign key后外部键列的数据必须在主表的主键列中存在,或者为NULL Check::用于强制表行数据必须满足的条件,如工资表,工人工资必须在2000-5000之间 约束状态 enable validate:是默认,新旧数据同时满足约束规则 enable novalidate:旧数据可以不满足,检新插入的数据要满足约束 disable validate:不允许在表上执行任何DML操作,主要用在分区表,对于主键和唯一约事,会删除相应的唯一索引,

3、但约束状态任可用 disable novalidate数据可不满足约束规则,对于主键和唯一约事,会删除相应的唯一索引, 约束常用语句 1. create table t(i number,v mubmer not null)   2. create table t(i number,v mubmer unique)   3. create table t(i number constraint pk_i primary key,v number)   4. create table t2(c number,d number,constraint fk_d foreign key(c

4、),references t1(v));   5. alter table t add constraint pk_i primary key (i)   6. alter table t modify i not null;   7. alter table t add constraint t_i unique(i)[(create index ind_name on t(i))];   8. alter table t add constraint t_i check(i in (1,2,3,4,5));   9. alter table t disable novalidat

5、e constraint i   10. alter table t enable novalidate constraint check_i   11. alter table t drop constraint i;   12. alter table t drop primary key i;  #常用的数据字典 1. dba_constraints   2. dba_cons_columns   3. user_cons_columns   4. user_constraints   简单应用 检验当为一个表建立主键索时后,这个字段是否满足约束非空,唯一性,而且自动

6、建立一个索引,并查看当把约束状态关闭再次插入相同的记录,是否还能把把约束设为enable ividate状态。 1. SQL> create table t(i number constraint pk_i primary key,v number);   2. SQL> insert into t values(1,2);   3. SQL> insert into t values(3,4);   4. SQL> commit;   5. SQL> select * from t;   6.          I          V   7. ---------- ----

7、   8.          1          2   9.          3          4   现在表中有两条记录,然后给它插主键为空或相同的值 1. SQL> insert into t values('',10);   2. ERROR at line 1:   3. ORA-01400: cannot insert NULL into ("Y"."T"."I")   4. SQL> insert into t values(1,10);   5. ERROR at line 1:   6. ORA-0000

8、1: unique constraint (Y.PK_I) violated   可以看到全部报错,此时主键不能为空或重复 查看是否建立索引 1. SQL> select index_name from user_indexes;   2. INDEX_NAME   3. ------------------------------   4. PK_I   把约束关闭再次做同样的操用 1. SQL> alter table t disable novalidate constraint pk_i;   2. Table altered.   3. SQL> insert i

9、nto t values('',10);   4. 1 row created.   5. SQL> insert into t values(1,10);   6. 1 row created.   7. SQL> commit;   8. Commit complete.   9. SQL> select * from t;   10.          I          V   11. ---------- ----------   12.          1          2   13.          3          4   14.      

10、              10   15.          1         10   16. SQL>  select index_name from user_indexes;   17. no rows selected   可见当把约束关闭后就可以何意给表插数据了,而具索引也自动删除了。 现在激活约束 1. SQL> alter table t enable validate constraint pk_i;   2. alter table t enable validate constraint pk_i   3. ERROR at line 1:   4.

11、 ORA-02437: cannot validate (SYS.PK_I) - primary key violated   因为表中主键有相同的值所以不能恢复到enable validate状态了 再次测试回复到enable novalidate 1. SQL> alter table t enable novalidate constraint pk_i;   2. alter table t enable validate constraint pk_i   3. ERROR at line 1:   4. ORA-02437: cannot validate (SYS.P

12、K_I) - primary key violated   也失败了, 因为表中主键有了空值和相同的值,所以恢复不到enable validate状态,但enable novalidate不检查旧数据所以应该还能恢复到enable novalidate. 要想恢复到enable novalidate必须建立主键索引(关闭约束时自动删除的那个索引)如下: 1. SQL> create index pk_i on t(i);   2. Index created.   然后恢复到enable disvalidate,以后再插数据不能为空,主键也不能重复了. 1. SQL> alter

13、 table t enable novalidate constraint pk_i;   2. Table altered.   3. SQL> insert into t values(1,14);   4. insert into t values(1,14)   5. ERROR at line 1:   6. ORA-00001: unique constraint (SYS.PK_I) violated   2.修正约束数据 当给一个表作主键约束时,因为已存数据不满足约束规则,会提示错误信息,些时必须对数据进行修正 要修正数据先找出不满足约束的数据 如下表,有不满

14、足约束的数据 1. SQL> select * from t;   2.          I          V   3. ---------- ------------------------   4.          1          2   5.          3          4   6.          15         12   7.          15         10   如果一个表数据量多可通过如下方法查找 1. SQL> alter table t drop constraint pk_i;     2. Table al

15、tered.   3. SQL>conn y / 123   4. SQL> @$ORACLE_HOME/rdbms/admin/utlexcpt.sql   5. Table created.   6. SQL> alter table t add constraint pk_i primary key (i) exceptions into exceptions;   7. select * from t where rowid in (select row_id from exceptions)   8.          I          V   9. -------

16、 ------------------------   10.          15         12   11.          15         10   找到了重复的记录 修正 1. SQL>update t set i=10 where v=12;   2. SQL> select * from t;   3.          I          V   4. ---------- ----------   5.          1          2   6.          3          4   7.          10

17、         12   8.          15         10   再建主键约束 1. alter table t add constraint pk_i primary key (i)   2. Table altered.   成功了!!! 二:分区表管理 作用:将在张大表的数据分布到多个表分区段,不同分区彼此独立,从而提高了表的可用性和性能 种类:范围分区,散列分区(使用HASH算法,最常使用),列表分区,范围/散列组合分区,范围/列表组合分区 范围分区表 创建范围分区表 1. create table t(v number,b number)  

18、 2. partition by range(v) (   3. partition p1 values less than ('11') tablespace test1,   4. partition p2 values less than ('21') tablespace test2);   增加与删除分区 #增加分区 1. alter table t add partition p3 values less than ('31') tablespace test3;   2. alter table t drop partition p3   一个时间分区的例子 1.

19、 alter session set nls_data_lanage=AMERICAN;   2. alter session set nls_data_format='DD-MON-YYYY'  3. create table t(v_date date,b number)   4. partition by range(v_date)(   5. partition p1 values less than ('01-APR-2009') tablespace test1,   6. partition p2 values less than ('01-JUN-2009') tab

20、lespace test2);   2.散列分区表(最常用) 创建 1. create table t1(   2. v number,b number)   3. partition by hash(v)   4. (partition p1 tablespace test1,   5. partition p2 tablespace test2);   增加分区 1. alter table t add partition p3 tablespace test3;   删除分区 1. alter table t drop coalesce partition;  

21、3.列表分区 建列表分区 1. create table t(   2. v varchar2(10),   3. b number   4. )partition by list(v)   5. (partition p1 values('a','b') tablespace test1,   6. partition p2 values('c','d') tablespace test2);   #插入数据 1. SQL> insert into t values('a',10);   2. SQL> insert into t values('d',20);  #注

22、意,插入数据时第一个字段只能为a,b,c,d 1. SQL> insert into t values('f',30);   2. ERROR at line 1:   3. ORA-14400: inserted partition key does not map to any partition   #查询 1. select * from t;   2. select * from t partition(p1);   3. select * from t partition(p2);   4. select * from t where v=XXX   增加分区

23、1. alter table t add partition p3 values('31','32') tablespace test3;   删除分区 1. alter table t drop partition p3   4.范围/散列组合分区 建立散列组合分区 1. create table t(   2. v number,b number)   3. partition by range(v)   4. subpartition by hash(b) subpartitions 2   5. store in (test1,test2)(   6. partit

24、ion p1 values less than ('11'),   7. partition p2 values less than ('21'));   查询 1. select * from t;   2. select * from t partition(p1);   3. select * from t where ....   增加主分区和子分区 1. alter table t add partition p3 values less than ('31') tablespace test3;   2. alter table t modify partition

25、 p3 add subpartition;   删除分区 1. alter table t coalesce partition;   2. alter table t modify partition p1 coalesce subpartition;   5.范围/列表组合分区 创建 1. create table t(   2. v number,b number)   3. partition by range(v)   4. subpartition by list(b)   5. (partition p1 values less than ('11') tab

26、lespace test1(   6. subpartition p1_1 values('1','3'),   7. subpartition p1_2 values('5','6')   8. ),   9. partition p2 values less than ('21') tablespace test2(   10. subpartition p2_1 values('13','14'),   11. subpartition p2_2 values('15','16')   12. ));   查询 1. select * from t   2. sele

27、ct * from t partition(p1)   3. select * from t subpartition(p1_1)   4. select * from t where .....   5. select segment_name,partition_name,tablespace_name   6. from user_segments where segment_name='T';   增加分区和子分区 1. alter table t add partition p3 values less than ('31') tablespace test3(   2

28、 subpartition p3_1 values('25','26'),   3. subpartition p3_2 values('22','23'));   4. alter table t modify partition r3   5. add subpartition r3_3 tablespace test3 values('28','29');   删除分区 1. alter table t modify partition p1 coalesce subpartition;   其它设置 1. 交换分区数据   2. alter table t excha

29、nge partition p1 with table tt;   3. 载断分区   4. alter table t truncate partition p1;   5. 修改分区名   6. alter table t rename partition p2_1 to p2;   7. 合并分区   8. alter table t merge partitions p1,p2 into partition p01   9. 重组分区   10. alter table t move partition p1 tablespace test04   11. 为列表分区

30、和子分区加值   12. alter table t modify partition p1 add values('111');   13. alter table t modify subpartition p3_1 add values('111');   14. 从列表分区和子分区中删除值   15. alter table t modify partition p1 drop values('111')   16. alter table t modify subpartition p3_1 drop values('111')   分区表常用的数据字典 1. 分区表信息:  dba_part_tables   2. 显示分区:    dba_tab_partitions   3. 显示子分区:  dba_tab_subpartitions   4. 显示分区列:  dba_part_key_columns   5. 显示子分区列:dba_subpart_dey_columns   6. 显示分区索引:dba_part_indexes   7. 显示索引分区:dba_ind_partitions   来源:网络 编辑:联动北方技术论坛

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服