プログラ生活

プログラム初学者のためのポイントを書いていこうと思います。たまに脇道それた記事もありますが、息抜きだとおもって気長にお付き合いください。

【SQL Server(連載)】DELETE文 -14-

www.pon-x.jp

前回の続き

今回から、レコードの削除を行う、DELETE文を紹介します。

DELETE

ここまで、SELECT文やUPDATE文をやってきましたが、これらの内容が抑えられていればそんなに難しいものではありません。

DELETE文はこんな感じに書きます。

DELETE FROM [テーブル名]

これだけで、テーブル内のデータを全削除できます。
レコード単位に削除するので、カラム名は関係ないため指定しません。
しかし、削除したいデータというのは、常に条件指定があるものです。

WHERE句の利用

WHERE句を用いると、レコードを抽出して削除することができます。

例えば、Person.Person_CopyテーブルのPersonTypeがEMのレコードだけ削除してみます。

DELETE Person.Person_Copy
WHERE PersonType = 'EM'

結果はこんな感じです。
f:id:hanabusa-snow:20201129201556p:plain
273件のみ削除できました。

JOINの活用

他のテーブルと結合して、そのカラムのデータによってレコードを抽出して削除することもできます。
ここでは、Person.Person_CopyとPerson.PersonPhoneを内部結合してPhoneNumberの1桁目が「1」のレコードを削除してみます。

こんなかんじでできます。

DELETE PPC
FROM Person.Person_Copy PPC
    INNER JOIN Person.PersonPhone PPP
        ON PPC.BusinessEntityID = PPP.BusinessEntityID
WHERE PhoneNumber LIKE '1%'

UPDATEで結合したときと同じ書き方ですよね。






以上今回はここまで