OracleDB

[OracleDB] ”delete”文でデータ削除

2018年7月30日

こんにちは!土門大貴(daikidomon)です。

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;

レコードが選択されませんでした。

 

関連記事

-OracleDB

Copyright© スタートアップIT企業社長のブログ , 2020 All Rights Reserved.