Schema & SQL



  • データ間のさまざまな関係を理解する(チェック)

  • データ間の関係を記述する言語(SQL)を習得します.

  • データベースを合理的かつ効率的に整理する方法について説明します.(検出)

  • SQLクエリーを作成してデータベースで関連情報を検索する方法について
  • 👊 schema?


    スキーマは、データベース内のデータの組織方法と異なるエンティティ間の関係の説明です.
    データの定義方法、およびデータ間の関係を確立する方法に必要なアーキテクチャ
    データベース青写真

    🎟 データ(data):各項目に格納される値
    🎟 ≪エンティティ|Entity|oraolap≫:情報の一意の単位.エンティティは表として表示されます.
    表は関係とも呼ばれます.
    各エンティティには、特定のフィールドに加えてIDフィールドが含まれます.
    🎟 フィールド(Fields):各エンティティには、その特性を記述するフィールドがあります.マトリクスの場合はカラム(column)
    🎟 レコード:テーブルに格納されているアイテム.行列内の行(行)
    🎟 Primary Key:各テーブルのユニークID
    🎟 外部キー:2つのテーブルを結合するキー
    🎟 リレーショナル・データベース
    構造化データは1つのテーブルで表すことができます.テーブルを使用するデータベースをリレーショナル・データベースと呼びます.

    👊 SQL



    🗣 SQL内蔵関数
    ≪集約演算|Aggregate Operations|oraolap≫:クエリーと分類レコードを実行し、特定の操作の演算を実行します.

    🎟 GROUP BY

  • データをクエリーするときにクエリーをグループ化します.次のクエリがあるとします.
  • SELECT * FROM customers // customers 테이블의 모든 레코드를 조회
    GROUP BY State // customers 테이블의 모든 레코드를 State에 따라 그룹화

    🎟 HAVING


    HAVINGを使用して、
  • GROUP BYクエリの結果をフィルタします.
  • SELECT CustomerId, AVG(Total)
    FROM invoices
    GROUP BY CustomerId
    HAVING AVG(Total) > 6.00
    // invoice테이블을 CustomerId로 그룹화하고 그 평균이 6을 초과한 결과를 조회
    ご注意を
    HAVINGはパケット結果に対するフィルタであり、WHEREは保存されたレコードに対するフィルタである.したがって、実際のパケット化前にデータをフィルタリングする必要がある場合は、WHEREを使用する必要がある.

    🎟 COUNT()

  • COUNT関数は、記録数
  • をカウントするために使用される
    SELECT *, COUNT(*) FROM customers
    GROUP BY State;
    // 각 State에 해당하는 레코드의 개수를 확인하는 COUNT 함수 사용예시

    🎟 SUM()

  • SUM関数は、記録の和を返します.
  • SELECT InvoiceId, SUM(UnitPrice)
    FROM invoice_items
    GROUP BY InvoiceId;
    // 위 커맨드는 invoice_items라는 테이블에서 Invoiced 필드를 기준으로 그룹하고, UnitPrice 필드 값의 합을 구한다.

    🎟 AVG()

  • AVG関数は、記録平均値を算出する関数である.
  • SELECT TrackId, AVG(UnitPrice)
    FROM invoice_items
    GROUP BY TrackId;

    🎟 MAX(), MIN()

  • MAX関数とMIN関数は、それぞれ記録された最低価格と最高価格を返します.
    次の例でMAXを見つけたい場合は、MINをMAXに変換します.
  • SELECT CustomerId, MIN(Total)
    FROM invoices
    GROUP BY CustomerId

    SELECT実行手順を呼び出す


    FROM
    WHERE
    GROUP BY
    HAVING
    SELECT
    ORDER BY
    SELECT CustomerId, AVG(Total)
    FROM invoices
    WHERE CustomerId >= 10
    GROUP BY CustomerId
    HAVING SUM(Total) >= 30
    ORDER BY 2