SQL

前提ページ:データベース
推奨ページ:なし

Web アプリケーションでデータを保存するときに、データベースを利用することが多くあります。 今回はその操作を行うのに必要な SQL を学びます。

別章の説明では、SELECT 文のみ利用します。


SQL

SQL とは、データベースに操作を伝えるための言語です。 SQL には様々な種類がありますが、今回は MySQL という RDBMS の SQL を利用します。

操作

テーブルの例

以下のようなテーブルをusers として置いて、各 SQL の操作について説明します。

id name email sex age
1 inu inu@example.com オス 10
2 neko neko@example.com メス 8
3 usagi usagi@example.com オス 2

SELECT (レコードの取得)

SELECT は テーブル名カラム名 指定したテーブルのカラムのうち、レコードが条件に満たすものを取得します。※1

SELECT カラム名1, カラム名2, カラム名3, ...  FROM テーブル名 WHERE 条件;

以下のような SQL を送信することで、id が 1 であるレコードのnameをとってくることができます。 例のテーブルの場合、inuがデータベースから返ってきます。

SELECT name FROM users WHERE id=1;

INSERT(レコードの追加)

INSERT は テーブル名のテーブルに、値 1, 値 2, 値 3, …のレコードを追加します。※1

INSERT INTO テーブル名 VALUES (1, 2, 3, ...);

以下のような SQL を送信することで、id が 4 で、nametoraemailtora@example.comsexメスage14のレコードを追加することができます。

INSERT INTO users VALUES (4, "tora", "tora@example.com", "メス", 14);

実行後のテーブル

id name email sex age
1 inu inu@example.com オス 10
2 neko neko@example.com メス 8
3 usagi usagi@example.com オス 2
4 tora tora@example.com メス 14

UPDATE(レコードの更新)

UPDATE は テーブル名のテーブルの条件を満たすレコードに、変更に指定した変更を加えます。※1

UPDATE テーブル名 SET 変更 WHERE 条件;

以下のような SQL を送信することで、idが 1 であるデータのageを 19 に変更できます。

UPDATE users SET age=19 WHERE id=1;

実行後のテーブル

id name email sex age
1 inu inu@example.com オス 19
2 neko neko@example.com メス 8
3 usagi usagi@example.com オス 2

DELETE(レコードの消去)

DELETE は テーブル名のテーブルの条件を満たすレコードを消去します。※1

DELETE FROM テーブル名 WHERE 条件;

以下のような SQL を送信することで、idが 1 であるレコードを消去することができます。

DELETE FROM users WHERE id=1;

実行後のテーブル

id name email sex age
2 neko neko@example.com メス 8
3 usagi usagi@example.com オス 2

備考

※1 厳密な説明ではありませんが、今回は SQL の概要を知ってもらうことを目的としているので、言及しません。