SQLでのDELETEとDROPの違い

著者: Laura McKinney
作成日: 1 4月 2021
更新日: 5 5月 2024
Anonim
SQL:削除と切り捨てと削除
ビデオ: SQL:削除と切り捨てと削除

コンテンツ


DELETEおよびDROPは、データベースの要素を削除するために使用されるコマンドです。 DELETEコマンドはデータ操作言語コマンドですが、DROPはデータ定義言語コマンドです。 DELETEコマンドとDROPコマンドを区別するポイントは、 削除 テーブルからタプルを削除するために使用され、 ドロップ データベースからスキーマ、テーブル、ドメイン、または制約全体を削除するために使用されます。以下の比較チャートを使用して、SQLでのDELETEコマンドとDROPコマンドの違いについてさらに説明します。

内容:削除対ドロップ

  1. 比較表
  2. 定義
  3. 主な違い
  4. 結論

比較表

比較の根拠削除ドロップ
ベーシックDELETEは、テーブルから一部またはすべてのタプルを削除します。DROPは、スキーマ、テーブル、ドメイン、または制約全体をデータベースから削除できます。
言語DELETEはデータ操作言語コマンドです。DROPはデータ定義言語のコマンドです。
WHERE句は、DELETEコマンドとともに使用できます。DROPコマンドとともに句は使用されません。
ロールバックDELETEによって実行されたアクションはロールバックできます。DROPによって実行されたアクションはロールバックできません。
スペースDELETEを使用してテーブルのすべてのタプルを削除しても、メモリ内のテーブルが占有していたスペースは解放されません。DROPを使用してテーブルを削除すると、メモリからテーブルスペースが解放されます。


DELETEの定義

DELETEは データ操作言語 (DDL)コマンド。削除する場合は、DELETEコマンドを使用します 一部 または すべてのタプル 関係から。もし どこ 節はDELETEコマンドと一緒に使用され、WHERE節の条件を満たすタプルのみを削除します。

DELETEステートメントにWHERE句がない場合、デフォルトではすべてのタプルがリレーションから削除されますが、それらのタプルを含むリレーションはスキーマにまだ存在します。 DELETEコマンドを使用して、リレーション全体、ドメイン、または制約を削除することはできません。

DELETEコマンドの構文は次のとおりです。

DELETE FROM relation_name WHERE条件;

を使用して2つのテーブルをリンクする場合 外部キー 参照されるテーブルからタプルを削除すると、参照テーブルからのタプルも自動的に削除され、 参照整合性.

参照整合性を維持するために、DELETEには2つの動作オプションがあります。 制限 そして カスケード。 RESTRICTは、別のテーブルの参照タプルによって参照されている場合、タプルの削除を拒否します。 CASCADEは、削除されるタプルを参照する参照タプルの削除を許可します。

DROPの定義

DROPは データ定義言語 (DDL)コマンド。 DROPコマンドは、次のようなスキーマの名前付き要素を削除します 関係, ドメイン または 制約、全体を削除することもできます スキーマ DROPコマンドを使用します。


DROPコマンドの構文は次のとおりです。

DROP SCHEMA schema_name RESTRICT;

DROPテーブルtable_name CASCADE;

DROPコマンドには、次の2つの動作オプションがあります。 カスケード そして 制限。 CASCADEを使用してスキーマを削除すると、スキーマ内のすべての関係、ドメイン、制約など、関連するすべての要素が削除されます。

CASCADEを使用してスキーマからリレーション(テーブル)を削除すると、すべての制約、ビュー、および削除されるリレーションを参照する要素も削除されます。

RESTRICTを使用してスキーマをDROPする場合、DROPコマンドが実行されるのは、 スキーマ 残っている。 RESTRICTを使用してテーブルを削除する場合、DROPコマンドは、 残っている。

SQLのDELETEとDROPの主な違い

  1. DELETEコマンドを使用して、テーブルから一部またはすべてのタプルを削除します。一方、DROPコマンドは、データベースからスキーマ、テーブル、ドメイン、または制約を削除するために使用されます。
  2. DELETEはデータ操作言語コマンドであり、DROPはデータ定義言語コマンドです。
  3. DELETEはWHERE句と一緒に使用できますが、DROPはコマンドと一緒には使用されません。
  4. DELETEコマンドによって実行されたアクションはロールバックできますが、DROPコマンドの場合はできません。
  5. DELETEコマンドはテーブルを削除しないため、領域は解放されませんが、DROPはテーブル全体を削除してメモリ領域を解放します。


結論:

DELETEコマンドはテーブル内の行を削除するために使用され、DROPコマンドはテーブル全体を削除するために使用されます。