今回は『Were句』について解説します。
ここまでSQLの基本構文としていくつか解説してきましたが、
次に紹介するUPDATE文の時に必ず必要になる知識です。
ほかにもこのWhere句を使用することで、
複雑なデータの指定なども可能になります。
このWhere文を使いこなすことで、
よりMySQLについての知識が深まりますので、ぜひマスターしてください。
Youtubeチャンネルにさまざまな動画を上げています。
↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓
本ブログはアフィリエイトを用いた広告を掲載しています。
MySQLのWhere句とは?
MySQLのWhere句は、単体で使用するものではありません。
これは重要なことなので必ず理解しておきましょう。
このWhere句は、主に何かのコマンドの後ろに付け足すことで、
前に書いてあるコマンドの手助けをするいわゆるオプションのようなツールです。
たとえば、以前記事にしているSELECT文がありましたね?
このSELECT文は、データテーブルに存在しているデータを
抽出するコマンドでした。
おさらいですが、実際には、こんな感じのコマンドでした。
SELECT * from city;
もしくは、
SELECT Name from city;
こんな感じでコマンドを実行すると、
cityという名前のデータテーブルから、データを抽出することができます。
ただし、この方法だと、
cityというデータテーブルの中から、すべてのデータが抽出されていることになります。
例えば、先ほどの例で行くと、4079行のデータが抽出されます。
ただ、実際問題すべてのデータをいちいち抽出することって、
実運用上少ないですよね?
狙ったデータだけ抽出するほうがタイミングとしては多いと思います。
そんな時に使えるのがWhere句です。
MySQLのWhere句の実際の使い方は?
狙ったデータだけ抽出すると先ほどお伝えしましたが、
どうやって狙ったデータだけ抽出するのか?実例に合わせて解説していきましょう。
例えば、こんなテーブルを用意しました、testというテーブルです。
Insert文で作った時の使いまわしです。
このようにselect文で抽出した場合、3行のデータが抽出されていますね。
たとえば、上の2行に関しては、NULLが入っていて、特に意味のない行だとします。
その場合、一番下の行だけ抽出することになります。
そういった場合、どのようにして一番下の行だけ抽出するかというと、このようになります。
SELECT * FROM test Where int_test = 1;
結果はこの通りです。
解説をすると、
int_testの列で、1と入っている行だけを抜き出しています。
今回は、int_testで抽出の条件にしていますが、
当然、他のdouble_testやvarchar_testを使うことも可能です。
varchar_testを使って抽出するとこうなります。
SELECT * FROM test Where varchar_test = 'hobby';
結果としては、先ほど同様に、
一番下の行だけ抽出できていることがわかります。
複数の条件でWhere句を使う場合。
では、例えば複数の条件で抽出したい場合どうするのか?についてですが、
これは、ANDやORでつなげていくことで解決できます。
例えば、int_testが1でかつ、double_testが0.4の行を抜き出す場合を考えてみましょう。
するこ、このようなコマンドになります。
SELECT * FROM test Where int_test = 1 AND double_test = 0.4;
条件としては、【かつ】なので、ANDを使用しています。
同様に、【または】としたい場合には、ORを使用します。
例えば、int_test が2または、varchar_test がhobbyの行を抽出してみます。
SELECT * FROM test Where int_test = 2 OR varchar_test = 'hobby';
結果はこちら↓↓
ちゃんと一番下の行が抽出されているのがわかりますね。
int_test = 2では該当しなかったのが、varchar_testではhobbyで該当するので、
しっかりと抽出されたという結果です。
MySQLのWhere句の使い道は?
Where句の使い方は何となくわかったと思います。
使い道も何となくわかったと思いますが、メインのコマンドにオプションとして使うイメージです。
また、今回は簡単に=(イコール)を使った抽出を行いましたが、
ほかにも、比較演算子というものがMySQLには標準で用意されています。
例えば、int_testが10より大きいときに抽出する。
なんていう場合は、where int_test > 10
こんな風にして抽出することが可能です。
比較演算子は、Whereと組み合わせることで強力なツールとなります。
この比較演算子についても後ほど記事にする予定ですので、
詳しく知りたい方はそちらをご覧ください。
今回のまとめ。
今回は、While句について解説しました。
While句自体は単体で動作するものではありませんが、
メインのコマンドに付け足すことで複雑な条件を提供することができます。
このWhile句と後ほど紹介する比較演算子を組み合わせると、
さらに複雑な条件を設定することが可能になりますから、
是非マスターしてくださいね。
他にもMySQLについての記事をこちらにまとめています。
基礎から学びたい方はこちらも参照してみてください。
コメント