DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1305|回复: 0
打印 上一主题 下一主题

[待整理] 管理Oracle约束与分区表

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-26 20:10:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
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数据可不满足约束规则,对于主键和唯一约事,会删除相应的唯一索引,

约束常用语句


#常用的数据字典



简单应用

检验当为一个表建立主键索时后,这个字段是否满足约束非空,唯一性,而且自动建立一个索引,并查看当把约束状态关闭再次插入相同的记录,是否还能把把约束设为enable ividate状态。



现在表中有两条记录,然后给它插主键为空或相同的值



可以看到全部报错,此时主键不能为空或重复

查看是否建立索引



把约束关闭再次做同样的操用



可见当把约束关闭后就可以何意给表插数据了,而具索引也自动删除了。

现在激活约束



因为表中主键有相同的值所以不能恢复到enable validate状态了

再次测试回复到enable novalidate



也失败了,

因为表中主键有了空值和相同的值,所以恢复不到enable validate状态,但enable novalidate不检查旧数据所以应该还能恢复到enable novalidate.

要想恢复到enable novalidate必须建立主键索引(关闭约束时自动删除的那个索引)如下:



  然后恢复到enable disvalidate,以后再插数据不能为空,主键也不能重复了.



2.修正约束数据

当给一个表作主键约束时,因为已存数据不满足约束规则,会提示错误信息,些时必须对数据进行修正

要修正数据先找出不满足约束的数据

如下表,有不满足约束的数据



如果一个表数据量多可通过如下方法查找



  找到了重复的记录

修正



再建主键约束



  

  成功了!!!

二:分区表管理

作用:将在张大表的数据分布到多个表分区段,不同分区彼此独立,从而提高了表的可用性和性能

种类:范围分区,散列分区(使用HASH算法,最常使用),列表分区,范围/散列组合分区,范围/列表组合分区

范围分区表

创建范围分区表



增加与删除分区

#增加分区



一个时间分区的例子



2.散列分区表(最常用)

创建



增加分区



删除分区



3.列表分区

建列表分区



插入数据



#注意,插入数据时第一个字段只能为a,b,c,d



#查询



增加分区



删除分区



4.范围/散列组合分区

建立散列组合分区



查询



增加主分区和子分区



删除分区



5.范围/列表组合分区

创建



查询



增加分区和子分区



删除分区



其它设置



分区表常用的数据字典


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-27 15:41 , 耗时 0.090977 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表