ホームページ >データベース >mysql チュートリアル >テーブルデータを削除するSQLとは何ですか?

テーブルデータを削除するSQLとは何ですか?

anonymity
anonymityオリジナル
2019-05-09 16:27:0452830ブラウズ

1, SQL の文法を削除します

# 1, Drop Table テーブル名 例: Drop Table DBO.Sys_test
2, Truncate Table テーブル名 例: Truncate Table Dbo. Sys_test truncate と delete の違い

1. ドロップ (テーブルの削除): コンテンツと定義を削除して領域を解放します。簡単に言うとテーブル全体を削除することで、新しいテーブルを追加しない限り、今後データを追加することができなくなります。 テーブルデータを削除するSQLとは何ですか?

ドロップ ステートメントは、テーブル構造が依存する制約とトリガー インデックスを削除します。テーブルに依存するストアド プロシージャ/関数は保持されますが、ステータスは :invalid になります。

2. 切り捨て (テーブル内のデータをクリア): コンテンツを削除し、領域を解放しますが、定義は削除しません (テーブルのデータ構造は保持します)。ドロップとは異なり、テーブルデータをクリアするだけです。

注: truncate では行データを削除できません。削除するには、テーブルをクリアする必要があります。

3. delete (テーブル内のデータを削除): delete ステートメントは、テーブル内の行を削除するために使用されます。 delete ステートメントは、テーブルから 1 行ずつ削除する削除処理を実行します。同時に、行の削除操作はトランザクション レコード

# としてログに保存されるため、ロールバック操作は実行されません。実行することができます。

どこを指定しない切り捨てと削除: データのみを削除しますが、テーブルの構造 (定義) は削除しません

4. テーブルの切り捨ては、テーブル内のすべての行を削除しますが、テーブル構造とその行は削除されます。列、制約、インデックスなどは変更されません。新しい行を識別するために使用されるカウントは、その列のシードにリセットされます。 ID カウント値を保持したい場合は、代わりに削除を使用してください。

テーブル定義とそのデータを削除する場合は、drop table ステートメントを使用してください。

5. 外部キー制約によって参照されるテーブルの場合、truncate table は使用できませんが、where 句のない delete ステートメントを使用する必要があります。 truncate table はログに記録されるため、トリガーをアクティブにすることはできません。

6. 実行速度、一般的に言えば、drop> truncate > delete。

7. 削除ステートメントはデータベース操作言語 (dml) です。この操作はロールバック セグメントに配置され、トランザクションが送信された後にのみ有効になります。対応するトリガーがある場合は、実行中にトリガーされます。

Truncate と Drop はデータベース定義言語 (DDL) です。操作はすぐに有効になります。元のデータはロールバック セグメントに置かれないため、ロールバックできません。この操作はトリガーをトリガーしません。

以上がテーブルデータを削除するSQLとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。