どうも、irisawaです。
今日のデータベースの授業では、集合関数や特定条件での検索(WHERE句)、列の値に対する条件付け(CASE式)、列のグループ化(GROUP BY句)の実習をやっていきました。
以下、内容となります。
集合関数
集合関数とは、複数のレコードの値をまとめて1つの結果を得たい時に使用します。平均(AVG)・個数(COUNT)・合計(SUM)・最大(MAX)・最小(MIN)などがあります。
※文字列の合計は得れないので、指定できる列名は数値データのみが入っている列でなければなりません。COUNTは別。
【集合関数のSQL構文】
関数名(列名か演算式)
特定条件で検索(WHERE句)
特定条件に基づいて、複数のレコードの中から特定のレコードだけを 取り出したい場合、「WHERE句」を使用します。
【代表的な演算子の種類】
- = 左右の値が等しい場合に、TRUEを返す PHPでいう、「==」の事。
- <> 左右の値が等しくない場合に、TRUEを返す PHPでいう、「!=」の事。
- < 左の値が右の値よりも小さい場合に、TRUEを返す
- > 左の値が右の値よりも大きい場合に、TRUEを返す
- <= 左の値が右の値と等しいかまたは小さい場合に、TRUEを返す
- >= 左の値が右の値と等しいかまたは大きい場合に、TRUEを返す
またWHERE句では、AND(2つの条件を見て、両方の条件が真の場合に、条件が成立)やOR(2つの条件を見て、どちらか一方の条件が真の場合に、条件が成立)を使って複数の条件を指定する事が出来ます。
LIKE演算子
LIKE演算子とは、WHERE句に書く条件に使用し、指定した文字列を含んでいるかどうかを調べる事が出来ます。「%」で文字数指定無し、「_」で任意の一文字をそれぞれ使用出来ます。
case式
列の値に対して条件付けをしたいなと思った場合、CASE式というものを使う事で実現できます。CASE式とは、ある値に対して条件判断を行って、その結果によって値を返します。
【CASE式のSQL構文】
CASE
WHEN 条件 THEN 戻り値
[WHEN 条件 THEN 戻り値...]
[ELSE 戻り値]
END
GROUP BY句
「GROUP BY句」は、ある列の同じ値を1つのグループとしてまとめる場合に使用します。グループ化の為の列の指定は複数行う事も出来ます。また、集合関数も複数指定可能です。
【GROUP BY句を使ったSQL構文】
SELECT
グループ化列名
[、集合関数...]
FROM
テーブル名
GROUP BY
グループ化列名
;
※グループ化を行う場合、SELECT句に許可されるのは、グループ化する列名もしくは集合関数のみ。
今回の授業を受け、抽出条件で欲しいレコードの選択が出来るようになりました。条件指定は一歩間違えれば、全然違う結果になってしまいます。これはPHPにも通じる所があると思うので、条件の指定には十分注意したいです。
今日の授業の中では、LIKE演算子の指定の仕方を変える事で、結果が変わっていくのが面白かったです。この前と打って変わってSQL難しくなってきましたが、何を意味しているのかを理解して覚える様にしていきたいです。

by スタートアップ研修記 » データベース SQLの書き方#5, on 06.30.08 @ 6:00 PM
[...] 今回はまず、「GROUP BY句」を使った演習から始まりました。※前回の内容 [...]