OracleDB - VIEW, SEQUENCE, INDEX


📘 VIEW

  • SELECT文実行結果(RESULT SET)を格納オブジェクト
  • 論理仮想テーブル
    ->表の形状ですが、実際の値は保存されていません.
  • 📜 VIEW用途


    1)複雑なSELECT文の再利用を容易にするために使用する.
    2)机の正体を隠すことができ、警備員に有利である.

    📜 VIEW使用上の注意事項


    1)仮想テーブル(エンティティX)であるため,ALTER構文は使用できない.
    2)DML(INSERT、UPDATE、DELETE)をVIEWで行う場合があります.
       多くの制約を受けるため、クエリ(SELECT)に多く使用される.
    3)VIEWのINSERTを使用してソーステーブルに挿入する.
       元のテーブルを挿入すると、VIEW INSERT構文に含まれていないカラムにNULLが格納されます.
       ただし、DEPT TITLE列にはNOT NULL制約が設定されています.
       エラー!VIEWのINSERTの使用に失敗しました
    !! 結論:VIEWではなるべくDMLを使わないように!!!

    VIEW作成方法

    CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW 뷰이름 [(alias[,alias]...] AS subquery
    [WITH CHECK OPTION] 
    [WITH READ ONLY];

    複数のオプション


    OR REPLACEオプション


    ->既存のビュー名が同じ場合は上書きし、存在しない場合は新規ビューを作成します.

    FORCE/NOFORCEオプション


    FORCE:サブクエリで使用されるテーブルが存在しなくてもビューを作成
    NOFORCE:サブクエリで使用されるテーブルが存在する場合にのみビューが作成されます(デフォルト)

    WITH CHECK OPTIONオプション


    ->設定オプションのカラムの値は変更できません.

    WITH READ ONLYオプション


    ->ビューのみ表示可能(DMLはサポートされていません)

    📘 SEQENCE(シーケンス、連続)

  • シリアル番号オートジェネレータロールのオブジェクト
    EX) 1 2 3 4 5 6 7 8 9 .....
  • 📜 SEQENCEの使用方法


    PRIMARY KEYコラムの生成に使用する値!


    1)シーケンス名.NEXTBAL:次のシリアル番号を取得します.(増分は増分BY)
       ただし、シーケンス作成後の最初の呼び出しであれば、START WITHの値が得られます.
    2)シーケンス名.CURRVAL:現在のシリアル番号を取得します.
       ただし、シーケンス作成後にNEXTBALを呼び出さずにCURRVALを呼び出すとエラーが発生します.

    SEQUENCE合成方法

    CREATE SEQUENCE 시퀀스이름
     [STRAT WITH 숫자] -- 처음 발생시킬 시작값 지정, 생략하면 자동 1이 기본
     [INCREMENT BY 숫자] -- 다음 값에 대한 증가치, 생략하면 자동 1이 기본
     [MAXVALUE 숫자 | NOMAXVALUE] -- 발생시킬 최대값 지정 (10의 27승, -1)
     [MINVALUE 숫자 | NOMINVALUE] -- 최소값 지정 (-10의 26승)
     [CYCLE | NOCYCLE] -- 값 순환 여부 지정
     [CACHE 바이트크기 | NOCACHE] -- 캐쉬메모리 기본값은 20바이트, 최소값은 2바이트

    SEQUENCE(ALTER)の変更

    ALTER SEQUENCE 시퀀스이름
      [STRAT WITH 숫자] -- 처음 발생시킬 시작값 지정, 생략하면 자동 1이 기본
      [INCREMENT BY 숫자] -- 다음 값에 대한 증가치, 생략하면 자동 1이 기본
      [MAXVALUE 숫자 | NOMAXVALUE] -- 발생시킬 최대값 지정 (10의 27승, -1)
      [MINVALUE 숫자 | NOMINVALUE] -- 최소값 지정 (-10의 26승)
      [CYCLE | NOCYCLE] -- 값 순환 여부 지정
      [CACHE 바이트크기 | NOCACHE] -- 캐쉬메모리 기본값은 20바이트, 최소값은 2바이트
  • シーケンスを変更する場合、開始番号は変更できません.
  • エラーの
  • シーケンスの処理によって番号が空になった場合は、再開します.
    ->シーケンスを削除して
  • を再生

    📘 INDEX(インデックス)

  • SQL文におけるSELECTの処理速度を向上するために、列にオブジェクト
  • を作成する.
  • インデックス内部構造はB*ツリー形式を採用しています.
  • 📜 INDEXのメリットとデメリット


  • インデックスの利点
  • は、バイナリ・ツリーとして構成されており、自動ソートと取得が高速です.
  • クエリーでは、テーブル全体ではなくインデックスで指定されたカラムのみをクエリーするため、システム負荷が低減され、全体的なパフォーマンスが向上します.

  • インデックスの欠点
    頻繁な
  • データの変更により、パフォーマンスが低下します.
  • インデックスもオブジェクトであるため、別のストレージスペースとなります.
  • インデックスを生成する時間が必要です.
  • INDEX合成方法


    CREATE [UNIQUE] INDEX 인덱스명
    ON 테이블명 (컬럼명, 컬럼명, ... | 함수명, 함수계산식);
  • インデックスが自動的に生成された場合:
    ->PKまたはUNIQUE制約を設定する場合は