[SQLD] #11. SQLの使用-集約演算子/階層クエリーとセルフ・コンビネーション


集合演算子


💡 集合演算子


    結合を使用しない関連データを複数のテーブルでクエリーする方法の1つです.複数のクエリー結果を1つの結果にマージできます.
  • SELECTセクションのコラム数は同じで、同じ場所のコラムデータ型は
  • と互換性がある必要があります.

    💡 集合演算子のタイプ



    集合演算子の未連結セット、1つの重複行で表されるUNIOALL-連結セット、重複行で表される-重複行がない場合、UNIONと結果は同じINTERSECT交差として表示され、重複行でEXCEPTの前のSQL結果から後の結果を差し引いた差セットが表示され、再行で表示されます(OracleではMINUSが使用されます).

    階層型クエリーと自己結合


    💡 階層型クエリー



       テーブルに階層化されたデータが存在する場合のデータのクエリー
  • 同じテーブルに上/下階層データを含むデータを階層データ(従業員テーブルにおける従業員と下級従業員の関係)
  • と呼ぶ.
    SELECT ...
    FROM 테이블
    WHERE condition AND condition...
    START WITH condition
    CONNECT BY [NOCYCLE] condition AND condition...
    [ORDER SIBILINGS BY colum, column...]
  • CONNECT BY:商社底部
  • に商社名と人員名をツリー構造で照会(ルートノードからサブノードの照会)する.
  • START WITH:指定開始条件
  • 相互接続BY PROIOR:接続条件
  • を指定する
  • NOCYCLE:ループ構造の始点
  • にのみ展開する.
  • PROR子=親階層で親データから子データ(親->子)の方向に展開(反対)
  • 仮想コラムは、LEVEL検索項目の深さを意味し、最上位レベルが1でBY ISLEAFリーフデータ面1を接続し、そうでない場合、0でBY ISCYCLE親ノードと子ノードを接続する場合は1です.または0
    関数意味接続BY ROOT展開するデータを表示するルートデータSYS接続BY PATH現在展開するデータを表示するルートデータ

    💡 自動結合



    1つのテーブルの2つのコラムに関連がある場合.FROMセクションの同じテーブルは、同じテーブル間の結合に複数回表示されます.テーブル別名を使用する必要があります
    SELECT ALIAS명1.칼럼명, ALIAS명2.칼럼명, ...
    FROM 테이블1 ALIAS명1, 테이블2 ALIAS명2
    WHERE ALIAS명1.칼럼명2 = ALIAS명2.칼럼명1;