<< トップページへ

<< 目次へ

更新日:2013.4.13

条件に合うレコードを抽出する



 データベースの操作(正確にいえばテーブルの操作)において、最も基本的な作業が「特定の条件とマッチするレコードを抽出する」というものです。例えば、性別のカラムについて男性のレコードだけを抽出するとか、売上金額のカラムについて100000(円)以上であるレコードだけを抽出するといったことです。

 試しに以下のデータテーブルから、

といった操作を行ってみましょう。

ID 年齢 グループ 出身地 得点
001 10 A 群馬 10.223
002 20 A 神奈川 20.345
003 20 C 群馬 30.321
004 40 B 東京 10.894
005 30 B 東京 50.009
006 10 C 東京 40.332
007 50 A 埼玉 10.501
008 30 B 神奈川 40.444
009 20 A 埼玉 40.441
010 60 A 東京 20.004
受験者テーブル.csv


■WHERE 基本構文

 特定の条件にマッチするレコードを抽出するためにはWHERE構文を用いる。WHERE以降に抽出条件を記述する。

 
select * from [テーブル名] where [抽出条件];
 


■グループがAであるレコードだけを抽出

 
select * from jyuken where grp='A';


# ーーーーー 【実行例】
mysql> select * from jyuken where grp='A';
+------+------+------+--------+--------+
| id   | age  | grp  | area   | score  |
+------+------+------+--------+--------+
| 001  |   10 | A    | 群馬   | 10.223 |
| 002  |   20 | A    | 神奈川 | 20.345 |
| 007  |   50 | A    | 埼玉   | 10.501 |
| 009  |   20 | A    | 埼玉   | 40.441 |
| 010  |   60 | A    | 東京   | 20.004 |
+------+------+------+--------+--------+
 


■出身地が群馬県もしくは埼玉県であるレコードだけを抽出

 
select * from jyuken where area='群馬' or area='埼玉';


# ーーーーー 【実行例】
mysql> select * from jyuken where area='群馬' or area='埼玉';
+------+------+------+------+--------+
| id   | age  | grp  | area | score  |
+------+------+------+------+--------+
| 001  |   10 | A    | 群馬 | 10.223 |
| 003  |   20 | C    | 群馬 | 30.321 |
| 007  |   50 | A    | 埼玉 | 10.501 |
| 009  |   20 | A    | 埼玉 | 40.441 |
+------+------+------+------+--------+
 


■年齢が50歳以上であるレコードだけを抽出

 
select * from jyuken where age>=50;


# ーーーーー 【実行例】
mysql> select * from jyuken where age >= 50;
+------+------+------+------+--------+
| id   | age  | grp  | area | score  |
+------+------+------+------+--------+
| 007  |   50 | A    | 埼玉 | 10.501 |
| 010  |   60 | A    | 東京 | 20.004 |
+------+------+------+------+--------+
 


■年齢が20以上、50未満でかつ得点が30点以上であるレコードだけを抽出

 
select * from jyuken where (age>=20 and age<50) and score>=30;


# ーーーーー 【実行例】
mysql> select * from jyuken where (age>=20 and age<50) and score>=30;
+------+------+------+--------+--------+
| id   | age  | grp  | area   | score  |
+------+------+------+--------+--------+
| 003  |   20 | C    | 群馬   | 30.321 |
| 005  |   30 | B    | 東京   | 50.009 |
| 008  |   30 | B    | 神奈川 | 40.444 |
| 009  |   20 | A    | 埼玉   | 40.441 |
+------+------+------+--------+--------+