はじめに
株式会社インプルの奈良です。
前回は、結合(内部結合 INNER JOIN)、合併(Union)、副照会(サブクエリ)について解説しました。
今回は行の挿入(INSERT 追加)、データの更新(UPADTE)、行の削除(DELETE)について学びます。
解説で使用するテーブル構成(Employeesテーブル・Departmentsテーブル)
EmpID | EmpName | DeptID |
---|---|---|
1 | John | 10 |
2 | Alice | 20 |
3 | Bob | 10 |
4 | Carol | 30 |
5 | Dave | 20 |
Departmentsテーブル:
DeptID | DeptName |
---|---|
10 | Marketing |
20 | Sales |
30 | HR |
行の挿入(INSERT 追加)について
テーブルに新たな行を追加するためのSQL文は「INSERT INTO」を使います。以下に、”Employees” テーブルに新たな従業員を追加するためのSQL文を記述します。
INSERT INTO Employees (EmpID, EmpName, DeptID)
VALUES (6, 'Eva', 30);
ここでは、新たな従業員のIDは6、名前は’Eva’、所属部門のIDは30と設定しています。
INSERT文を適用した後のテーブル
EmpID | EmpName | DeptID |
---|---|---|
1 | John | 10 |
2 | Sarah | 20 |
3 | Bob | 30 |
4 | Alice | 40 |
5 | Tom | 50 |
6 | Eva | 30 |
データの更新(UPDATE)について
既存のデータを変更するためには「UPDATE」文を使用します。以下に、”Employees” テーブル内の特定の行(この場合、’Eva’という名前の従業員)のデータを更新するためのSQL文を記述します。
UPDATE Employees //どのテーブルを
SET DeptID = 20 // どのように更新する
WHERE EmpName = 'Eva'; //どのような条件で
ここでは、’Eva’の所属部門IDを20に変更しています。
UPDATE文を適用した後のテーブル
EmpID | EmpName | DeptID |
---|---|---|
1 | John | 10 |
2 | Sarah | 20 |
3 | Bob | 30 |
4 | Alice | 40 |
5 | Tom | 50 |
6 | Eva | 20 |
行の削除(DELETE)について(物理削除)
行をテーブルから削除するためには「DELETE FROM」文を使用します。以下に、”Employees” テーブルから特定の行(この場合、名前が’Eva’の従業員)を削除するためのSQL文を記述します。
DELETE FROM Employees
WHERE EmpName = 'Eva';
なお、DELETE文は物理削除であり、データの更新や削除は取り返しがつかない操作であるため、慎重になる必要があります。設計によっては、論理削除を用いることが適しているケースもあります。
DELETE文を適用した後のテーブル
EmpID | EmpName | DeptID |
---|---|---|
1 | John | 10 |
2 | Sarah | 20 |
3 | Bob | 30 |
4 | Alice | 40 |
5 | Tom | 50 |
まとめ
今回は、行の挿入(INSERT 追加)、データの更新(UPADTE)、行の削除(DELETE)について解説しました。
また、これまでSQLの基礎として、いくつかの基本的なSQLを記事としてまとめました。
実務レベルでSQL文を使用する際は、トランザクション処理やPreparedStatementなどを用いたSQLインジェクション対策なども考慮する必要があるため、機会があれば記事としてまとめたいと思います。