12月 012012
 

SELECT文の基本

SELECT文はSELECT句とFROM句が必須の句となります。

たとえば、hogetableというテーブルの全データ(全列全行)を取り出すには以下のようにします。

SELECT * FROM hogetable

この例の書式は以下です。

SELECT <抽出対象の列>[,<対象の列名>...] FROM <対象のテーブル名>

上記の例の”*(アスタリスク)”は”全部の列”を意味します。
なので、この場合すべての列が抽出されます。

今回は以下のテーブルを例に説明します。

mysql> SHOW fields FROM member;
+---------+----------------------+------+-----+---------+----------------+
| Field   | Type                 | Null | Key | Default | Extra          |
+---------+----------------------+------+-----+---------+----------------+
| id      | int(10) unsigned     | NO   | PRI | NULL    | auto_increment |
| name    | varchar(100)         | YES  |     | NULL    |                |
| age     | smallint(5) unsigned | YES  |     | NULL    |                |
| weight  | smallint(5) unsigned | YES  |     | NULL    |                |
| address | varchar(50)          | YES  |     | NULL    |                |
+---------+----------------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

MySQLのテーブルの全データを抽出する

select句とfrom句だけを使い、select句に’*’(アスタリスク)、from句にテーブル名の’member’を指定します

 select * from member;

mysql> select * from member;
+----+----------+------+--------+---------+
| id | name     | age  | weight | address |
+----+----------+------+--------+---------+
|  1 | tanaka   |   30 |     57 | 東京    |
|  2 | suzuki   |   32 |     77 | 東京    |
|  3 | nakamura |   33 |     52 | 群馬    |
|  4 | miura    |   31 |     67 | 埼玉    |
|  5 | kimura   |   27 |     62 | 茨城    |
|  6 | takai    |   25 |     63 | 千葉    |
|  7 | tadano   |   26 |     43 | 千葉    |
|  8 | murakami |   35 |     42 | 茨城    |
|  9 | kikuchi  |   32 |     41 | 茨城    |
| 10 | suzuki   |   31 |     51 | 茨城    |
| 11 | saeki    |   29 |     49 | 埼玉    |
| 12 | ooyama   |   29 |     48 | 埼玉    |
| 13 | kamata   |   22 |     47 | 埼玉    |
+----+----------+------+--------+---------+
13 rows in set (0.00 sec)

MySQLのテーブルから条件にあったデータだけを抽出する

で、このままだと、全行を抽出してしまうことになるので、通常は”WHERE句”を
つけて、条件にあったデータだけを抽出します。

<p>
たとえば、memberテーブルの中から、”address”列が”東京”の人だけを抽出したい場合は
以下のようにします。

mysql> SELECT * FROM member WHERE address="東京";
+----+--------+------+--------+---------+
| id | name   | age  | weight | address |
+----+--------+------+--------+---------+
|  1 | tanaka |   30 |     57 | 東京    |
|  2 | suzuki |   32 |     77 | 東京    |
+----+--------+------+--------+---------+
2 rows in set (0.00 sec)

MySQLのテーブルから抽出するときに列を指定する

SELECT句に’*’を指定すると全列が表示されます。表示する列を限定したい場合は、’*’ではなく列名を指定します。

複数の列を指定する場合は’,’(カンマ)で区切って指定します。

mysql> SELECT name,age FROM member WHERE address="東京";
+--------+------+
| name   | age  |
+--------+------+
| tanaka |   30 |
| suzuki |   32 |
+--------+------+
2 rows in set (0.00 sec)

列に別名をつける

ちなみに、列名に別名をつけることもできます。表示する列名の後にスペースで区切って
別名を記入します。

mysql> SELECT name '名前',age '年齢' FROM member WHERE address="東京";
+--------+--------+
| 名前   | 年齢   |
+--------+--------+
| tanaka |     30 |
| suzuki |     32 |
+--------+--------+
2 rows in set (0.00 sec)

これは、複数のテーブルを扱うなど複雑な処理をする場合に役に立つときがあります。

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>