SQL初心者必見!データベースの基本とCRUD操作(SELECT・INSERT・UPDATE・DELETE)を徹底解説
生徒
「SQLってよく聞くんですけど、そもそも何をするものなんですか?プログラミングの経験もパソコンの知識も全然ないんですけど…。」
先生
「SQLは、データベースという『情報の倉庫』に指示を出すための特別な言葉です。例えば、お店のお客さんのリストから特定の人を探したり、新しい注文内容を書き込んだりするときに使います。紙の名簿や表を操作するイメージに近いですよ。」
生徒
「難しそうですね。私にも理解できますか?」
先生
「大丈夫です。まずは『CRUD(クラウド)』という、データの基本動作を覚えるだけで、世界がガラッと変わります。一緒に一歩ずつ進んでいきましょう。」
1. SQLとは何か?
SQL(エスキューエル)とは、データベースと呼ばれる「大量のデータを整理して保存する箱」に対して指示を出すための言語です。 皆さんが普段使っているスマートフォンのアプリや、通販サイトの裏側では、このSQLが常に動いています。
例えば、図書館を想像してみてください。たくさんの本(データ)が棚に並んでいますよね。 「あの本はどこにあるかな?」と探したり、「新しい本を買ったから棚に置こう」と追加したりする作業を、パソコンに命令するのがSQLの役割です。 SQLを使えば、手作業では何時間もかかる膨大な名簿の中から、特定の条件に合う人を一瞬で見つけ出すことができます。
プログラミング未経験の方でも、「英語に近い命令」で動くので、比較的覚えやすいのが特徴です。 まずは、データがどのように保存されているか、「テーブル」という概念から見ていきましょう。
データベースの「テーブル」とは?
データベースの中では、情報は「テーブル」という、いわゆるExcel(エクセル)のような表形式で管理されています。 縦の列を「カラム」、横の一行分を「レコード」と呼びます。一つのレコードには、一人のユーザー情報などがまとまって入っています。
2. データの基本操作「CRUD(クラウド)」を覚えよう
データベースを操作する際、最も基本的で重要な4つの動作をまとめてCRUD(クラウド)と呼びます。 これは、それぞれの操作の頭文字を取った言葉です。
| 頭文字 | 操作内容 | SQLのコマンド | 役割 |
|---|---|---|---|
| C (Create) | 作成・登録 | INSERT | 新しいデータを追加する |
| R (Read) | 読み取り・検索 | SELECT | データを取り出して表示する |
| U (Update) | 更新・変更 | UPDATE | 既にあるデータを書き換える |
| D (Delete) | 削除 | DELETE | 不要なデータを消去する |
この4つさえマスターすれば、ほとんどのデータベース操作が可能になります。 それでは、具体的なSQLの書き方を見ていきましょう。
3. SELECT:データを探して表示する(読み取り)
「このリストから名前を表示して」と命令するのがSELECT(セレクト)です。 もっとも頻繁に使われる命令で、データベースから必要な情報を抽出します。
操作前の名簿テーブル(users)の状態:
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋愛 | 22 | ai@example.com
5 | 田中健二 | 40 | kenji@example.com
ここで、「20歳以上の人の名前と年齢をすべて表示して」という指示をSQLで書いてみます。
SELECT name, age
FROM users
WHERE age >= 20;
実行結果:
name | age
---------+-----
山田太郎 | 25
鈴木一郎 | 30
高橋愛 | 22
田中健二 | 40
解説:
「SELECT name, age」は「名前と年齢の項目を表示してね」という意味です。
「FROM users」は「usersというテーブルから探してね」という意味です。
「WHERE age >= 20」は「20歳以上の人だけ」という条件を指定しています。
4. INSERT:新しいデータを追加する(作成)
新しく入会した人の情報を登録するのがINSERT(インサート)です。 紙の名簿に新しく一行書き加えるイメージです。
操作前のテーブル状態(現在のレコード数は5件):
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋愛 | 22 | ai@example.com
5 | 田中健二 | 40 | kenji@example.com
「渡辺恵さん(28歳)」を新しく追加します。
INSERT INTO users (id, name, age, email)
VALUES (6, '渡辺恵', 28, 'megumi@example.com');
実行後のテーブル状態:
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋愛 | 22 | ai@example.com
5 | 田中健二 | 40 | kenji@example.com
6 | 渡辺恵 | 28 | megumi@example.com
解説:
「INSERT INTO users」で「usersテーブルに情報を入れます」と宣言します。
カッコ内には項目名を並べ、「VALUES」の後のカッコに実際の具体的な情報を順番に書いていきます。
5. UPDATE:データを書き換える(更新)
「住所が変わった」「年齢が一つ上がった」など、すでにある情報を修正するのがUPDATE(アップデート)です。 修正液を使わずに、一瞬で書き換えが可能です。
操作前のテーブル状態(佐藤さんのメールアドレスを変更したい):
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋愛 | 22 | ai@example.com
5 | 田中健二 | 40 | kenji@example.com
6 | 渡辺恵 | 28 | megumi@example.com
「IDが2の佐藤花子さん」のメールアドレスを新しいものに変更します。
UPDATE users
SET email = 'hanako-new@example.com'
WHERE id = 2;
実行後のテーブル状態:
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako-new@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋愛 | 22 | ai@example.com
5 | 田中健二 | 40 | kenji@example.com
6 | 渡辺恵 | 28 | megumi@example.com
重要な注意点:
「WHERE id = 2」という条件を書き忘れると、なんと全員のメールアドレスが同じものに書き換わってしまいます!
UPDATEを使うときは「誰の情報を変えるのか」をしっかり指定するのがルールです。
6. DELETE:データを消去する(削除)
退会したユーザーや間違えて登録した情報を消すのがDELETE(デリート)です。 一度消したデータは元に戻すのが難しいため、最も慎重に扱う必要があります。
操作前のテーブル状態:
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako-new@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋愛 | 22 | ai@example.com
5 | 田中健二 | 40 | kenji@example.com
6 | 渡辺恵 | 28 | megumi@example.com
「IDが5の田中健二さん」のデータを削除します。
DELETE FROM users
WHERE id = 5;
実行後のテーブル状態:
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako-new@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋愛 | 22 | ai@example.com
6 | 渡辺恵 | 28 | megumi@example.com
解説:
DELETEもUPDATEと同じで、WHEREで条件を指定しないと、テーブルの中身がすべて消えて空っぽになってしまいます。
実務では非常に怖い操作なので、初心者のうちは「WHEREを忘れない」と強く意識しましょう。
7. データベース学習を始める方へのアドバイス
ここまで読んで、「意外とシンプルだな」と感じたのではないでしょうか。 SQLは世界中で使われている共通の言語です。一度覚えてしまえば、どんなアプリ開発やデータ分析にも応用が効きます。
専門用語についても、ここで少し整理しておきましょう。
- クエリ: SQLで書かれた命令文そのもののことです。
- レコード: 表の中の「横一行分」のデータのことです。
- カラム: 表の中の「縦一列分」の項目名のことです。
- リレーショナルデータベース(RDB): 今回説明したような「表形式」でデータを管理するシステムの総称です。
最初は「SELECT * FROM テーブル名;」という、すべての情報を表示する魔法の言葉から練習してみるのがおすすめです。 まずは画面に自分の入れたデータが表示される感動を味わってみてください。
パソコンの操作が苦手でも、このように一つ一つの動作を「言葉」として捉えれば、決して難しいことではありません。 まずはこのCRUDの基本を繰り返し眺めて、SQLの全体像を掴んでいきましょう。