SELECT文の基本
SELECT文はSELECT句とFROM句が必須の句となります。
たとえば、hogetableというテーブルの全データ(全列全行)を取り出すには以下のようにします。
1 |
SELECT * FROM hogetable |
この例の書式は以下です。
1 |
SELECT [,...] FROM |
上記の例の”*(アスタリスク)”は”全部の列”を意味します。
なので、この場合すべての列が抽出されます。
今回は以下のテーブルを例に説明します。
1 2 3 4 5 6 7 8 9 10 11 |
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’を指定します
1 |
select * from member; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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句”を
つけて、条件にあったデータだけを抽出します。
たとえば、memberテーブルの中から、”address”列が”東京”の人だけを抽出したい場合は
以下のようにします。
1 2 3 4 5 6 7 8 |
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句に’*’を指定すると全列が表示されます。表示する列を限定したい場合は、’*’ではなく列名を指定します。
複数の列を指定する場合は’,'(カンマ)で区切って指定します。
1 2 3 4 5 6 7 8 |
mysql> SELECT name,age FROM member WHERE address="東京"; +--------+------+ | name | age | +--------+------+ | tanaka | 30 | | suzuki | 32 | +--------+------+ 2 rows in set (0.00 sec) |
列に別名をつける
ちなみに、列名に別名をつけることもできます。表示する列名の後にスペースで区切って
別名を記入します。
1 2 3 4 5 6 7 8 |
mysql> SELECT name '名前',age '年齢' FROM member WHERE address="東京"; +--------+--------+ | 名前 | 年齢 | +--------+--------+ | tanaka | 30 | | suzuki | 32 | +--------+--------+ 2 rows in set (0.00 sec) |
これは、複数のテーブルを扱うなど複雑な処理をする場合に役に立つときがあります。
/