OracleDatabaseのデータ削除SQL、「delete」文について紹介します。
「delete」文は、「insert」、「update」と同様にDML(Data Manipulation Language )と呼ばれ、
データを操作するSQL文になります。
目次
基本構文:delete ~ from
delete文の基本構文は以下になります。
delete from <テーブル名> where <条件>;
下がサンプルのdelete文になります。
select *
from EMPLOYEE;
EMPNO NAME SALARY
------- --------------- ----------
00001 TARO TANAKA 300000
00002 HANAKO YAMADA 800000
00003 ICHIRO HANAKO 500000
delete from EMPLOYEE
where EMPNO = '00001';
commit;
select *
from EMPLOYEE;
EMPNO NAME SALARY
------- --------------- ----------
00002 HANAKO YAMADA 800000
00003 ICHIRO HANAKO 500000
表内の全データ削除
表内の全データ削除
delete文で全データを削除するのは以下になります。
delete from <表名>;
条件を付けないことで全データを削除することができます。
ただしOracleDB上のデータが物理的に削除されたわけではありませんので、
HWM(ハイウォータマーク)を下げることが出来ない点に注意してください。
下がサンプルのdelete文になります。
select *
from EMPLOYEE;
EMPNO NAME SALARY
------- --------------- ----------
00001 TARO TANAKA 300000
00002 HANAKO YAMADA 800000
00003 ICHIRO HANAKO 500000
delete from EMPLOYEE;
--3行が削除されました。
commit;
--コミットが完了しました。
select *
from SUB_EMPLOYEE;
--レコードが選択されませんでした。
[改訂第4版]SQLポケットリファレンスposted with ヨメレバ
朝井 淳 技術評論社 2017-02-18