SQLでのDELETEとDROPの違い
コンテンツ
DELETEおよびDROPは、データベースの要素を削除するために使用されるコマンドです。 DELETEコマンドはデータ操作言語コマンドですが、DROPはデータ定義言語コマンドです。 DELETEコマンドとDROPコマンドを区別するポイントは、 削除 テーブルからタプルを削除するために使用され、 ドロップ データベースからスキーマ、テーブル、ドメイン、または制約全体を削除するために使用されます。以下の比較チャートを使用して、SQLでのDELETEコマンドとDROPコマンドの違いについてさらに説明します。
内容:削除対ドロップ
- 比較表
- 定義
- 主な違い
- 結論
比較表
比較の根拠 | 削除 | ドロップ |
---|---|---|
ベーシック | 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の主な違い
- DELETEコマンドを使用して、テーブルから一部またはすべてのタプルを削除します。一方、DROPコマンドは、データベースからスキーマ、テーブル、ドメイン、または制約を削除するために使用されます。
- DELETEはデータ操作言語コマンドであり、DROPはデータ定義言語コマンドです。
- DELETEはWHERE句と一緒に使用できますが、DROPはコマンドと一緒には使用されません。
- DELETEコマンドによって実行されたアクションはロールバックできますが、DROPコマンドの場合はできません。
- DELETEコマンドはテーブルを削除しないため、領域は解放されませんが、DROPはテーブル全体を削除してメモリ領域を解放します。
結論:
DELETEコマンドはテーブル内の行を削除するために使用され、DROPコマンドはテーブル全体を削除するために使用されます。