Webサイトの運営会社で得た技術的な知識を記録していきます。 サーバー情報、Webデザイン、プログラミング、このWebサイトで利用させていただいているBlogger(ブロガー)についても公開していきます。

Oracleのテーブルのデータ削除するSQL(DELETE)

Oracleでテーブル(表)を削除するには、「DELETE FROM ~」を使用します。

データの削除に関する操作は、「DELETE」 「TRUNCATE」があります。
ここでは、「DELETE」について、ご紹介します。

DELETEで削除した場合は、REDOログに記録されていく為、大量のデータを削除する時には時間がかかります。

条件を指定してテーブル(表)のデータを削除する

テーブル(表) に挿入されているデータを条件を指定して削除する方法です。

-- テーブル(表)のデータを条件を指定して削除するSQL
DELETE FROM <テーブル名> WHERE 条件;

実行例1. テーブル(表) "table1"の指定したレコード(行)を削除する

 テーブル(表) "table1"の データをカラム名"col1"の値がA1のレコードを削除します

-- テーブル"table1"のテータ(col1="A1")を削除するSQL
DELETE FROM table1 WHERE col1 = 'A1';


テーブル(表)内の全件を削除する場合

条件を指定せず、テーブル(表)内の全件を削除する方法です。

-- テーブル(表)のデータを全て削除するSQL
DELETE FROM <テーブル名>;

実行例1. テーブル(表) "table1"の データを全件削除する

 テーブル(表) "table1" に挿入されている全てのレコード(全行)を削除します。

-- テーブル"table1"のテータを全件削除するSQL
DELETE FROM table1;



ここでは「DELETE」について紹介しましたが、 全件(全行)を削除する場合は、「TRUNCATE」の方が良いかもしれません。

削除したデータを「やっぱり元に戻したい」という事になった場合、「DELETE」ならばROLLBACKで戻すことが可能です。

 「TRUNCATE」は、ROLLBACKで元に戻すことはできません。
よほどのことがない限り、「DELETE」を使っている方が無難だと思います。

 以上です。

0 件のコメント:

人気記事

ラベル

アーカイブ

ページ

このブログを検索