採用に向く条件
選ぶ理由
- 宣言的で簡潔にデータを操作できる
- ほぼ全 RDB 共通の必須スキル
- 集計・結合・分析に強い
プログラミング言語
IBM(Donald Chamberlin・Raymond Boyce) / 1974年登場
リレーショナル DB を操作する宣言型のクエリ言語。「どう取るか」ではなく「何が欲しいか」を書く。DB を扱うなら言語を問わず必須の共通スキル。
基本情報
選定ガイド
採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。
採用に向く条件
事前に確認する条件
向いている用途
詳しい解説
SQL は、リレーショナルデータベース(表の形でデータを保つ DB)を操作するための問い合わせ言語です。1974 年に IBM の研究から生まれました。Python や Java のような汎用プログラミング言語ではなく、「データに問い合わせる」ことに特化した専用言語である点が出発点になります。
横にスクロール
SQL の核心は宣言型であることです。「どういう手順で取り出すか」ではなく、「どんな結果が欲しいか」を書きます。実際の取得手順(どの索引を使い、どう結合するか)は DB のオプティマイザが統計情報をもとに最適化して決めます。
-- 注文に顧客名を結合し、東京の分だけ取得
SELECT c.name, o.amount
FROM orders AS o
JOIN customers AS c ON o.customer_id = c.id
WHERE c.city = 'Tokyo';
| 観点 | SQL(リレーショナル) | NoSQL |
|---|---|---|
| データモデル | 表・スキーマ・関係 | 文書/KV/列/グラフ など |
| 問い合わせ | SQL(宣言的・JOIN 強い) | 製品ごとに多様 |
| 整合性 | ACID トランザクション | 結果整合が多い(製品次第) |
| 得意 | 集計・結合・整合性 | スケール・柔軟なスキーマ |
SQL には標準規格がありますが、製品ごとに方言(文法や関数の差)が多く、PostgreSQL で動いた書き方が MySQL や SQL Server でそのまま通るとは限りません。またアプリから使う際は、文字列連結でクエリを組み立てると SQL インジェクションの危険があるため、必ずプレースホルダ(バインド変数)を使います。
総じて SQL は、宣言的にデータへ問い合わせる集合指向の専用言語で、Web からデータ分析までデータを扱うあらゆる場面の土台となる必須の道具です。
言語選定
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
データの検索・集計・分析
型付け: —(宣言型クエリ言語) / 実行方式: DB エンジンが解釈・最適化 / パラダイム: 宣言型(集合志向)
ほぼ全 RDB 共通の必須スキル
方言が多い(製品ごとの差)
最初の一歩
SELECT 'Hello, World!';公式ドキュメント