PUBLIC
DATAエスキューエル6 MIN READ

TERM 039

SQL

表のデータへ、欲しい結果を宣言する言語

SQLは、RDBへデータの検索・追加・更新・削除や、表構造と権限の操作を指示するための言語です。手順ではなく、欲しい結果を宣言するとデータベースが実行方法を選びます。

01PARSE文を解釈
02PLAN実行方法を選ぶ
03EXECUTE行を処理
OVERVIEW

リレーショナルデータベースを操作するための言語の全体像。

CONTENTSこの記事の目次

01 — DEFINITION

SQLとは
何か

SQLは、RDBへデータの検索・追加・更新・削除や、表構造と権限の操作を指示するための言語です。手順ではなく、欲しい結果を宣言するとデータベースが実行方法を選びます。

02 — HOW IT WORKS

仕組みを
3段階で見る

細部へ入る前に、入力から結果までの役割を順番に捉えます。

INPUTPROCESSOUTPUT
01PARSE

文を解釈

SQLの構文解析を行い、対象テーブル、列名、実行権限を確認する。

02PLAN

実行方法を選ぶ

テーブルの統計情報やインデックスの有無をもとに、最も効率的なデータ走査順序(実行計画)を策定する。

03EXECUTE

行を処理

データを読み書きし、結果または変更件数を返す。

PROCESS

SQLを理解するときの、最小の処理単位です。

03 — ESSENTIALS

押さえるべき
3つの要点

名前だけでなく、この3点の関係まで理解すると実装へつなげやすくなります。

01SELECT

必要な行を読む

WHERE、JOIN、GROUP BYで絞込・結合・集計します。

02DML

データを変更

INSERT、UPDATE、DELETEで行の状態を操作します。

03DDL

スキーマ定義

CREATEやALTERなどの文でテーブル、インデックス、外部キー制約などを管理します。

04 — REAL WORLD EXAMPLE

顧客別の月間売上を集計する

ordersとcustomersから対象月の確定注文を集計します。

SCENARIO / SQLSTEP BY STEP
  1. 01

    JOINで注文と顧客を結ぶ

  2. 02

    WHEREで期間と状態を絞る

  3. 03

    GROUP BYで顧客ごとに金額を合計する

RESULT大量の行から、必要な条件と粒度の結果だけをデータベース側で作れます。

05 — WATCH OUT

理解するときの
注意点

便利な仕組みほど、守備範囲と失敗の前提を明確にします。

01

SQL文を文字列結合で組み立てない

プレースホルダーを用いたパラメータ化クエリを徹底し、SQLインジェクション攻撃を完全に防ぎます。

02

実行計画(EXPLAIN)を確認する

レスポンスの遅いクエリは推測で直さず、スキャンされた行数やインデックスの適用状況を実行計画から確認します。

IN ONE SENTENCE

SQLとは?

リレーショナルデータベースを操作するための言語。

KEEP EXPLORING

DATARDB掲載中WEBAPI掲載中WEBCache掲載中