3.3.4.2 Выборка определенных строк
Из таблицы можно выбрать и только нужные строки. Например, если вы хотите
проверить правильность внесенных в дату рождения собаки Bowser изменений,
соответствующую запись можно получить следующим способом:
mysql> SELECT * FROM pet WHERE name = "Bowser";
+--------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+-------+---------+------+------------+------------+
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+-------+---------+------+------------+------------+
Теперь видно, что год рождения теперь записан правильно -1989, а не 1998.
В операции сравнения строк обычно не учитывается регистр символов, так что
имя можно записать как "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
можно использовать совместно. В таком случае с помощью
скобок можно указать порядок группировки условий:
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 |
+-------+--------+---------+------+------------+-------+