【SELECT文について(WHERE句/基本形)】



このHPはSELECT文(WHERE句/基本形)についてまとめたものです。



1-1 WHERE句による行の選択



SELECT文を使って特定の行を検索するには、「WHERE句」で指定する。WHEREの後に条件式を指定することにより、「ある列の値がこの文字列と等しい」、「ある列の値がこの数値以上」等の条件にマッチした行だけを選択することができる。




※WHERE句には、条件式が含まれる。


■条件式


条件式「syain_bloodtype='O'」であるという条件式は、「syain_bloodtype」列の値が「O」である場合に「真」となる条件式になる。 「=」演算子では、左辺と右辺の式項目を比較し、両者が同じ値であれば「真(TRUE)」を返す。同じでなければ「偽(FALSE)」を返す。

「syain_bloodtype='O'」の条件式であれば、「syain_bloodtype」列の値が「O」である行については「真」となり、「syain_bloodtype」列の値が「A」、「B」、「AB」の行については「偽」となる。

条件式の 評価結果が「真」となった行だけが、結果として戻される。

それでは、以下の社員情報を扱う「syainzyoho」というテーブルで、「syain_bloodtype」が「O」であるという条件式を設定して、「syain_bloodtype」が「O」の社員だけを抜き出してみる。






今回は「=(イコール)」という条件式を使用する。これは「等しい」という意味の条件。条件式の部分に、「syain_bloodtype='O'」と書く。

「syain_bloodtypeが、'O'という文字列と同じ文字列の場合に」という条件。また、「O」は文字列なので、「'」でくくる。また、「syain_id」、「syain_mei」、「syain_bloodtype」の3つの列を出力させる



《「syainzyoho」テーブルから「syain_bloodtype」が「O」のレコードだけを抜き出し、「syain_id」、「syain_mei」、「syain_bloodtype」列だけを表示させるSQL文》


【SELECT syain_id,syain_mei,syain_bloodtype FROM syainzyoho WHERE syain_bloodtype='O';】

実行結果は以下の様になる。





WHERE句にある「syain_bloodtype='O'」が検索条件を表す条件式。
「=」は両辺が等しいかどうかを比較するための記号で、この条件では、
「syain_bloodtype」の列の値と「'O'」を比較し、等しいかどうかを調べる。
比較は、「syainzyoho」のテーブルの全ての行に行われる。

さらに選択された行から、SELECT句で指定されている「syain_id」列と、「syain_mei」列、「syain_bloodtype」列を出力すると実行結果になる。
つまり、WHERE句で指定した条件に合う行を選択し、その後にSELECT句で指定された列を出力する。





なお、SQLでは句の記述順が決まっており、勝手に変えることは出来ない。WHERE句は必ずFROM句の直後に書く。



■演算子



この「syain_bloodtype='O'」の「=」を演算子という。
また、「syain_bloodtype」や「'O'」など、演算子の対象となる値を「オペランド」という。




演算子はデータを処理するときの記号。大きく3種類に分けられる。