DELETEは表に存在する行を削除するSQL文である。削除対象が複数ある場合は、それらのすべてを削除する。削除対象が無い場合は、何も削除せず、エラーにもならない。DELETE文はDMLの一種であり、コミットすることで削除が確定される。更新対象がロックされている場合は、ロックが解除されるまで待つ。

目次

DELETEの構文

自分のスキーマ内にある表からすべての行を削除する。

DELETE FROM table

他のスキーマ内にある表からすべての行を削除する。

DELETE FROM schema.table

自分のスキーマ内にある表から、条件に合致する行を削除する。

DELETE FROM table WHERE condition
table
削除対象となるテーブルを指定する。
schema
削除対象となるテーブルが存在するスキーマを指定する。
condition

削除する行の条件を指定する。条件の指定を省略した場合は、すべての行が削除される。条件に当てはまる行が無かった場合は、何も削除されず、エラーにもならない。

表からすべての行を全件削除する

表からすべての行を削除するには、条件(WHERE句)を指定せずにDELETE文を実行する。DELETEはDML文なので、ロールバックすることもできる。

すべての行を削除するにはTRUNCATE TABLE文を使用することもできる。TRUNCATE TABLEは高速に行を削除できるが、DML文なのでロールバックできない。

DELETEに必要な権限

自分のスキーマ内にある表の行を削除するには、とくに権限は必要ない。

削除する表が自分のスキーマ内にない場合は、削除する表に対するDELETEオブジェクト権限が必要である。

DELETEの使用例

SQL> delete from EMP where EMPNO = '7369';

1行が削除されました。

SQL>

関連SQL

スポンサーリンク