SQL・データベース入門|プログラミング初心者が最初に覚えるべき基礎知識【2026年版】
SQLとデータベースの仕組みを、文系出身の現役エンジニアがゼロから解説。SELECT・INSERT・JOINなど実務でよく使うコマンドを具体例つきで学べます。
「SQLってプログラミングと別で覚えないといけないの?」
正直、当時の僕はSQLを完全に後回しにしていました。HTMLとCSSが楽しくて、JavaScriptに夢中で、「データベースは後で覚えればいい」とずっと思っていた。
でも、実際にエンジニアとして働き始めてから気づきました。SQLを知らないと、バックエンドどころかフロントエンドでも詰まる場面があると。APIが何を返してくるか理解するにも、DBの構造を把握していることが前提になっていることが多いからです。
結論から言うと、**SQLはプログラミングスキルのうち「コスパ最強のひとつ」**です。覚えることが比較的少ないのに、活躍の幅が広い。この記事では、独学でSQLをゼロから習得するための最短ルートを解説します。
データベースとは何か——Excelとの違い
データベースを理解するのに、Excelとの比較が一番分かりやすいです。
| Excel | データベース | |
|---|---|---|
| 得意なこと | 少量データの手動管理 | 大量データの自動処理 |
| 操作方法 | マウスで直感的に | SQLという言語で操作 |
| 同時アクセス | 基本的に1人で使う | 何万人でも同時に使える |
| 容量 | 数万行が限界 | 数億行以上扱える |
Webサービスのユーザー情報・注文履歴・記事コンテンツは全て、データベースに保存されています。Webエンジニアがデータベースを避けて通れない理由がここにあります。
代表的なデータベース
- MySQL / PostgreSQL: オープンソースのリレーショナルDB。Web開発でよく使われる
- SQLite: 軽量でファイル1つで動く。学習・小規模アプリに最適
- MongoDB: JSONに近い形式でデータを保存(NoSQL)
- Redis: メモリ上で動く高速DB。キャッシュや一時データ保存に使う
最初に学ぶならSQLiteかMySQLをおすすめします。学習コストが低く、転職でも使える知識です。
SQLの基本:まず覚える4つの命令
SQLは大きく分けて「データを読む(SELECT)」「データを書く(INSERT)」「データを変える(UPDATE)」「データを消す(DELETE)」の4つで成り立っています。現場ではこれをCRUD操作と呼びます。
前提:テーブルとは
データベースはExcelのシートのような「テーブル」という表でデータを管理します。
-- usersテーブルのイメージ
-- id | name | email | age | created_at
-- 1 | 田中太郎 | taro@example.com | 25 | 2026-01-10
-- 2 | 佐藤花子 | hanako@example.com | 30 | 2026-02-15
-- 3 | 中村勉 | tsutomu@example.com| 28 | 2026-03-01
SELECT:データを読む
-- 全データを取得
SELECT * FROM users;
-- 特定の列だけ取得
SELECT name, email FROM users;
-- 条件で絞り込む(WHERE)
SELECT * FROM users WHERE age >= 25;
-- 並べ替える(ORDER BY)
SELECT * FROM users ORDER BY age DESC;
-- 件数を制限する(LIMIT)
SELECT * FROM users LIMIT 10;
ここがポイントなんですが、*(アスタリスク)は「全列を取得」という意味です。実務では必要な列だけ指定する方がパフォーマンスが良いです。
INSERT:データを追加する
-- 新しいユーザーを追加
INSERT INTO users (name, email, age, created_at)
VALUES ('鈴木一郎', 'ichiro@example.com', 27, '2026-04-09');
UPDATE:データを変更する
-- 特定のユーザーのメールアドレスを変更
UPDATE users
SET email = 'newemail@example.com'
WHERE id = 1;
注意: WHEREを忘れると全行が更新されます。これは初心者が最もやってしまうミスのひとつです。
DELETE:データを削除する
-- 特定のユーザーを削除
DELETE FROM users WHERE id = 3;
WHEREを忘れると全行削除されます。本番環境では特に要注意です。
WHERE句の応用:絞り込みを使いこなす
-- 複数条件(AND)
SELECT * FROM users WHERE age >= 25 AND age <= 35;
-- いずれか(OR)
SELECT * FROM users WHERE age < 20 OR age > 60;
-- 文字列の部分一致(LIKE)
SELECT * FROM users WHERE name LIKE '田%'; -- 「田」から始まる名前
-- 複数の値のいずれか(IN)
SELECT * FROM users WHERE age IN (25, 28, 30);
-- NULLの確認
SELECT * FROM users WHERE email IS NULL;
集計:データを集計する関数
-- 件数をカウント
SELECT COUNT(*) FROM users;
-- 平均年齢
SELECT AVG(age) FROM users;
-- 最大・最小
SELECT MAX(age), MIN(age) FROM users;
-- グループ化して集計(GROUP BY)
-- 年齢帯ごとのユーザー数
SELECT age, COUNT(*) as user_count
FROM users
GROUP BY age
ORDER BY age;
JOIN:複数テーブルを結合する
これがSQLで最も重要な概念のひとつです。
-- ordersテーブルのイメージ
-- id | user_id | product | price | ordered_at
-- 1 | 1 | 本A | 1500 | 2026-03-10
-- 2 | 1 | 本B | 2000 | 2026-03-15
-- 3 | 2 | 本C | 3000 | 2026-04-01
-- ユーザーと注文を結合して、誰が何を注文したか表示
SELECT users.name, orders.product, orders.price
FROM users
INNER JOIN orders ON users.id = orders.user_id;
実行結果:
name | product | price
田中太郎 | 本A | 1500
田中太郎 | 本B | 2000
佐藤花子 | 本C | 3000
JOINの種類
-- INNER JOIN: 両方のテーブルに存在するデータのみ
-- LEFT JOIN: 左テーブルは全件、右テーブルはマッチするものだけ
-- RIGHT JOIN: 右テーブルは全件、左テーブルはマッチするものだけ
-- 注文していないユーザーも含めて表示(LEFT JOIN)
SELECT users.name, orders.product
FROM users
LEFT JOIN orders ON users.id = orders.user_id;
テーブルを作る:CREATE TABLE
-- usersテーブルを作成
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(100) NOT NULL,
email VARCHAR(200) UNIQUE NOT NULL,
age INTEGER,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
PRIMARY KEY: テーブルの主キー(一意の識別子)NOT NULL: NULLを許可しないUNIQUE: 重複を許可しないDEFAULT: デフォルト値
実務でよく使うSQLパターン
パターン1: 最新N件を取得
-- 最新10件の注文を取得
SELECT * FROM orders
ORDER BY ordered_at DESC
LIMIT 10;
パターン2: 条件に合うデータ数をカウント
-- 25歳以上のユーザー数
SELECT COUNT(*) FROM users WHERE age >= 25;
パターン3: グループ別の集計+絞り込み(HAVING)
-- 2件以上注文したユーザーとその注文数
SELECT user_id, COUNT(*) as order_count
FROM orders
GROUP BY user_id
HAVING COUNT(*) >= 2;
パターン4: サブクエリ
-- 平均年齢より高いユーザーを取得
SELECT name, age FROM users
WHERE age > (SELECT AVG(age) FROM users);
SQLを使う環境の選び方
初心者が最初に試すなら、インストール不要のオンライン環境がおすすめです。
- DB Fiddle / SQLiteOnline: ブラウザ上でSQLを実行できる
- TablePlus: GUIでDBを操作できるアプリ(Mac/Windows対応)
- DBeaver: 無料で使えるDB管理ツール
実際に開発で使うなら、Node.jsを使う場合はNode.js入門ガイドも参照してください。PythonでSQLiteを扱う方法はPythonで作れるアプリ5選で紹介しています。
エンジニア転職とSQLの関係
転職活動でSQLの知識が問われる場面があります。特に、Web系以外(SIer・金融・ヘルスケア)への転職では、SQLのテストが選考に含まれることも珍しくありません。
また、データアナリスト・データエンジニアという職種を目指すなら、SQLは最重要スキルです。Pythonと並んで最初に覚えるべき言語と言えます。
まとめ:SQLは「ツール」より「共通言語」
大事なのは「SQLはプログラミング言語のひとつである」という認識です。JavaScriptがブラウザのための言語なら、SQLはデータベースのための言語です。
覚える順番のロードマップはこうです:
1. SELECT, WHERE, ORDER BY, LIMIT をマスター(データを読む)
2. INSERT, UPDATE, DELETE を理解(データを変える)
3. GROUP BY, COUNT, AVG などの集計を学ぶ
4. JOIN でテーブルを結合できるようになる
5. CREATE TABLE でテーブル設計ができるようになる
これだけで、現場で「SQLが分かります」と言える水準に到達できます。これは断言できます。
プログラミング学習全体のロードマップは未経験からエンジニアへのロードマップで詳しく解説しています。SQLの次に何を学ぶべきか迷ったときは、独学プログラミングの最短ロードマップもあわせて読んでみてください。
まずは今日、ブラウザ上のSQL環境でSELECT文を1本書いてみてください。それだけで、データベースの世界への扉が開きます。ぜひ試してみてください。
独学に限界を感じたら:
SQLやデータベース設計は、概念を理解しても「実際の設計」は経験が必要です。現役エンジニアに実際のコードを見てもらいながら学べる環境が最短ルートです。
この記事を書いた人: 中村ソウマ / フリーランスフロントエンドエンジニア。文系・営業職→独学8ヶ月でエンジニア転職。React/Next.js専門。