ふりかえり

この記事では、テーブルデータを削除する方法を解説します。
テーブルの作成方法については、以下の記事を参照してください。

今回使用するテーブルは、以前作成したテーブルと同じよ!!

ちなみに、SQLの実行方法を知りたいという方は、
ぜひ!!下記の記事を参考にしてください。

環境構築が不要で、ブラウザで無料で使用できるから、
SQLの練習にはもってこいだよ!
今回のSQLも、Oracle Live SQLで実行していくよ!

テーブルにデータを挿入するINSERT文の解説は
下記の記事をご覧ください!
今回は、データを挿入した後に、データを削除していきます。

ぜひ、ご覧くださいませ!
delete文を使ってテーブルデータを削除しよう

まずは、基本構文から見ていきましょう!
delete from テーブル名 where 条件;

delete,from,whereだね。

はい、そうです!
delete文は、データベースのテーブルから特定のデータを削除するための SQL コマンドになります。
delete from テーブル名:指定したテーブルのデータを削除します。
where 条件:削除するデータを指定する条件です。(省略すると全削除になるので注意!!)

実際に、SQLを使用して確認していきましょう。
テーブルの作成に関しては以下を使用します。
<テーブル作成のSQL>
-- 申請管理情報テーブルの作成
create table 申請管理情報 (
STAFF_NO varchar2(10) not null, -- 職員番号 (Staff Number)
APPLI_NO varchar2(10) not null, -- 申請番号 (Application Number)
APPLI_DATE date, -- 申請年月日 (Application Date)
APPROVAL_DATE date, -- 承認日 (Approval Date)
SEND_BACK_DATE date, -- 差戻年月日 (Send Back Date)
APPLICATION_CONTENT varchar2(50), -- 申請内容 (Application Content)
constraint PK_申請管理情報 primary key (STAFF_NO, APPLI_NO)
);

SQLを実行して、テーブルが作成されたことが確認できましたら、
以下のSQLを実行して、データを挿入していきます。
<テーブルデータ挿入のSQL>
insert into 申請管理情報 (STAFF_NO, APPLI_NO, APPLI_DATE, APPROVAL_DATE, SEND_BACK_DATE, APPLICATION_CONTENT)
values ('1001', 'A001', to_date('2024-02-01', 'YYYY-MM-DD'), to_date('2024-02-05', 'YYYY-MM-DD'), NULL, 'ガソリン代支給');
<テーブルデータが挿入されているかを確認するSQL>
select * from 申請管理情報;

delete文を使用して申請内容のデータを削除してみよう
指定した職員番号の申請を削除
<テーブルデータ削除のSQL>
delete from 申請管理情報 where STAFF_NO = '1001';
STAFF_NO = '1001' のすべての申請情報が削除されます。
where 句を指定しないと、すべてのデータが削除されるので注意しましょう。
申請番号を指定して特定の申請を削除
<テーブルデータ削除のSQL>
delete from 申請管理情報 where STAFF_NO = '1001' and APPLI_NO = 'A001';
STAFF_NO = '1001' かつ APPLI_NO = 'A001' に該当する 1件の申請情報 だけを削除します。
承認日が一定の日付より古い申請を削除
<テーブルデータ削除のSQL>
delete from 申請管理情報 where APPROVAL_DATE < to_date('2024-02-01', 'YYYY-MM-DD');
APPROVAL_DATE が 2024-02-01 より前 のすべての申請を削除します。
差戻し(SEND_BACK_DATE が NULL でない)された申請を削除
<テーブルデータ削除のSQL>
delete from 申請管理情報 where SEND_BACK_DATE is not null;
SEND_BACK_DATE が NULL でない(つまり差戻しされた)データを削除します。
特定の申請内容(APPLICATION_CONTENT)が含まれる申請を削除
<テーブルデータ削除のSQL>
delete from 申請管理情報 where APPLICATION_CONTENT = 'ガソリン代支給';
APPLICATION_CONTENT が 「ガソリン代支給」 のデータのみを削除します。
すべてのデータを削除
<テーブルデータ削除のSQL>
delete from 申請管理情報;
すべてのデータが削除されるため、通常は実行しないようにしましょう。
特定のデータのみ削除する場合は 必ず where 句を指定 してください。
まとめ

テーブルデータ削除について解説しました。
次回もお楽しみに!






コメント