初めに
こんにちはiwanagaです。
最近金木犀の香りが各地でしていてとても良い匂いです。個人的に一番好きな花なのでテンションが上がります。
さて、全く脈絡のない事を話しましたが今回も前回に引き続きSQLの学習をしていきたいと思います。今回はDELETE文を学んでいきたいと思います。
DELETE文
今回やるDELETE文は文字通りデータを削除する際に使う命令文です。DELETE文を使用する際に気をつけなければいけない注意点などはありますが、内容自体はそこまで難しいものではないので説明させていただきます。
まず今回のDELETE文を紹介するにあたって必要なテーブルを下記に記載させていただきます。
テーブル名:group
ID | first_name | last_name | team | salary| |
---|---|---|---|---|
1 | taro | yamada | IT | 200000 |
2 | jiro | suzuki | food | 220000 |
3 | sabro | kitano | book | 320000 |
4 | hanako | iwai | IT | 110000 |
5 | matuko | dx | food | 250000 |
6 | yuta | abe | IT | 540 |
基礎
まずはDELETE文の基本構造です。
DELETE FROM table_name
WHERE condition;
・table_name: レコードを削除するテーブルの名前。
・condition: 削除する行を指定する条件。
これを上記のテーブルに合わせた内容にすると
DELETE FROM group
WHERE last_name = 'abe';
すると下記の様な結果になります。
ID | first_name | last_name | team | salary| |
---|---|---|---|---|
1 | taro | yamada | IT | 200000 |
2 | jiro | suzuki | food | 220000 |
3 | sabro | kitano | book | 320000 |
4 | hanako | iwai | IT | 110000 |
5 | matuko | dx | food | 250000 |
見ての通りこのDELETE文により"last_name" が "abe" である行が削除されます。
応用
今度は特定の条件を記入して複数のDELETEをします。
例:給料が11万以下の従業員を削除する場合
DELETE FROM employees
WHERE department = 'IT' AND salary < 110000;
すると下記の様な結果になります。
ID | first_name | last_name | team | salary| |
---|---|---|---|---|
1 | taro | yamada | IT | 200000 |
2 | jiro | suzuki | food | 220000 |
3 | sabro | kitano | book | 320000 |
5 | matuko | dx | food | 250000 |
条件を使用することで複数を選択できるので効率がいいですね。
注意点
個人的にDELETE文は特段難しいものではありませんがミスをした際に一番被害がでかい命令文だと考えています。なので注意点を幾つか記載させていただきます。
※UPDATE文と多少被るところもありますがよろしくお願いいたします。
・条件の慎重な選択
誤った条件を指定すると、誤ってデータを削除する可能性があるため、条件の選択に慎重さが必要です。
・トランザクションの使用
DELETE文を実行する前に、トランザクションを開始して変更を確認することをお勧めします。トランザクションを使用すると、変更を一括してコミットまたはロールバックできます。誤ってデータを削除した場合に、変更をロールバックしてデータを復元できます。最悪これだけでも注意してもらえますと幸いです。
・バックアップの取得
重要なデータを削除する前に、データベースのバックアップを定期的に取得し、必要に応じてバックアップからデータを復元できるようにしておくと安全です。
・制約の考慮
データベース内の制約(外部キー制約、一意性制約など)に注意してください。DELETE文が制約に違反する可能性がある場合、そのまま実行することはできない場合があります。
・影響範囲の確認
DELETE文の実行前に、削除される行の影響範囲を確認しましょう。誤って多くの行を削除することを避けるために、影響を評価しましょう。
・権限とセキュリティ
DELETE文を実行するために必要な権限を確認し、不正なアクセスを防ぐためにセキュリティ対策を実施しましょう。
・ログの監視
DELETE文の実行に関するログを監視し、誤ってデータを削除した場合やセキュリティ上の問題が発生した場合に備えることが重要です。
最後に
今回もご覧いただきありがとうございました!
正直DELETE文は文の内容を覚えるより注意点を覚えた方がいいものですので、皆様扱いはご慎重にご利用くださいませ。
エンジニアファーストの会社 株式会社CRE-CO iwanaga