【SQL】DELETE 文の理解と使い方

Oracle

Oracleデータベース歴18年の株信です。

SQLの基本 今回はDELETE文についてです。

DELETE文 とは

テーブルのレコードを削除するコマンドです。

構文

DELETE FROM [テーブル名] WHERE [カラム条件]

例: DELETE FROM t_test WHERE col1 = ‘A’;

使い方

全レコード削除

COL1COL2COL3COL4
A111
B111
B111
B111
DELETE FROM t_test ;  --  t_test はテーブル名です。

実行すると以下のようにすべての行が削除されます。

COL1COL2COL3COL4

全レコード削除(高速)

TRUNCATE TABLE [テーブル名] で実行すると、同じように全レコード削除されます。
ただし注意点としてこのコマンドを自動確定してしまうので慎重に行った方がよいでしょう。

TRUNCATE TABLE t_test; 

指定レコード削除

例えば、t_test というテーブルが以下のような構成
カラム COL1、COL2、COL3、COL4 だった場合

COL1COL2COL3COL4
A111
B111
B111
B111
DELETE FROM t_test WHERE COL1 = 'A';

とすると、以下のような結果になります。
COL1=’A’だった行が削除されているのがわかると思います。

COL1COL2COL3COL4
B111
B111
B111

注意事項

NULLを条件にする場合

COL1COL2COL3COL4
B111
B111
B111
NULL222
DELETE FROM t_test WHERE COL1 IS NULL;

実行すると以下のようにNULLの行が削除されています。

COL1COL2COL3COL4
B111
B111
B111

NULL以外を条件にする場合

COL1COL2COL3COL4
B111
B111
B111
NULL222
DELETE FROM t_test WHERE COL1 IS NOT NULL;

実行すると以下のようにNULL以外の行が削除されています。

COL1COL2COL3COL4
NULL222
タイトルとURLをコピーしました