WHERE句の大切さを知ろう
はじめに
これからSQL文を学んでいきたい、只今絶賛学び中って方は是非ご覧ください。
SQLの文法を解説した本や、パフォーマンス・チューニング・テクニックを解説した書籍などは結構見つかるのですが、SQLを実際に利用する際に注意すべき点を説明した本は意外に少ないのです。
ここでは私がこれまでの経験の中で、SQLの利用に際し特に注意してほしい点を説明します。
WHERE句を大切に
私がSQL文を記述する際に、特に気を付けていることは、ズバリWHERE句です。
このWHERE句、地味なのですが、非常に大切なんです。
例えば、顧客テーブル(KOKYAKU_TBL)に約1000万のデータが存在するとします。
その中から顧客NO(KOKYAKU_NO)が「1」のデータを抽出したい場合は、以下のようなSQL文で抽出することができます。
SELECT *
FROM KOKYAKU_TBL
WHERE KOKYAKU_NO = 1
ところが、顧客NOを指定しない場合、つまりはWHERE句を指定しない場合はどうなるでしょうか。「WHERE KOKYAKU_NO = 1」を削除します。
SELECT *
FROM KOKYAKU_TBL
こちらはエラーとはならずに、約1000万のデータが全抽出されることになります。
抽出するのに時間は掛かるし、抽出後の処理にも影響を与えかねませんね。
普通なら絶対にやってはいけない
ここで普通なら絶対にやってはいけないSQL文を見てみましょう。
ご覧の通りWHERE句の指定がありません。
これを実行するとどうなるのか。
エラーにはならず、全データが削除されます。
削除されたデータはバックアップで戻すしか方法はありません。
(想像するだけでおぞましいですよね)
DELETE
FROM KOKYAKU_TBL
ここで「普通なら絶対にやってはいけない」としているのは、時と場合によるからですね。
例えば客先に出向き、システムを導入した際にテストが必要になります。
テストした後のゴミデータ等は全削除しなければいけません。
そうゆう場合にこのSQL文を使用する場合もあります。
まとめ
いかがだったでしょうか。
WHERE句の大切さについて説明してきましたが、実際には本物のデータの動きや動作を確認してみないとピンとこないかもしれませんね。どんどん触っていきましょう!
ありがとうございました。(*◕ฺω◕ฺ)ノ
Discussion