テーブルのデータ(レコード)を削除する DELETE [SQLServer]

SQL Server ロゴ

前回はSQLのUPDATEステートメントを使用して、テーブルのデータ(レコード)を更新する方法について紹介しました。

データベースのデータを更新する方法に続いて今回は、テーブルのデータを削除する方法について紹介します。

記事内で使用するサンプルテーブル

本記事では、前々回のINSERTステートメントの実行例と前回のUPDATEステートメントの実行例で使用した「書籍」テーブルを使用します。

テーブル定義

テーブルには、「書籍ID」「書籍名」「ISBN」の3つの列を作成します。

列名 データ型 NULLを許容 主キー
書籍ID int NO
書籍名 nvarchar(100) NO
ISBN char(21) NO
備考 nvarchar(200) YES

テーブルを作成するCREATE文(SQL)

テーブルを作成するSQLは次のようになります。

テーブルにデータを挿入するINSERT文(SQL)

テーブルに事前にデータ(行)を挿入しておくSQLは次のようになります。

テーブルのデータ(レコード)を削除する命令(ステートメント)

テーブルのデータを削除する際は「DELETE」ステートメントを使用します。

DELETEステートメントの構文は次のようになります。

DELETEステートメントでは、まず「DELETE」と記述します。その後にデータを削除するテーブル名を記述しますが、間に「FROM」を記述することもできます。

のどちらでも同じになります。

テーブル名の後には、WHERE句で削除対象となるレコード(行)を指定するための条件式を記述します。

データ削除SQLの例

以下に「書籍」テーブルのデータ(レコード)を削除するSQLの例を示します。

上記のSQLを実行すると、「書籍ID」IDが「1」のレコードが削除されます。

DELETEステートメントのWHERE句の指定

DELETEステートメントで使用するWHERE句では、削除対象となる行の条件を指定します。
WHERE句で条件を指定しない場合は、テーブルのすべての行が削除の対象となります。

テーブルのすべてのレコードを削除する場合は、DELETEステートメントを使用するよりも高速に処理を行うことができる「TRUNCATE」ステートメントがあります。

TRUNCATEステートメントについては、以下の記事をご覧ください。

データベースのテーブルのレコードを一括で削除(DELETE)するTRUNCATE
データベースのテーブルの行(レコード)は、DELETE文を使って削除することができます。 DELETE テーブル名 ...