SQLは、データベースを操作するための言語です。Web開発、データ分析、業務システムなど、あらゆる分野で使われており、エンジニアにとって必須のスキルです。
SQLとは
SQL(Structured Query Language)は、リレーショナルデータベース(RDB)を操作するための標準言語です。MySQL、PostgreSQL、SQLiteなど、さまざまなデータベースで共通して使えます。
SQLでできること
- データの取得:SELECT文でデータを検索・抽出
- データの追加:INSERT文で新しいデータを登録
- データの更新:UPDATE文で既存データを変更
- データの削除:DELETE文でデータを削除
- テーブルの作成:CREATE TABLE文でデータの入れ物を定義
SQL学習のロードマップ
ステップ1:基本のSELECT文(1〜2日)
まずはデータの取得方法を学びましょう。
-- 全件取得
SELECT * FROM users;
-- 条件指定
SELECT name, email FROM users WHERE age >= 20;
-- 並び替え
SELECT * FROM users ORDER BY created_at DESC;
ステップ2:データの追加・更新・削除(1〜2日)
-- データ追加
INSERT INTO users (name, email) VALUES ('田中太郎', '[email protected]');
-- データ更新
UPDATE users SET email = '[email protected]' WHERE id = 1;
-- データ削除
DELETE FROM users WHERE id = 1;
ステップ3:テーブル結合(JOIN)(3〜5日)
複数のテーブルを関連づけてデータを取得する方法です。
データサイエンス入門も参考にしてください。
-- INNER JOIN(両方に存在するデータのみ)
SELECT users.name, orders.total
FROM users
INNER JOIN orders ON users.id = orders.user_id;
-- LEFT JOIN(左テーブルを基準に結合)
SELECT users.name, orders.total
FROM users
LEFT JOIN orders ON users.id = orders.user_id;
ステップ4:集計関数とグループ化(2〜3日)
-- データの集計
SELECT COUNT(*), AVG(age), MAX(age), MIN(age) FROM users;
-- グループごとの集計
SELECT department, COUNT(*) as member_count
FROM employees
GROUP BY department
HAVING COUNT(*) >= 5;
ステップ5:サブクエリ(3〜5日)
-- サブクエリの例
SELECT name FROM users
WHERE id IN (
SELECT user_id FROM orders WHERE total >= 10000
);
おすすめ学習リソース
無料で学べるサイト
- Progate SQL編:ブラウザ上で実際にSQLを実行しながら学べる
- SQLZoo:英語サイトだが、問題形式で実践的に学べる
- paizaラーニング:動画でSQLの基礎を学べる
書籍
SQLの基礎を体系的に学ぶなら書籍がおすすめです。入門書を1冊仕上げると全体像がつかめます。
SQLが活かせる場面
- Web開発:バックエンドでのデータ操作
- データ分析:BIツールやレポート作成
- 業務効率化:データの集計や抽出を自動化
- マーケティング:ユーザーデータの分析
まとめ
SQLはプログラミング言語の中でも比較的習得しやすく、実務での使用頻度が高い言語です。まずはSELECT文の基本を押さえ、段階的にJOINやサブクエリに進んでいきましょう。