Database OracleDB インフラ

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

2018年7月30日

こんにちは!シミダイ(@shimidai2100)です。

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;

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

 

関連記事

-Database, OracleDB, インフラ

Copyright© shimidai2100 , 2020 All Rights Reserved.