コンテンツへスキップ
uencoder

SQL

SQL(Structured Query Language)はリレーショナルデータベースの標準クエリ言語で、データを宣言的に定義・操作します(DDL/DML/DQL/DCL)。

目的

リレーショナルデータベースのための統一的で宣言的なデータ操作言語を提供し、アプリケーションとストレージを分離する。

メカニズム

宣言型であり、「どう」ではなく「何」を記述し、オプティマイザが実行計画を生成する。下位言語は DDL(CREATE/ALTER/DROP)、DML(INSERT/UPDATE/DELETE)、DQL(SELECT)、DCL(GRANT/REVOKE)である。サブクエリ、JOIN、集約、ウィンドウ関数、CTE に対応する。

ユースケース

  • リレーショナルデータベースの検索と操作
  • データ分析とレポート
  • ETL でのデータ変換
  • ORM の裏側での生成

例

  • 入力
    SELECT name FROM users WHERE age > 18
    Output
    Names of adult users

    Declarative query

よくあるエラー

Concatenating SQL strings causes injection
Use parameterized queries

関連用語

関連ツール

References