前回はSQLのUPDATEステートメントを使用して、テーブルのデータ(レコード)を更新する方法について紹介しました。
データベースのデータを更新する方法に続いて今回は、テーブルのデータを削除する方法について紹介します。
目次
記事内で使用するサンプルテーブル
本記事では、前々回のINSERTステートメントの実行例と前回のUPDATEステートメントの実行例で使用した「書籍」テーブルを使用します。
テーブル定義
テーブルには、「書籍ID」「書籍名」「ISBN」の3つの列を作成します。
列名 | データ型 | NULLを許容 | 主キー |
---|---|---|---|
書籍ID | int | NO | ○ |
書籍名 | nvarchar(100) | NO | |
ISBN | char(21) | NO | |
備考 | nvarchar(200) | YES |
テーブルを作成するCREATE文(SQL)
テーブルを作成するSQLは次のようになります。
1 2 3 4 5 6 7 |
CREATE TABLE 書籍 ( 書籍ID int NOT NULL PRIMARY KEY, 書籍名 nvarchar(100) NOT NULL, ISBN char(21) NOT NULL, 備考 nvarchar(200) NULL, ); |
テーブルにデータを挿入するINSERT文(SQL)
テーブルに事前にデータ(行)を挿入しておくSQLは次のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
INSERT INTO 書籍 ( 書籍ID, 書籍名, ISBN, 備考 ) VALUES ( 1, 'よくわかる SQL Server 入門', 'ISBN978-4-0000-0000-1', 'データベース関連の入門書' ), ( 2, 'C# コードレシピ集', 'ISBN978-4-0000-0000-2', 'すぐに使えるC#のコード集' ), ( 3, 'JavaScriptの教科書', 'ISBN978-4-0000-0000-3', 'JavaScriptを学ぶことができるテキスト' ); |
テーブルのデータ(レコード)を削除する命令(ステートメント)
テーブルのデータを削除する際は「DELETE」ステートメントを使用します。
DELETEステートメントの構文は次のようになります。
1 2 |
DELETE [FROM] テーブル名 WHERE 削除する行の条件 |
DELETEステートメントでは、まず「DELETE」と記述します。その後にデータを削除するテーブル名を記述しますが、間に「FROM」を記述することもできます。
1 |
DELETE テーブル名 |
と
1 |
DELETE FROM テーブル名 |
のどちらでも同じになります。
テーブル名の後には、WHERE句で削除対象となるレコード(行)を指定するための条件式を記述します。
データ削除SQLの例
以下に「書籍」テーブルのデータ(レコード)を削除するSQLの例を示します。
1 2 3 |
DELETE 書籍 WHERE 書籍ID = 1; |
上記のSQLを実行すると、「書籍ID」IDが「1」のレコードが削除されます。
DELETEステートメントのWHERE句の指定
DELETEステートメントで使用するWHERE句では、削除対象となる行の条件を指定します。
WHERE句で条件を指定しない場合は、テーブルのすべての行が削除の対象となります。
テーブルのすべてのレコードを削除する場合は、DELETEステートメントを使用するよりも高速に処理を行うことができる「TRUNCATE」ステートメントがあります。
TRUNCATEステートメントについては、以下の記事をご覧ください。