データベース SQLの書き方#4

どうも、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難しくなってきましたが、何を意味しているのかを理解して覚える様にしていきたいです。

1 件のコメント so far »

  1. by スタートアップ研修記 » データベース SQLの書き方#5, on 06.30.08 @ 6:00 PM

     

    [...] 今回はまず、「GROUP BY句」を使った演習から始まりました。※前回の内容 [...]

Comment RSS · TrackBack URI

コメントをどうぞ

名前: (Required)

eMail: (Required)

Website:

Comment:

Spam Protection by WP-SpamFree