はじめに
データベースを管理できるシステム「MySQL」を扱うときに必要な「WHERE」に焦点をあててみました。WHEREで参照する場所を指定しないと、全てのデータを消しかねないので注意しましょう。
今回は、データベースの作成方法は省略し、データベース内のテーブルを更新するときを例に取ってみます。テーブルは下記のものを利用します。
+-------+----------+ | name | password | +-------+----------+ | user1 | user1 | | user2 | user2 | | user3 | user3 | | user4 | user4 | +-------+----------+
WHEREを使ってテーブル内のレコードを更新する
まずは、テーブル内のレコード(行)を、WHEREで場所を指定し、「user4」のパスワードを「password4」にしてみます。
UPDATE user_info SET password = "password4" WHERE name ="user4";
実行結果は下記のようになります。
+-------+-----------+ | name | password | +-------+-----------+ | user1 | user1 | | user2 | user2 | | user3 | user3 | | user4 | password4 | +-------+-----------+
4行目の「user4」というユーザーのパスワードが変更されていますね。
WHEREを使わないで更新してみる
では、WHEREを使わないとデータはどうなるのでしょうか。実際にやってみます。コードは下記の通りです。
UPDATE user_info SET password = "password3";
実行結果がこちら。
+-------+-----------+ | name | password | +-------+-----------+ | user1 | password3 | | user2 | password3 | | user3 | password3 | | user4 | password3 | +-------+-----------+
パスワードがすべて「password3」となっていしまいました・・・。
このように、WHEREでどのレコードを更新するのかを指定しないとすべてのデータが変更されてしまいます。
データベースを更新する時は「WHERE」で更新箇所を指定しよう
WHEREを使わないと、すべてのデータが更新されてしまい、大事なデータが一瞬で書き換わってしまうことがわかりました。
ユーザーのログイン情報や顧客情報が保管されているのがデータベースです。データベースの更新の際には、「WHERE」があるかどうかをチェックし、慎重に更新作業をしましょう。