その他

SQL入門: ステップ5 – データの変更 – INSERT、UPDATE、DELETEの使い方

その他
この記事は約3分で読めます。

はじめに

株式会社インプルの奈良です。

前回は、結合(内部結合 INNER JOIN)、合併(Union)、副照会(サブクエリ)について解説しました。

今回は行の挿入(INSERT 追加)、データの更新(UPADTE)、行の削除(DELETE)について学びます。

解説で使用するテーブル構成(Employeesテーブル・Departmentsテーブル)

EmpIDEmpNameDeptID
1John10
2Alice20
3Bob10
4Carol30
5Dave20

Departmentsテーブル:

DeptIDDeptName
10Marketing
20Sales
30HR

行の挿入(INSERT 追加)について

テーブルに新たな行を追加するためのSQL文は「INSERT INTO」を使います。以下に、”Employees” テーブルに新たな従業員を追加するためのSQL文を記述します。

INSERT INTO Employees (EmpID, EmpName, DeptID)
VALUES (6, 'Eva', 30);

ここでは、新たな従業員のIDは6、名前は’Eva’、所属部門のIDは30と設定しています。

INSERT文を適用した後のテーブル

EmpIDEmpNameDeptID
1John10
2Sarah20
3Bob30
4Alice40
5Tom50
6Eva30

データの更新(UPDATE)について

既存のデータを変更するためには「UPDATE」文を使用します。以下に、”Employees” テーブル内の特定の行(この場合、’Eva’という名前の従業員)のデータを更新するためのSQL文を記述します。

UPDATE Employees //どのテーブルを
SET DeptID = 20 // どのように更新する
WHERE EmpName = 'Eva'; //どのような条件で

ここでは、’Eva’の所属部門IDを20に変更しています。

UPDATE文を適用した後のテーブル

EmpIDEmpNameDeptID
1John10
2Sarah20
3Bob30
4Alice40
5Tom50
6Eva20

行の削除(DELETE)について(物理削除)

行をテーブルから削除するためには「DELETE FROM」文を使用します。以下に、”Employees” テーブルから特定の行(この場合、名前が’Eva’の従業員)を削除するためのSQL文を記述します。

DELETE FROM Employees
WHERE EmpName = 'Eva';

なお、DELETE文は物理削除であり、データの更新や削除は取り返しがつかない操作であるため、慎重になる必要があります。設計によっては、論理削除を用いることが適しているケースもあります。

DELETE文を適用した後のテーブル

EmpIDEmpNameDeptID
1John10
2Sarah20
3Bob30
4Alice40
5Tom50

まとめ

今回は、行の挿入(INSERT 追加)、データの更新(UPADTE)、行の削除(DELETE)について解説しました。

また、これまでSQLの基礎として、いくつかの基本的なSQLを記事としてまとめました。

実務レベルでSQL文を使用する際は、トランザクション処理やPreparedStatementなどを用いたSQLインジェクション対策なども考慮する必要があるため、機会があれば記事としてまとめたいと思います。