データの削除

完了

INSERT ステートメントで常に行全体がテーブルに追加されるのと同様に、DELETE ステートメントを使用すると常に行全体が削除されます。

DELETE を使用して特定の行を削除する

DELETE は、WHERE 句の条件によって定義されている、または結合で定義されている行のセットに対して作用します。 DELETE ステートメントの WHERE 句の構造は、SELECT ステートメントの WHERE 句と同じです。

注意

対応する WHERE 句を指定せずに DELETE を使用すると、テーブルからすべての行が削除されることに注意してください。 DELETE ステートメントは注意して使用してください。

次に示すコードは、DELETE ステートメントの基本構文です。

DELETE [FROM] <TableName>
WHERE <search_conditions>;

次の例の DELETE ステートメントを使用すると、指定したテーブルから廃止されたすべての製品が削除されます。 テーブルには discontinued という名前の列があり、取り扱われなくなった製品については、この列に値 1 が設定されています。

DELETE FROM Production.Product
WHERE discontinued = 1;

TRUNCATE TABLE を使用してすべての行を削除する

WHERE 句を指定せずに DELETE を使用すると、テーブルからすべての行が削除されます。 このため、通常、DELETE は、WHERE 句のフィルターを使用して、条件付きで使用されます。 本当にすべての行を削除し、テーブルを空にしたい場合は、TRUNCATE TABLE ステートメントを使用できます。 このステートメントでは、WHERE 句を使用することはできず、常に 1 回の操作ですべての行が削除されます。 次に例を示します。

TRUNCATE TABLE Sales.Sample;

すべての行を削除する場合は、TRUNCATE TABLE の方が DELETE より効率的です。