SQL DELETE ステートメントは、テーブル構造をそのまま維持しながらテーブルから特定の行を削除するために使用されます。テーブル全体を削除する DROP とは異なります。
- 条件に基づいて行を削除します。
- テーブルのスキーマ制約とインデックスを保持します。
- 単一行またはすべての行を削除できます。
例: まず最初に 作成する SQL DELETE コマンドを使用するデモ SQL データベースとテーブル。
Javaのcase文
クエリ:
DELETE FROM Employees
WHERE EmployeeID = 5;
出力:
- このクエリは、Employees テーブルから EmployeeID が 5 である行を削除します。
- その特定のレコードのみが削除されます。他のすべての行は変更されません。
構文:
DELETE FROM table_name
WHERE some_condition;
- 何らかの条件: 削除する行をフィルタリングするために使用される条件。
- テーブル名: 行を削除するテーブルの名前。
注記: WHERE 句を使用して、単一または複数のレコードを削除できます。省略すると、テーブル内のすべてのレコードが削除されます。
SQL DELETE 文の例
SQL で GFG_Employee という名前のテーブルを作成したとします。このテーブルには、以下に示すように、従業員の ID 名、電子メール、部門などの個人情報が含まれています。
CREATE TABLE GFG_Employees (
id INT 主キー
名前 VARCHAR (20)
電子メール VARCHAR (25)
部門 VARCHAR(20)
);
INSERT INTO GFG_Employees (ID 名 電子メール 部門) VALUES
(1 'ジェシー' '[email protected]' '開発')
(2 'Praveen' '[email protected]' 'HR')
(3「できる」「[email protected]」「営業」)
(4 'Rithvik' '[email protected]' 'IT')
(5「Suraj」「[email protected]」「品質保証」)
(6 'Om' '[email protected]' 'IT')
(7「ナルト」「[email protected]」「開発」);
* GFG_Employees から選択
出力:
例 1: 単一レコードの削除
条件を指定して DELETE ステートメントを使用すると、テーブルから特定の行を削除できます。の どこ 句により、目的のレコードのみが削除されることが保証されます。以下のクエリを使用して、Rithvik という名前のレコードを削除できます。
クエリ:
DELETE FROM GFG_Employees
WHERE NAME = 'Rithvik';
出力:
例 2: 複数のレコードの削除
複数のレコードを削除するには、複数の行に一致する条件を指定できます。テーブル GFG_Employees から部門が「開発」である行を削除しましょう。これにより、2 行 (1 行目と 7 行目) が削除されます。
クエリ:
DELETE FROM GFG_Employees
WHERE department = 'Development';
出力
例 3: テーブルからすべてのレコードを削除する
テーブルからすべてのレコードを削除する必要がある場合は、WHERE 句を省略するか、アスタリスク (*) を付けた DELETE ステートメントを使用してすべての行を示すことができます。
クエリ:
DELETE FROM GFG_Employees;
Or
DELETE * FROM GFG_Employees;
出力:
テーブル内のすべてのレコードが削除され、表示するレコードがなくなります。テーブル GFG_Employees は空になります。
DELETE 操作のロールバック
DELETE ステートメントは DML 操作であるため、ステートメント内で実行するとロールバックできます。誤ってレコードを削除した場合、またはプロセスを繰り返す必要がある場合は、 ロールバック 指示。
クエリ:
START TRANSACTION;
DELETE FROM GFG_Employees WHERE department = 'Development';
-- If needed you can rollback the deletion
ROLLBACK;
説明: ROLLBACK コマンドは、DELETE ステートメントによって行われた変更を元に戻し、トランザクション中に削除されたレコードを効果的に復元します。
クイズの作成