【初学者必見!】SQLの超基礎を徹底解説!テーブルデータ削除編

サムネイル SQL

※この記事にはプロモーションが含まれています。

ふりかえり

筆者
筆者

この記事では、テーブルデータを削除する方法を解説します。

テーブルの作成方法については、以下の記事を参照してください。

A子
A子

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

筆者
筆者

ちなみに、SQLの実行方法を知りたいという方は、

ぜひ!!下記の記事を参考にしてください。

A子
A子

環境構築が不要で、ブラウザで無料で使用できるから、

SQLの練習にはもってこいだよ!

今回のSQLも、Oracle Live SQLで実行していくよ!

筆者
筆者

テーブルにデータを挿入するINSERT文の解説は

下記の記事をご覧ください!

今回は、データを挿入した後に、データを削除していきます。

A子
A子

ぜひ、ご覧くださいませ!

delete文を使ってテーブルデータを削除しよう

筆者
筆者

まずは、基本構文から見ていきましょう!

delete from テーブル名 where 条件;

A子
A子

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_DATE2024-02-01 より前 のすべての申請を削除します。

差戻し(SEND_BACK_DATE が NULL でない)された申請を削除

<テーブルデータ削除のSQL>

delete from 申請管理情報 where SEND_BACK_DATE is not null;

SEND_BACK_DATENULL でない(つまり差戻しされた)データを削除します。

特定の申請内容(APPLICATION_CONTENT)が含まれる申請を削除

<テーブルデータ削除のSQL>

delete from 申請管理情報 where APPLICATION_CONTENT = 'ガソリン代支給';

APPLICATION_CONTENT「ガソリン代支給」 のデータのみを削除します。

すべてのデータを削除

<テーブルデータ削除のSQL>

delete from 申請管理情報;

すべてのデータが削除されるため、通常は実行しないようにしましょう。

特定のデータのみ削除する場合は 必ず where 句を指定 してください。

まとめ

筆者
筆者

テーブルデータ削除について解説しました。

次回もお楽しみに!

この記事を書いた人
たくたく

文系出身・3年目のWeb系エンジニアです。
C#とSQLを得意としています。
同棲生活は2年目に入り、日々仲良く楽しく暮らしています。
プライベートではバイクや車で旅行に行くことが趣味です。
サンリオ好きで、中でもシナモン推しです。
お酒好きとして毎週の晩酌をリラックスタイムにしています。

たくたくをフォローする
SQLエンジニア
シェアする

コメント

タイトルとURLをコピーしました