「SQLって聞いたことがあるけど、何に使うの?」
「データベースって難しそう…どこから始めればいい?」
そんなプログラミング初心者の方に向けて、SQLの基本的な使い方をわかりやすく説明します。
この記事を読めば、SQLでデータを操作する基本的な方法がしっかり身につきます。
SQLってなに?

SQLの説明
SQLとは、データベースに保存されている情報を操作するための言語です。
図書館で本を探すとき、「○○について書かれた本を探して」とお願いしますよね。
SQLも同じで、コンピューターに「こんな条件のデータを探して」「このデータを追加して」とお願いするための言語です。
SQLの特徴
- データの検索、追加、更新、削除ができる
- 世界中で使われている標準的な言語
- 覚えやすい英語に近い文法
- 多くのソフトウェアで使用されている
データベースとは
データベース 大量の情報を整理して保存する仕組み
例:会員管理システム
会員テーブル
┌────┬────────┬─────┬──────────┐
│ ID │ 名前 │ 年齢 │ 住所 │
├────┼────────┼─────┼──────────┤
│ 1 │ 田中太郎 │ 25 │ 東京都 │
│ 2 │ 佐藤花子 │ 30 │ 大阪府 │
│ 3 │ 山田次郎 │ 22 │ 神奈川県 │
└────┴────────┴─────┴──────────┘
SQLが使われる場面
ウェブサイト ユーザー情報や投稿データの管理
業務システム 売上データや在庫管理
データ分析 売上傾向や顧客分析
スマートフォンアプリ ユーザーの設定やデータ保存
SQLの基本操作
SQLでできる4つの基本操作
SQLでは、主に4つの操作ができます:
- SELECT(選択):データを探して表示
- INSERT(挿入):新しいデータを追加
- UPDATE(更新):既存のデータを変更
- DELETE(削除):不要なデータを削除
この4つを「CRUD」と呼ぶこともあります(Create, Read, Update, Delete)。
データを検索する(SELECT文)
基本的な検索
説明 テーブルからデータを取り出す最も基本的な方法です。
基本的な書き方
SELECT 列名 FROM テーブル名;
実際の例:全ての会員情報を表示
SELECT * FROM 会員;
実行結果
┌────┬────────┬─────┬──────────┐
│ ID │ 名前 │ 年齢 │ 住所 │
├────┼────────┼─────┼──────────┤
│ 1 │ 田中太郎 │ 25 │ 東京都 │
│ 2 │ 佐藤花子 │ 30 │ 大阪府 │
│ 3 │ 山田次郎 │ 22 │ 神奈川県 │
└────┴────────┴─────┴──────────┘
解説
SELECT
:「選んで表示して」という意味*
:「すべての列」という意味FROM 会員
:「会員テーブルから」という意味
特定の列だけを表示
説明 必要な情報だけを表示することができます。
コード例
SELECT 名前, 年齢 FROM 会員;
実行結果
┌────────┬─────┐
│ 名前 │ 年齢 │
├────────┼─────┤
│ 田中太郎 │ 25 │
│ 佐藤花子 │ 30 │
│ 山田次郎 │ 22 │
└────────┴─────┘
条件を指定して検索(WHERE句)
説明 特定の条件に合うデータだけを表示できます。
コード例:25歳以上の会員を表示
SELECT * FROM 会員 WHERE 年齢 >= 25;
実行結果
┌────┬────────┬─────┬──────────┐
│ ID │ 名前 │ 年齢 │ 住所 │
├────┼────────┼─────┼──────────┤
│ 1 │ 田中太郎 │ 25 │ 東京都 │
│ 2 │ 佐藤花子 │ 30 │ 大阪府 │
└────┴────────┴─────┴──────────┘
よく使う条件
-- 等しい
SELECT * FROM 会員 WHERE 年齢 = 25;
-- より大きい
SELECT * FROM 会員 WHERE 年齢 > 25;
-- 以上
SELECT * FROM 会員 WHERE 年齢 >= 25;
-- 文字列の検索
SELECT * FROM 会員 WHERE 名前 = '田中太郎';
-- 複数の条件(AND)
SELECT * FROM 会員 WHERE 年齢 >= 25 AND 住所 = '東京都';
-- いずれかの条件(OR)
SELECT * FROM 会員 WHERE 年齢 = 25 OR 年齢 = 30;
データを追加する(INSERT文)

新しいデータの追加
説明 テーブルに新しい行(レコード)を追加します。
基本的な書き方
INSERT INTO テーブル名 (列名1, 列名2) VALUES (値1, 値2);
実際の例:新しい会員を追加
INSERT INTO 会員 (名前, 年齢, 住所) VALUES ('鈴木一郎', 28, '愛知県');
実行後のテーブル
┌────┬────────┬─────┬──────────┐
│ ID │ 名前 │ 年齢 │ 住所 │
├────┼────────┼─────┼──────────┤
│ 1 │ 田中太郎 │ 25 │ 東京都 │
│ 2 │ 佐藤花子 │ 30 │ 大阪府 │
│ 3 │ 山田次郎 │ 22 │ 神奈川県 │
│ 4 │ 鈴木一郎 │ 28 │ 愛知県 │
└────┴────────┴─────┴──────────┘
解説
INSERT INTO
:「~に挿入する」という意味(名前, 年齢, 住所)
:どの列にデータを入れるか指定VALUES
:「値は」という意味('鈴木一郎', 28, '愛知県')
:実際に入れる値
複数のデータを一度に追加
説明 一度のコマンドで複数の行を追加できます。
コード例
INSERT INTO 会員 (名前, 年齢, 住所) VALUES
('高橋美咲', 24, '福岡県'),
('小林健太', 35, '北海道'),
('渡辺優子', 29, '兵庫県');
データを更新する(UPDATE文)
既存データの変更
説明 すでに存在するデータの内容を変更します。
基本的な書き方
UPDATE テーブル名 SET 列名 = 新しい値 WHERE 条件;
実際の例:田中太郎の年齢を26に変更
UPDATE 会員 SET 年齢 = 26 WHERE 名前 = '田中太郎';
実行後のテーブル
┌────┬────────┬─────┬──────────┐
│ ID │ 名前 │ 年齢 │ 住所 │
├────┼────────┼─────┼──────────┤
│ 1 │ 田中太郎 │ 26 │ 東京都 │ ← 変更された
│ 2 │ 佐藤花子 │ 30 │ 大阪府 │
│ 3 │ 山田次郎 │ 22 │ 神奈川県 │
└────┴────────┴─────┴──────────┘
複数の列を同時に更新
UPDATE 会員 SET 年齢 = 27, 住所 = '千葉県' WHERE 名前 = '田中太郎';
注意点 WHERE句を忘れると、全ての行が変更されてしまいます!
データを削除する(DELETE文)
不要なデータの削除
説明 条件に合うデータを削除します。
基本的な書き方
DELETE FROM テーブル名 WHERE 条件;
実際の例:山田次郎のデータを削除
DELETE FROM 会員 WHERE 名前 = '山田次郎';
実行後のテーブル
┌────┬────────┬─────┬──────────┐
│ ID │ 名前 │ 年齢 │ 住所 │
├────┼────────┼─────┼──────────┤
│ 1 │ 田中太郎 │ 26 │ 東京都 │
│ 2 │ 佐藤花子 │ 30 │ 大阪府 │
└────┴────────┴─────┴──────────┘
複数の条件で削除
DELETE FROM 会員 WHERE 年齢 < 25 AND 住所 = '神奈川県';
重要な注意点
- WHERE句を忘れると、全てのデータが削除されます
- 削除したデータは復元できません
- 実行前に必ずSELECTで確認しましょう
データを並べ替える(ORDER BY)

昇順・降順での並べ替え
説明 検索結果を特定の順序で表示できます。
年齢の若い順に並べる(昇順)
SELECT * FROM 会員 ORDER BY 年齢;
実行結果
┌────┬────────┬─────┬──────────┐
│ ID │ 名前 │ 年齢 │ 住所 │
├────┼────────┼─────┼──────────┤
│ 3 │ 山田次郎 │ 22 │ 神奈川県 │
│ 1 │ 田中太郎 │ 25 │ 東京都 │
│ 2 │ 佐藤花子 │ 30 │ 大阪府 │
└────┴────────┴─────┴──────────┘
年齢の高い順に並べる(降順)
SELECT * FROM 会員 ORDER BY 年齢 DESC;
複数の列で並べ替え
SELECT * FROM 会員 ORDER BY 住所, 年齢 DESC;
データを集計する
件数を数える(COUNT)
説明 条件に合うデータの件数を数えます。
全会員数を数える
SELECT COUNT(*) FROM 会員;
実行結果
┌──────────┐
│ COUNT(*) │
├──────────┤
│ 3 │
└──────────┘
25歳以上の会員数
SELECT COUNT(*) FROM 会員 WHERE 年齢 >= 25;
合計・平均を計算する
年齢の合計
SELECT SUM(年齢) FROM 会員;
年齢の平均
SELECT AVG(年齢) FROM 会員;
最高年齢・最低年齢
SELECT MAX(年齢), MIN(年齢) FROM 会員;
グループごとの集計(GROUP BY)
説明 住所ごとに会員数を集計してみましょう。
コード例
SELECT 住所, COUNT(*) FROM 会員 GROUP BY 住所;
実行結果
┌──────────┬──────────┐
│ 住所 │ COUNT(*) │
├──────────┼──────────┤
│ 東京都 │ 1 │
│ 大阪府 │ 1 │
│ 神奈川県 │ 1 │
└──────────┴──────────┘
実際に練習してみよう

練習用のサンプルデータ
商品テーブル
CREATE TABLE 商品 (
商品ID INT,
商品名 VARCHAR(100),
価格 INT,
カテゴリ VARCHAR(50)
);
INSERT INTO 商品 VALUES
(1, 'ノートパソコン', 80000, '電子機器'),
(2, 'マウス', 2000, '電子機器'),
(3, 'ボールペン', 100, '文房具'),
(4, 'ノート', 200, '文房具'),
(5, 'スマートフォン', 50000, '電子機器');
練習問題
問題1:全ての商品を表示してください
SELECT * FROM 商品;
問題2:電子機器カテゴリの商品だけを表示してください
SELECT * FROM 商品 WHERE カテゴリ = '電子機器';
問題3:価格が10000円以下の商品を安い順に表示してください
SELECT * FROM 商品 WHERE 価格 <= 10000 ORDER BY 価格;
問題4:カテゴリごとの商品数を表示してください
SELECT カテゴリ, COUNT(*) FROM 商品 GROUP BY カテゴリ;
SQLを学習するときのコツ
実際に手を動かす
おすすめの練習環境
- SQLiteオンライン:ブラウザで練習可能
- MySQL Workbench:本格的な開発環境
- phpMyAdmin:ウェブベースのツール
エラーを恐れない
よくあるエラー
- スペルミス:
SLEECT
(正しくはSELECT
) - セミコロン忘れ:文の最後に
;
をつける - 引用符の間違い:文字列は
'
で囲む
読みやすいコードを書く
良い例
SELECT 名前, 年齢, 住所
FROM 会員
WHERE 年齢 >= 25
ORDER BY 年齢 DESC;
避けたい例
select名前,年齢,住所from会員where年齢>=25order by年齢desc;
段階的に学習する
学習の順序
- 基本4操作:SELECT, INSERT, UPDATE, DELETE
- 条件指定:WHERE句の使い方
- 並べ替え:ORDER BY
- 集計:COUNT, SUM, AVGなど
- グループ化:GROUP BY
- テーブル結合:JOIN(上級者向け)
よくある質問と答え
Q. SQLと他のプログラミング言語の違いは何ですか? A. SQLはデータベース専用の言語で、データの操作に特化しています。PythonやJavaは汎用的なプログラミング言語です。
Q. SQLを覚えるとどんな仕事ができますか? A. データ分析、ウェブ開発、システム管理など、多くの分野で活用できます。
Q. どのくらい勉強すれば使えるようになりますか? A. 基本操作なら1〜2週間、実務レベルなら数ヶ月の学習が目安です。
Q. SQLのバージョンや種類はありますか? A. MySQL、PostgreSQL、SQLiteなど様々な種類がありますが、基本的な構文はほぼ同じです。
まとめ:SQLでデータを自由自在に操ろう
SQLを覚えれば、データベースに保存された情報を自由に操作できるようになります。
今日覚えたこと
- SELECT:
SELECT * FROM テーブル名
でデータを検索 - INSERT:
INSERT INTO テーブル名 VALUES (値)
でデータを追加 - UPDATE:
UPDATE テーブル名 SET 列名 = 値 WHERE 条件
でデータを更新 - DELETE:
DELETE FROM テーブル名 WHERE 条件
でデータを削除
最初は基本的なSELECT文から始めましょう。慣れてきたら、条件指定や集計機能も使ってみてください。
コメント