Oracle のテーブル削除ステートメントは [DELETE (データ テーブル内のレコードを削除するステートメント) DELETE FROM テーブル名 WHERE 条件;] です。大きなテーブル内のすべてのレコードを削除するには、ステートメント [TRUNCATE TABLE table] を使用できます。名前; 】。
#oracle delete table ステートメント
テーブル (レコードと構造) の言語名を削除
delete ———— truncate ————drop
DELETE (删除数据表里记录的语句)
DELETE FROM表名 WHERE 条件;
ログイン後にコピー
注: レコードを削除しても、ORACLE で占有されていたデータ ブロックのテーブル スペースは解放されません。削除されたデータ ブロックが未使用としてマークされるだけです。
If大きなテーブル内のすべてのレコードを実際に削除したい場合は、占有されているデータ ブロックのテーブル スペースを解放できる TRUNCATE コマンドを使用できます。
TRUNCATE TABLE 表名;
ログイン後にコピー
この操作はロールバックできません。
同じ点
切り捨て、where 句なしの削除、およびドロップはテーブル内のデータを削除します
注: ここでいう削除とは、 where 句のない delete ステートメント
相違点:
1. 切り捨てと削除はデータのみを削除し、テーブルの構造 (定義) は削除しません
drop ステートメントは、テーブル構造が依存する制約、トリガー、およびインデックスを削除します。テーブルに依存するストアド プロシージャ/関数は残りますが、無効になります。
2. delete ステートメントは次のとおりです。 dml。この操作はロールバック セグメントに配置され、トランザクションの送信後に有効になります。対応するトリガーがある場合は、実行中にトリガーされます。
truncate、drop は ddl、操作には時間がかかります即座に影響します。元のデータはロールバック セグメントに配置されず、ロールバックできません。この操作はトリガーをトリガーしません。
3. 削除ステートメントは、テーブルが占有するエクステントには影響しません。最高水準点 (ハイ ウォーターマーク) は元の位置に残ります。
明らかに、drop ステートメントはテーブルによって占められていたすべてのスペースを解放します。
truncate ステートメントは解放します。デフォルトでは、スペースが minextents エクステントになります。再利用ストレージが使用されない限り、truncate はハイ ウォーターラインをリセットします (最初に戻ります)。
4. 速度、一般的に言えば:
drop>; truncate >; delete
5. セキュリティ: ドロップとトランケートを使用するときは、特にバックアップがない場合は注意してください。そうしないと、泣くほど手遅れになります。
使用中、一部のデータ行を削除したい場合は、delete を使用してください。where 句に注意してください。ロールバック セグメントは十分な大きさである必要があります。
- 次の場合は、テーブルを削除します (もちろん、drop を使用します)
- テーブルを保持したい場合は、「すべてのデータが削除されます」を使用します。トランザクションと関係がない場合は、単に「truncate」を使用します。トランザクションに関連している場合、またはトリガーをトリガーしたい場合は、delete を使用します。
- テーブルをデフラグする場合は、ストレージの再利用に続いて Truncate を使用し、再インポートします。 /insert the data
oracle のテーブルの列ステートメントを削除する
alter table 表名 drop colum 列名
ログイン後にコピー
関連学習 推奨: oracle データベース学習チュートリアル
以上がOracle のテーブル削除ステートメントとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。