파티션 테이블을 범위 분할 방식(PARTITION BY RANGE)으로 생성 했습니다.

 
SQL>CREATE TABLE emp_pt
       (EMPNO NUMBER(4),
        ENAME VARCHAR2(30),
        JOB VARCHAR2(9),
        MGR  NUMBER(4),
        HIREDATE  DATE,
        SAL     NUMBER(7,2),
        COMM    NUMBER(7,2),
        DEPTNO  NUMBER(2))
        PARTITION   BY  RANGE(EMPNO)(    -->범위 분할 방식으로 생성 합니다.
        PARTITION emp_p1 VALUES LESS THAN (2000) TABLESPACE data1,
        PARTITION emp_p2 VALUES LESS THAN (4000) TABLESPACE data2,
        PARTITION emp_p3 VALUES LESS THAN (7000) TABLESPACE data3);

테이블이 생성되었습니다.
 

emp_p1 파티션은 2000보다 적은 값이 들어가며 data1 테이블스페이스에,
emp_p2 파티션은 4000보다 적은 값이 들어가며 data2 테이블스페이스에,
emp_p3 파티션은 7000보다 적은 값이 들어가며 data3 테이블스페이스에 각각 할당을 했습니다.

각각의 파티션을 일정한 범위로 나누어서 각각의 테이블 스페이스를 할당 했습니다.

오라클에서는 이 외에도 여러 가지 다른 방법으로 파시션 테이블을 생성 할 수 있습니다.
여기서는 가장 이해하기 쉬운 범위 분할 방식으로 생성 했습니다.





--- 데이터 조작 예제 ---


INSERT

-- emp_p1 파티션에 등록이 됩니다.
SQL>INSERT INTO emp_pt(empno, ename, job, hiredate, sal)
       VALUES(1000, 'Ultra', 'SALESMAN', sysdate, 3000);
1 개의 행이 만들어졌습니다.
 
 
-- emp_p2 파티션에 등록이 됩니다.
SQL>INSERT INTO emp_pt(empno, ename, job, hiredate, sal)
        VALUES(2000, 'lion', 'CLERK', sysdate, 2500);
1 개의 행이 만들어졌습니다.


위의 두 예제와 같이 일반적으로 Insert를 해도 empno에 따라서 자동적으로
    파티션이 나누어져 Insert가 됩니다.

    아래의 예제와 같이 따로 파티션을 지정해서 Insert를 할 수도 있습니다.

 

-- 파티션을 통해서 INSERT하는 방법
SQL>INSERT INTO emp_pt PARTITION (emp_p3)
       VALUES (6000, 'scott2', 'CLERK', 5000, sysdate, 1500,0 ,10);
1 개의 행이 만들어졌습니다.



SELECT
 
-- emp_p1파티션 조회
SQL>SELECT empno, ename, job FROM emp_pt PARTITION (emp_p1);

    EMPNO   ENAME                    JOB
---------- -------------------- ---------
      1000    Ultra                        SALESMAN


-- emp_p2파티션 조회
SQL>SELECT empno, ename, job FROM emp_pt PARTITION (emp_p2);
 
    EMPNO    ENAME                    JOB
---------- ------------------- ---------
     2000       lion                        CLERK

AND