●2_04_02-検索処理(where句)(select)
where句を使った検索処理です。
あるカラムから、ある値に一致したデータを検索せよ
SQLの構文は以下になります。
| SELECT カラム名(1)
, カラム名(2), ・・・・ FROM テーブル名 WHERE
カラム名 = '値' |
「date_id_c」で「2007-01-01 00:00:01」に一致するデータを検索します。
SELECT
date_id_c,
title
FROM
new_jouhou_t
WHERE
date_id_c = '2007-01-01 00:00:01' |
下記のように検索されます。
複数のカラムにおいて検索する場合は下記の構文になります。and検索とか言われているものですね。
| SELECT カラム名(1)
, カラム名(2), ・・・・ FROM テーブル名 WHERE カラム名(1) =
'値' and カラム名カラム名(2) = '値' |
2つのカラムから値を指定するのは現実的にあまり意味が無いですが、「date_id_c」が「2007-01-01
00:00:01」、「title」が「洗濯機Aが入荷しました」に一致するデータを検索します。
SELECT
date_id_c,
title
FROM
new_jouhou_t
WHERE
date_id_c = '2007-01-01 00:00:01' AND
title = '洗濯機Aが入荷しました' |
先ほどと同様な結果が検索されます。 あるカラムから、ある値を含んだデータを検索せよ
今度は曖昧検索です。
SQLの構文は以下になります。
| SELECT カラム名(1)
, カラム名(2), ・・・・ FROM テーブル名 WHERE
カラム名 like '%値%' |
「title」カラムで「洗濯機」の文字列を含んでいるデータを検索します。
SELECT
date_id_c,
title
FROM
new_jouhou_t
WHERE
title like '%洗濯機%' |
下記の結果が検索されます。

今度はor検索をしてみます。
「title」カラムに「洗濯機」か「テレビ」の文字列を含んだデータを検索します。「and」ではなく「or」になります。
SELECT
date_id_c,
title
FROM
new_jouhou_t
WHERE
title like '%洗濯機%' OR
title like '%テレビ%' |
下記が検索されます。
「%文字列%」 では 文字列の左側、右側にどんな文字が来ても、あるいは何も無くても曖昧検索ができます。
もし文字数を指定する場合は「_」 アンダーバーを使用します。
下記の検索では「洗濯機」と「が入荷しました」の間にどんな1文字が来ても検索するという意味になります。
SELECT
date_id_c,
title
FROM
new_jouhou_t
WHERE
title like '洗濯機_が入荷しました' |
検索結果は以下になります。
あるカラムから、ある値を含んでいないデータを検索せよ
「title」カラムで「洗濯機」の文字列を含んでいないデータを検索します。「like」の前に「not」が来ます。
SELECT
date_id_c,
title
FROM
new_jouhou_t
WHERE
title not like '%洗濯機%' |
以下が検索されます。
あるカラムから、ある値よりも大きいデータを検索せよ
「date_id_c」で「2007-04-01 00:00:13」よりも大きなデータを検索します。
つまり「2007-04-01 00:00:13」よりも新しいデータですね。
SELECT
date_id_c,
title
FROM
new_jouhou_t
WHERE
date_id_c > '2007-04-01 00:00:13' |
以下が検索されます。
演算子は下記のものが利用できます。
< 小なり
> 大なり
<= 等しいかそれ以下
>= 等しいかそれ以上
= 等しい
<> or != 等しくない
+ 和
- 差
* 積
/ 商
演算子に関しての詳細な説明は以下の正規マニュアルを参照して下さい。
PostgreSQL 8.2.0マニュアル
http://websys-memo.biz/postgres8.2.0/functions-comparison.html
http://websys-memo.biz/postgres8.2.0/functions-math.html
※ 現時点で理解できるところだけを読んで下さい。分からない言葉があっても気にする必要はありません。
戻る
|