《Oracle命令语法速查》【 CREATE TABLE 】

テーブル(表)を作成する


(リレーショナル表)
CREATE [ GLOBAL TEMPORARY ] TABLE [ スキーマ . ] 表名 →
→ (┬ 列名 <DATATYPE句> (*1) ───────────────┬) →
    │[ 表の列名、型、初期値、REF値、列制約を指定する   ] │
    ├<TABLE CONSTRAINT句>  ────────────────┤
    │[ 表制約を指定する ]                                │
    ├<TABLE REF句>   ───────────────────┤
    │[ REF値を指定する ]                                 │
    └ ← , ────────────────────────┘
→┬───────────────────┬→
  └ ON COMMIT { DELETE | PRESERVE } ROWS ┘
→┬───┬ ;
  └ (*2) ┘

(オブジェクト表)
CREATE [ GLOBAL TEMPORARY ] TABLE [ スキーマ . ] 表名 →
→ OF [ スキーマ . ] タイプ名 →
→┬──────────────────┬→
  └ [ NOT ] SUBSTITUABLE AT ALL LEVELS ┘
→ (┬ { 列名 | 属性名 } (*1) ─────────────┬) →
    │[ 表の属性名、初期値、REF値、列制約を指定する ] │
    ├<TABLE CONSTRAINT句>  ──────────────┤
    │[ 表制約を指定する ]                            │
    ├<TABLE REF句>   ─────────────────┤
    │[ REF値を指定する ]                             │
    └ ← , ──────────────────────┘
→┬───────────────────┬→
  └ ON COMMIT { DELETE | PRESERVE } ROWS ┘
→┬─────────────────────────────┬→
  └ OBJECT IDENTIFIER IS { SYSTEM GENERATED | PRIMARY KEY }  ┘
→┬─────────────────────────────┬→
  └ OIDINDEX [ 索引名 ]  [ ( ┬<PHYSICAL ATTRIBUTES句> ┬ ) ]┘
                              ├ TABLESPACE 表領域名    ┤
                              └ ← ──────────┘
→┬───┬ ;
  └ (*2) ┘

(*1)
→ [ DEFAULT 式 ] [ <COLUMN REF句> ] [ ┬<COLUMN CONSTRAINT句> ┬ ] →
                                       └ ← ─────────┘  

(*2)
→ [┬<SEGMENT ATTRIBUTES句>  ────────────────────┬] →
    ├ ORGANIZATION INDEX →                                          │
    │ → ┬────────────────────────────┬┤
    │    ├<SEGMENT ATTRIBUTES句>  ────────────────┤│
    │    ├ PCTHRESHOLD 数値 ───────────────────┤│
    │    │[ 索引構成表用の領域をパーセントで指定する ]          ││
    │    ├ [ INCLUDING 列名 ] OVERFLOW [ <SEGMENT ATTRIBUTES句> ] ┤│
    │    │[ 指定したしきい値を超えるデータを指定したセグメントに格納する   ]
    │    │[   INCLUDING : 指定した列以降の列を指定したセグメントに格納する ]
    │    └ ← ──────────────────────────┘│
    │[ 索引構成表として表を作成する ]                              │
    ├ ORGANIZATION  HEAP [ <SEGMENT ATTRIBUTES句> ]  ────────┤
    │[ データ行を特定順序で格納しない(デフォルト) ]                │
    ├ ORGANIZATION  EXTERNAL ( [ TYPE タイプ名 ] ) →                │
    │ → OVERFLOW <SEGMENT ATTRIBUTES句> ──────────────┤
    │[ データ行を特定順序で格納しない(デフォルト) ]                │
    └ CLUSTER クラスタ名 ( ┬ 列名 ┬ )  ──────────────┘
                            └ ← , ┘
      [ 指定したクラスタの一部とする ]
→ [┬<LOB STORAGE句>   ────────────────┬] →
    ├ NESTED TABLE 列名 STORE AS 格納表名  ──────┤
    │[ 指定した列に対する格納表(ネスト表)を指定する ]│
    └ ← ───────────────────────┘
→ [ <TABLE PARTITION句> ] [ <PARALLEL句> ] [ <ENABLE句> | <DISABLE句> ] →
→ [ AS 副問合せ ] →
[ SELECT 文の結果を作成した表に挿入する ]
→┬───────────────────────────────┬ ;
  ├ CACHE  ───────────────────────────┤
  │[ 読み込み値をバッファ内で最後に使用された端に配置する     ]│
  └ NOCACHE  ──────────────────────────┘
    [ 読み込み値をバッファ内で最も使用されていない端に配置する ]