学習ガイド

SQLとは?データベースの基本とSELECT文の使い方を分かりやすく図解

10分で読めます
この記事のポイント

SQLの基本を図解で解説。データベースとは何か、SELECT文の書き方、WHERE句の使い方など、実践的な例を交えて説明します。

執筆者

チョットデキル編集部

チョットデキルの編集部です。プログラミング学習に役立つ情報をお届けします。

取材協力

小澤 唯都
小澤 唯都IT開発会社代表 / ITコンサルタント

1993年、山梨県生まれ。東京理科大学を卒業後、大手ITコンサルティングファーム(フューチャーアーキテクト)へ入社。その後2018年に株式会社vicusを創業。上場企業向けIT研修事業では、1000人以上のエンジニアを育成。

「プログラミングを学び始めたけれど、データの扱い方がわからない」「Progateで基礎は触れたけれど、実務でどう使うのかイメージが湧かない」

そんな悩みを持つ方に向けて、本記事ではSQL(エスキューエル)の基本から、最も重要で頻出する「SELECT文」の使い方までを、図解を交えて徹底的に解説します。

2025年現在、AIツール(ChatGPTやClaudeなど)の普及により、コードを「書く」作業は効率化されました。しかし、AIに正しい指示を出し、出力されたコードが正しいか判断するためには、SQLの構造を根本から理解している必要があります。

この記事を読み終える頃には、データベースの構造が頭に浮かび、自分でデータを抽出するための第一歩を踏み出せているはずです。


SQL (Structured Query Language) とは

データベースから欲しいデータを取り出したり、書き換えたりするための専用言語のことです。SELECT / FROM / WHERE / JOIN / GROUP BY の 5 つを覚えるだけで、業務で必要な集計の 7 割はこなせるようになります。

TL;DR 早わかりサマリー

  • SQL はデータベースに「何を取り出すか」を伝える言語で、ビジネス職にも必須レベルのスキルになっています
  • 覚えるべきは SELECT / FROM / WHERE / JOIN / GROUP BY の 5 つだけで業務の 7 割をカバーできます
  • 1 ヶ月で実務最低限、3 ヶ月で中級者レベルに到達可能
  • Excel / スプレッドシートで限界が来た時の次のステップとして圧倒的に投資対効果が高い

SQLとは?データベースを操作するための「共通言語」

SQL(Structured Query Language)とは、データベース(DB)に蓄積されたデータを操作するために作られた専用の言語です。

プログラミング言語(PythonやJavaScriptなど)とは異なり、SQLは「データベースという情報の倉庫に対して、欲しいデータを取り出したり、書き換えたりするための命令書」のような役割を果たします。

なぜExcelではなく「データベース」と「SQL」が必要なのか?

多くのビジネスパーソンはExcelでデータを管理しますが、大規模なシステムやWebサービスではデータベースが必須です。その理由は主に3つあります。

  1. 膨大なデータ量に対応できる:数百万、数千万件のデータでも高速に処理可能。
  2. データの整合性を保てる:同じ情報を重複させず、ミスを防ぐ仕組みがある。
  3. 複数人で同時に扱える:多くのユーザーが同時にアクセスしてもデータが壊れない。

リレーショナルデータベースを直接操作するための標準的な言語が、SQLです。


データベースの基本構造:テーブル・カラム・レコード

SQLを学ぶ前に、データの格納形式を理解しましょう。現在主流の「リレーショナルデータベース(RDB)」は、Excelのような「表」形式でデータを管理します。

1. テーブル(Table)

データが格納されている「表」そのものです。「顧客テーブル」「商品テーブル」「注文テーブル」のように、カテゴリごとに分かれています。

2. カラム(Column)

表の「列(縦軸)」のことです。データの「項目名」を表します。

  • 例:user_id(ユーザーID)、name(名前)、email(メールアドレス)

3. レコード(Record)

表の「行(横軸)」のことです。1件分の「具体的なデータ」を指します。

  • 例:「1番の、田中太郎さん、tanaka@example.com」という1行分のまとまり。

【図解イメージ:users(ユーザー)テーブル】

user_id (カラム)name (カラム)age (カラム)
1 (レコード)田中 太郎25
2 (レコード)佐藤 花子32
3 (レコード)鈴木 一郎19

【実践】SELECT文でデータを取り出す基本

SQLの中で最も使われるのが、データを取得するためのSELECT文です。基本の型は非常にシンプルです。

SQL クエリ

SELECT カラム名 FROM テーブル名;

全てのカラムを取得する(*:アスタリスク)

テーブルにあるすべての情報を一度に見たいときは、アスタリスク(*)を使います。

SQL クエリ

SELECT * FROM users;
  • 解説usersテーブルから、すべてのカラム(列)とすべてのレコード(行)を取得します。

特定のカラムだけを取得する

必要なデータだけを絞り込むのが、実務では一般的です。

SQL クエリ

SELECT name, age FROM users;
  • 解説:名前(name)と年齢(age)の列だけを表示します。メールアドレスなどの不要な情報は表示されません。

WHERE句でデータを絞り込む

「20歳以上のユーザーだけ」「特定の名前の人だけ」など、条件を指定してデータを取り出すには、WHERE句を付け加えます。

SQL クエリ

SELECT * FROM users WHERE age >= 20;

よく使う比較演算子

条件指定には、以下の記号を使います。

  • = :等しい
  • != または <> :等しくない
  • > / < :より大きい / より小さい
  • >= / <= :以上 / 以下

複数の条件を組み合わせる(AND / OR)

「かつ(AND)」や「または(OR)」を使って、より複雑な絞り込みが可能です。

SQL クエリ

-- 20歳以上、かつ、男性のユーザーを取得 SELECT * FROM users WHERE age >= 20 AND gender = 'male'; -- 東京都在住、または、神奈川県在住のユーザーを取得 SELECT * FROM users WHERE address = '東京都' OR address = '神奈川県';

データの並び替え(ORDER BY)と取得件数の制限(LIMIT)

取得した結果が見にくいときは、並び替えや件数の制限を行います。

ORDER BY:並び替え

デフォルトは昇順(小さい順)です。

SQL クエリ

-- 年齢が若い順(昇順:ASC) SELECT * FROM users ORDER BY age ASC; -- 年齢が高い順(降順:DESC) SELECT * FROM users ORDER BY age DESC;

LIMIT:取得件数の制限

データが数万件ある場合、すべてを表示すると動作が重くなります。最初の数件だけ確認したいときに便利です。

SQL クエリ

-- 最新の登録ユーザーを5件だけ取得 SELECT * FROM users ORDER BY created_at DESC LIMIT 5;

2025年版:初心者がハマりやすいSQLの「よくある失敗」

SQLの文法はシンプルですが、初心者が最初につまずきやすいポイントがいくつかあります。

1. 全角スペースの混入

SQLはすべて「半角」で記述する必要があります。日本語入力のままスペースを打ってしまうとエラーになりますが、見た目では気づきにくいため注意が必要です。

2. 文字列を引用符(' ')で囲み忘れる

数値(例:25)はそのまま書けますが、文字列(例:'田中')はシングルクォーテーションで囲む必要があります。

  • WHERE name = 田中
  • WHERE name = '田中'

3. セミコロン(;)の忘れ

SQL文の終わりにはセミコロンを付けるのがルールです。1行だけなら動くツールもありますが、複数の命令を書く際には必須となります。


AI時代にSQLを学ぶ価値とは?

「ChatGPTに『SQLを書いて』と頼めば解決するのでは?」と思うかもしれません。確かに、生成AIは正確なSQLを書くのが得意です。

しかし、実務では以下のようなシーンが頻発します。

  • AIが生成したSQLの結果が、自分の意図したデータと微妙に違うが、どこを修正すべきかわからない。
  • データベースの構造(テーブル同士のつながり)をAIに説明するために、自分自身が構造を理解している必要がある
  • セキュリティの観点から、生のデータをAIに渡せない環境で、自力でクエリを組み立てなければならない

SQLの基礎知識は、AIという強力な武器を使いこなすための「OS」のようなものです。基礎があるからこそ、AIを最高のパートナーにできます。


SQL を学ぶと何ができるようになるか — 7 つの具体例

業務で実際に役立つ場面です。

1. 売上集計 「先月のカテゴリ別売上トップ 10」「曜日別の客単価」など、Excel では時間がかかる集計が秒で返ります。

2. 顧客セグメント 「過去 30 日でアクティブな会員」「3 回以上購入したロイヤル顧客」など、マーケ施策のターゲット抽出が自由自在になります。

3. KPI ダッシュボード Looker / Tableau / Metabase などの BI ツールで SQL を書けば、リアルタイムにダッシュボードが更新できます。

4. 不具合調査 「あるユーザーで起きた異常を、ログから 1 万件抽出して傾向を見る」のような調査が現実的になります。

5. データクレンジング 重複削除、形式統一、欠損補完など、Excel では難しい大規模整形が SQL なら速いです。

6. A/B テスト分析 施策の効果検証で、コンバージョン率の差を集計するときに SQL が活躍します。

7. レポート自動化 毎週月曜に同じ集計を出すなら、SQL + cron + Slack 通知で完全自動化できます。

SQL の学習ロードマップ — 4 段階

ゼロから業務で使えるレベルまでの段階です。

第 1 段階 (1-2 週) SELECT と WHERE 1 つのテーブルから条件で行を抜き出す。AND / OR / IN / LIKE。

第 2 段階 (2-3 週) GROUP BY と集計関数 COUNT / SUM / AVG / MAX / MIN。HAVING の理解。

第 3 段階 (3-4 週) JOIN INNER / LEFT / RIGHT / FULL の挙動差。テーブル設計の基礎。

第 4 段階 (1-2 ヶ月) サブクエリ・ウィンドウ関数 中級者の境界線。ここまで来ると業務でほぼ困りません。

詳しい練習問題は SQL 練習問題 10 選 で、さらに体系的に学びたい方は SQL 入門コース で順を追って学べます。

関連リソース

よくある質問

Q. プログラミング言語と SQL は何が違いますか

A. プログラミング言語が「手順を書く (How)」のに対し、SQL は「何が欲しいかを書く (What)」言語です。条件分岐や繰り返しを書かず、欲しい結果を宣言的に書くと、データベースが最適な手順を選んで返してくれます。

Q. 非エンジニアでも SQL は学ぶべきですか

A. むしろ非エンジニアにこそ強くおすすめできるスキルです。マーケ・営業・経営企画・経理・カスタマーサポートなど、データを扱う全ての職種で生産性が大きく変わります。投資対効果が抜群に高いスキルです。

Q. Excel と SQL の使い分けは

A. データが数千行までで、その場で集計するなら Excel が速いです。数万行を超える、複数テーブルを結合する、毎月同じ集計を繰り返す、のいずれかが当てはまるなら SQL に切り替えると圧倒的に楽になります。

Q. SQL を書くのに必要な道具は

A. SQL クライアント (DBeaver / TablePlus / pgAdmin) + 接続先 DB の 2 つです。練習だけなら SQLite や DB Fiddle でブラウザ完結できます。会社のデータに繋ぐ場合は管理者に権限を依頼してください。

Q. MySQL と PostgreSQL のどちらを学ぶべきですか

A. 基本構文は 95% 共通です。シェアが大きく Web サービスで多いのは MySQL、近年人気が伸びていて機能豊富なのは PostgreSQL。会社で使う方を選ぶか、迷ったら PostgreSQL を学ぶのが現代的選択です。

Q. AI 時代に SQL は必要ですか

A. むしろ重要性が上がっています。AI が生成した SQL を読んで検算する力、AI に「こういう SQL を書いて」と適切に指示する力、どちらも SQL の基礎理解が前提です。詳しくは AI 時代に必要なプログラミングスキル も参照してください。

ハンズオン Step-by-Step

実際に SQL を 1 行ずつ書いて結果を見る体験ができます。インストール不要のオンライン SQL Fiddle を使えば、ブラウザだけで完結します。

Step 1. ブラウザで SQL 実行環境を開く

SQL Fiddle を開き、左上で SQLite (WebSQL) を選びます。中央左の Schema パネルに「テーブル定義 + サンプルデータ」を貼り付け、Build Schema を押します。

Step 2. サンプルテーブルを作る

次の SQL を Schema パネルに貼って Build Schema を実行します。users という 4 行のテーブルが用意できます。

SQL クエリ

CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER); INSERT INTO users VALUES (1, '田中', 25); INSERT INTO users VALUES (2, '佐藤', 30); INSERT INTO users VALUES (3, '鈴木', 22); INSERT INTO users VALUES (4, '山田', 35);

Step 3. 全件を取り出す SELECT

右側の Query パネルに次を貼り、Run SQL を押します。4 行すべてが返ってきます。

SQL クエリ

SELECT * FROM users;

Step 4. 条件で絞る WHERE

次のクエリで「年齢 30 以上」だけが返ることを確認します。>=< に変えると逆になります。

SQL クエリ

SELECT name, age FROM users WHERE age >= 30;

Step 5. 並べ替える ORDER BY

最後に年齢の降順で全件並べ替えます。これだけで「データを取り出す → 絞る → 並べ替える」の 3 つの基本動作を体験できます。

SQL クエリ

SELECT name, age FROM users ORDER BY age DESC;

ここまで動かせれば、SQL の最初の壁 (環境構築) は越えています。次は SQL 練習問題 10 選 で JOIN と GROUP BY に挑戦してみてください。

まとめ:SQLの学習を「知識」で終わらせないために

SQLは、読んでいるだけでは身につきません。実際に手を動かして、エラーを出しながら学んでいくのが最短ルートです。

今回のポイント:

  • SQLはデータベースと対話するための言語。
  • 基本は SELECT (何を見る) FROM (どこから) WHERE (どの条件で)。
  • ORDER BY で並び替え、LIMIT で件数を絞る。
  • AIを活用するためにも、基礎の理解は不可欠。

次のステップ:実際にSQLを書いてみよう

「環境構築が面倒そう……」と感じる方も安心してください。

チョットデキルの「SQL入門コース」なら、ブラウザを開くだけで、今すぐSQLの実行環境が手に入ります。

  • 環境構築は一切不要:ログインしてすぐにコードを書けます。
  • AIヒント機能:詰まったときは、AIがあなたのコードを見てリアルタイムでアドバイス。
  • 1レッスン5分:忙しい仕事の合間でも、着実にステップアップできます。

まずは「SELECT文でデータを取り出す」という小さな成功体験を、チョットデキルで積み上げてみませんか?

チョットデキルでSQLの練習を始める(無料体験あり)

次に読むべきリソース

出典・参考リンク

本記事の主張・数値・仕様に関する根拠は、以下の一次情報・公式ドキュメントを参照しています。リンク先の更新により内容が変わる場合があるため、最新情報は各公式サイトで確認してください。

この記事について

  • 監修: 生田 陸人 (LuaGate エンジニア / 大手 IT 企業現役エンジニア)
  • 公開: 2026-05-28
  • 最終更新: 2026-05-28
  • カテゴリ: データベース入門
  • 検証環境: PostgreSQL 16 / MySQL 8.x / SQLite 3.45
  • 編集ポリシー: 公式ドキュメント・公的統計を一次情報として優先し、社内エンジニアが実機検証した内容のみを掲載しています。修正提案や事実誤認の指摘は チョットデキル運営 までお寄せください。
01/04