partition by 用于指定分区方式

range 表示分区的方式是范围划分

partition pn 用于指定分区的名字

values less than 指定分区的上界(上限)

---------------------------范围分区--------------------------------

--查看表分区信息

select * from all_part_tables;

--查看表分区详细信息

select * from user_tab_partitions;

--创建范围分区表 先一个分区 后修改添加

create table userinfo

(

       uname varchar2(20),

       age number(2)

)

partition by range(age)--按年龄范围分区

(

          partition p1 values less than (18)

)

--修改表,添加2个分区

alter table userinfo add partition p2  values less than(30);

alter table userinfo add partition p3  values less than(50);

alter table userinfo add partition p4  values less than(maxvalue);--其他更大的值

--修改分区,删除一个分区 分区中的数据随之删除

ALTER TABLE userinfo DROP PARTITION P3;

--截断分区 – 删除指定分区中的所有记录

ALTER TABLE userinfo TRUNCATE PARTITION P3;

--合并分区 - 将范围分区或复合分区的两个相邻分区连接起来

ALTER TABLE userinfo

MERGE PARTITIONS p1, p2 INTO PARTITION S2;

--将一个大分区中的记录拆分到两个分区中  s2原来范围(0-30)分为(0-18和18-30)

ALTER TABLE userinfo SPLIT PARTITION s2 AT (18)

INTO (PARTITION P21, PARTITION P22);

--重命名表分区

ALTER TABLE userinfo RENAME PARTITION P21 TO P2;

--添加测试数据

insert into userinfo values('张飞',16);

insert into userinfo values('曹操',20);

insert into userinfo values('诸葛亮',35);

insert into userinfo values('赵云',26);

commit;

--按分区查询

select * from userinfo PARTITION(p3);

--------------------------列表分区---------------------------

CREATE TABLE Student

(

    SID number (4),

    SName varchar2 (14),

    SAddress varchar2 (15)

)

PARTITION BY LIST (SAddress)

(

    Partition shanxi values ('西安市','咸阳市'),

    Partition henan values ('焦作', '郑州')

);

--修改表 添加一个默认分区,即不在指定列表中的都放入此分区

alter table student add partition other values(default);

-------添加测试数据

insert into student values(1,'小明','西安市');

insert into student values(2,'小强','焦作');

insert into student values(3,'小树','郑州');

insert into student values(4,'近平','北京市');--如果没有默认分区,则没有符合分区的不能插入成功

insert into student values(5,'老王','咸阳市');

select * from student partition(henan);--注意分区参数不加单引号

select * from student partition(other);--

-----------散列分区----通过在分区键上执行HASH函数决定存储的分区--将数据平均地分布到不同的分区---------

--第一种

CREATE TABLE HASH_TABLE

(

  COL NUMBER(8),

  INF VARCHAR2(100)

)

PARTITION BY HASH (COL)

(

  PARTITION PART01 ,

  PARTITION PART02 ,

  PARTITION PART03

)

--简写第二种:

CREATE TABLE myemp

(

    empno NUMBER (4), --tablespace nn

    ename VARCHAR2 (30),

    sal   NUMBER

)

PARTITION BY  HASH (empno) PARTITIONS 8

--STORE IN (users); --表空间

select * from hash_table partition(part01);

select * from myemp partition(SYS_P50)

--------复合分区------范围分区与散列分区或列表分区的组合-----------------------

drop table sales;

CREATE TABLE SALES

(

    PRODUCT_ID VARCHAR2 (5),

    SALES_DATE DATE NOT NULL,

    SALES_COST NUMBER (10)

)

PARTITION BY RANGE (SALES_DATE)

SUBPARTITION BY HASH (PRODUCT_ID)--子分区,在范围分区的基础上进行5个散列分区

SUBPARTITIONS 5    

(

    PARTITION S1 VALUES LESS THAN (TO_DATE('01/4月/2001',

    'DD/MON/YYYY')),

    PARTITION S2 VALUES LESS THAN (TO_DATE('01/7月/2001',

    'DD/MON/YYYY')),

    PARTITION S3 VALUES LESS THAN (TO_DATE('01/9月/2001',

    'DD/MON/YYYY')),

    PARTITION S4 VALUES LESS THAN (MAXVALUE)

);

------补充:在范围基础上,进行列表分区

CREATE TABLE SALES

(

PRODUCT_ID VARCHAR2(5),

SALES_DATE DATE,

SALES_COST NUMBER(10),

STATUS VARCHAR2(20)

)

PARTITION BY RANGE(SALES_DATE) SUBPARTITION BY LIST (STATUS)

(

   PARTITION P1 VALUES LESS THAN(TO_DATE('2003-01-01','YYYY-MM-DD'))TABLESPACE rptfact2009

          (

              SUBPARTITION P1SUB1 VALUES ('ACTIVE') TABLESPACE rptfact2009,

              SUBPARTITION P1SUB2 VALUES ('INACTIVE') TABLESPACE rptfact2009

          ),

   PARTITION P2 VALUES LESS THAN (TO_DATE('2003-03-01','YYYY-MM-DD')) TABLESPACE rptfact2009

          (

              SUBPARTITION P2SUB1 VALUES ('ACTIVE') TABLESPACE rptfact2009,

              SUBPARTITION P2SUB2 VALUES ('INACTIVE') TABLESPACE rptfact2009

          )

)

------------分区------0-18  18-30  30-50 50-100--------where age=37---1000000---A,B,C,D 。。。。。

 1,wang 34;                 A:4,6,7 B 2,3 C 1,5        

 2,zhang 23;

 3,li , 26

 4,liddd , 16

 5,www , 37

 6,ttt , 18

 7,QQQQ ,15

 

 create table studentinfo

 (

   sid number,

   sname varchar2(20),

   sage number(2)

 )

 partition by range(sage)

 (

           partition p1 values less than(18),

           partition p2 values less than(30),

           partition p2 values less than(50),

           partition p2 values less than(Maxvalue),

 )

 ;

oracle-分区(笔记)的更多相关文章

  1. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  2. ORACLE 分区

    在建设数据仓库过程中,经常会有大量数据,短时间内表中数据量有限,查询性能还可以,但随着时间的延长,表中数据量迅速增加,查询速度就会变慢,性能下降,这时就要考虑对表进行分区. 一.oracle的分区 当 ...

  3. oracle 分区和分区索引

    一.个人理解:建表时一般都会指定在一个表空间上,但是可能随着表空间扩大,查询越来越慢,分区表就是将一个表实际存在不同的表空间,oracle存储分为块,断,表空间.新建一个表,会给表分配指定大小的段,段 ...

  4. ORACLE存储过程笔记3

    ORACLE存储过程笔记3 流程控制 1.条件   if expression thenpl/sql or sqlend if;   if expression thenpl/sql or sqlel ...

  5. ORACLE存储过程笔记2

    ORACLE存储过程笔记2 运算符和表达式     关系运算 =等于<>,!=不等于<小于>大于<=小于等于>=大于等于       一般运算   +加-减*乘/除 ...

  6. ORACLE存储过程笔记1

    ORACLE存储过程笔记1 一.基本语法(以及与informix的比较)   create [or replace] procedure procedure_name (varible {IN|OUT ...

  7. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  8. Oracle学习笔记——点滴汇总

    Oracle学习笔记——点滴汇总 http://www.botangdb.com/ Oracle GI = Grid Infrastructure = ASM + Cluster

  9. Oracle学习笔记之四sp1,Oracle 11g的常用函数

    从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i)    分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...

  10. Oracle学习笔记之四,SQL语言入门

    1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...

随机推荐

  1. webstorm的安装、激活码、更换主题颜色的修改、汉化

    一.安装 1.解压webstorm11zh.rar,双击.exe文件,下一步安装,在安装结束前会提示输入激活码,这个从网上随便找一个可用的即可. 二.更换主题颜色: 1.先从网上找一个喜欢的主题颜色, ...

  2. 将springboot项目发布到独立的tomcat中运行

    在开发阶段我们推荐使用内嵌的tomcat进行开发,因为这样会方便很多,但是到生成环境,我希望在独立的tomcat容器中运行,因为我们需要对tomcat做额外的优化,这时我们需要将工程打包成war包发进 ...

  3. JavaScript内存泄漏知多少?

    垃圾回收解放了我们,它让我们可将精力集中在应用程序逻辑(而不是内存管理)上.但是,垃圾收集并不神奇.了解它的工作原理,以及如何使它保留本应在很久以前释放的内存,就可以实现更快更可靠的应用程序.在本文中 ...

  4. Python模块学习之解决selenium的“can't access dead object”错误

    问题描述 在python执行过程中,提示selenium.common.exceptions.WebDriverException: Message: TypeError: can't access ...

  5. SSM 框架搭建 idea环境

    参考: https://www.cnblogs.com/toutou/p/ssm_springmvc.html https://www.cnblogs.com/toutou/p/ssm_springm ...

  6. Android我的便签-----SQLite的使用方法

    在Android开发中也有数据库的存在,最近有空,把以前写的一个便签来讲述一下Android中的数据库,跟大家分享分享的,希望对大家有所帮助. SQLite简介 SQLite,是一款轻量级的关系型数据 ...

  7. 原生javascript-日历插件编写

    在线实例:http://lgy.1zwq.com/calendar/ 按照我们常用的日历格式,是7*6的格子,所以生成格子的总数就确定为42 例子:(如:2013年8月,这个时间为例子) /*---- ...

  8. 解决在for循环内判断条件多次执行

    最近遇到的这个问题,就是在for循环内if判断的条件会多次执行. 例如,在返回的30数据中,a条目是第7条则会进行30次判断,弹出29次查无数据,也就是要点击29次关闭alert,很是让人不爽. 有了 ...

  9. [转载]java获取word里面的文本

    需求场景 开发的web办公系统如果需要处理大量的Word文档(比如有成千上万个文档),用户一定提出查找包含某些关键字的文档的需求,这就要求能够读取 word 中的文字内容,而忽略其中的文字样式.表格. ...

  10. jq中的$.post中方法

    jQuery.post( url, [data], [callback], [type] ) : 使用POST方式来进行异步请求 参数: url (String) : 发送请求的URL地址. data ...