SQL Server
 Computer >> コンピューター >  >> プログラミング >> SQL Server

SQL ServerのDELETE文の使い方!基本構文から実践例まで徹底解説

SQL Server(Transact-SQL)におけるDELETE文は、テーブルから1件以上のレコードを削除するために使用されるステートメントです。

SQL ServerにおけるDELETE文の基本構文

DELETE文のシンプルな構文は以下のとおりです。

DELETE FROM テーブル名
[WHERE 条件];

また、完全な構文は以下のようになります。

DELETE [TOP (先頭行数) [PERCENT]]
FROM テーブル名
[WHERE 条件];

各パラメータの説明

テーブル名

レコードを削除したい対象となるテーブルを指定します。

WHERE 条件

省略可能です。削除対象となるレコードが満たすべき条件を指定します。

TOP (先頭行数)

省略可能です。指定した場合、結果セットの先頭から指定した行数分だけが削除対象になります。たとえば、TOP(10)と指定すると、結果セットの最初の10行が削除されます。

PERCENT

省略可能です。指定した場合、結果セット全体に対する割合(パーセンテージ)に基づいて先頭の行が削除されます。たとえば、TOP(10) PERCENTと指定すると、結果セットの上位10%に該当する行が削除されます。

注意点

DELETE文では、フィールド(列)を列挙する必要はありません。これは、テーブル内の行全体を削除するためです。

DELETE文の使用例

例1:条件を1つ指定する場合

DELETE FROM nhanvien
WHERE ten = 'Sarah';

このコマンドは、従業員名が「Sarah」であるすべてのレコードをテーブルから削除します。

削除される件数を事前に確認したい場合は、DELETE文を実行する前にSELECT文を実行しておきましょう。

SELECT count(*)
FROM nhanvien
WHERE ten = 'Sarah';

例2:条件を2つ指定する場合

DELETE FROM nhanvien
WHERE ho = 'Johnson'
AND nhanvien_id >= 80;

このコマンドは、姓が「Johnson」であり、かつnhanvien_idが80以上であるすべてのレコードを削除します。

削除される行数を確認するには、DELETE文を実行する前に以下のSELECT文を実行します。

SELECT count(*)
FROM nhanvien
WHERE ho = 'Johnson'
AND nhanvien_id >= 80;

例3:TOPキーワードを使用する場合

DELETE TOP(3)
FROM nhanvien
WHERE ho = 'Johnson';

このコマンドは、姓が「Johnson」であるレコードのうち、先頭の3件のみを削除します。同じ条件に該当する他のレコードがテーブル内に残っていても、それらはこのDELETE文の影響を受けません。

例4:EXISTS句を使用する場合

DELETE文では、より複雑な削除処理を行うこともできます。たとえば、別のテーブルの値に基づいてレコードを削除するケースなどです。DELETE文のFROM句では複数のテーブルを直接指定できないため、そのような場合はEXISTS句を次のように活用します。

DELETE FROM nhanvien
WHERE EXISTS
(SELECT *
FROM danhba
WHERE danhba.danhba_id = nhanvien.nhanvien_id
AND danhba.danhba_id < 100);

このDELETE文は、danhba(連絡先)テーブル内にdanhba_idが100未満であり、かつそのdanhba_idがnhanvien_idと一致するレコードが存在する場合に、該当するすべてのレコードを削除します。

削除される行数を事前に把握したい場合は、削除を実行する前に以下のSELECT文を実行してください。

SELECT count(*)
FROM nhanvien
WHERE EXISTS
(SELECT *
FROM danhba
WHERE danhba.danhba_id = nhanvien.nhanvien_id
AND danhba.danhba_id < 100);
  1. SQL ServerのPIVOT句とは?クロス集計で行を列に変換する方法を実例付きで解説

    SQL Server(Transact-SQL)では、PIVOT句を使用することで、クロス集計(ピボットテーブル)を作成できます。PIVOT句は、テーブル内の行データを列に変換し、集計結果を見やすい形式で表示するための強力な機能です。 下図は、合計値を計算し、行データを列に変換して表示する例です。 PIVOT句の基本構文 SELECT cot_dautien AS bidanh_cot_dautien, [giatri_chuyen1], [giatri_chuyen2], … [giatri_chuyen_n] FROM ( SELECT bang_nguon.cot1

  2. SQL ServerのSELECT文の使い方を徹底解説!基本構文と実践例まとめ

    このチュートリアルでは、SQL Server(T-SQL)におけるSELECT文の使い方を、構文と具体的なサンプルコードとともにわかりやすく解説します。 SELECTは、SQL Serverデータベース内の1つまたは複数のテーブルからデータを取得するために使用される、最も基本的かつ重要なコマンドです。 SELECT文の基本構文 最もシンプルな形式では、SELECT文の構文は以下の通りです。 SELECT 式 FROM テーブル [WHERE 条件]; 一方、すべての機能を含んだ完全な形式のSELECT文は次のように記述します。 SELECT [ALL | DISTINCT] [TOP (先頭