前のセクションで示したように、テーブル全体を読み取るのは簡単です。SELECT
ステートメントで WHERE
節を省略すれば、テーブル全体を取得できます。しかし、通常は、特に大規模なテーブルの場合は、テーブル全体を読み取ることはありません。特定の質問に回答するというはっきりした目的があり、そのために必要な情報を取得するための制約を指定するのが普通です。ここで、ペットに関する質問という観点から、その回答を示すいくつかの
SELECT クエリについて説明します。
テーブルから特定のレコードだけを選択することができます。たとえば、Bowser の誕生日が変更されたことを確認するには、以下のように Bowser のレコードを選択します。
mysql> SELECT * FROM pet WHERE name = "Bowser";
+--------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+-------+---------+------+------------+------------+
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+-------+---------+------+------------+------------+
この出力から、生まれ年が 1979 年から 1989 年に正しく変更されたことが確認できます。
文字列の比較では、通常は大文字と小文字は区別されません。したがって、"bowser"
や "BOWSER"
などを指定しても、クエリから返される結果は同じです。
条件は、name
以外のカラムにも指定できます。たとえば、1998
年以後に生まれたペットを調べるには、birth
カラムに条件を指定します。
mysql> SELECT * FROM pet WHERE birth >= "1998-1-1";
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+-------+---------+------+------------+-------+
条件は組み合わせることができます。たとえば、メスの犬を調べるには以下のように条件を指定します。
mysql> SELECT * FROM pet WHERE species = "dog" AND sex = "f";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+
上記のクエリでは、AND
論理演算子を使用しています。そのほかに、OR
演算子もあります。
mysql> SELECT * FROM pet WHERE species = "snake" OR species = "bird";
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
+----------+-------+---------+------+------------+-------+
AND
と OR
を混合して指定することができます。ただし、AND
が OR
よりも高い優先度で処理されます。両方の演算子を混合して使用する場合は、条件の関係を明示的に指定するためにかっこを使用することを推奨します。
mysql>SELECT * FROM pet WHERE (species = "cat" AND sex = "m")
->OR (species = "dog" AND sex = "f");
+-------+--------+---------+------+------------+-------+ | name | owner | species | sex | birth | death | +-------+--------+---------+------+------------+-------+ | Claws | Gwen | cat | m | 1994-03-17 | NULL | | Buffy | Harold | dog | f | 1989-05-13 | NULL | +-------+--------+---------+------+------------+-------+
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.