3.3.4.2 Выбор конкретных строк
Как показано в предыдущем разделе, легко извлечь всю таблицу. Просто опустите предложение WHERE из оператора SELECT. Но обычно вам не нужно видеть всю таблицу, особенно когда она становится большой. Вместо этого вы обычно заинтересованы в ответе на конкретный вопрос, в котором вы задаете некоторые ограничения на требуемую информацию. Давайте рассмотрим некоторые запросы выбора в контексте вопросов о ваших домашних животных.
Вы можете выбрать только конкретные строки из вашей таблицы. Например, если вы хотите проверить изменение даты рождения Баузера, выберите запись Баузера следующим образом:
mysql> SELECT * FROM pet WHERE name = 'Bowser';
+--------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+-------+---------+------+------------+------------+
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+-------+---------+------+------------+------------+
Вывод подтверждает, что год правильно записан как 1989, а не 1979.
Сравнения строк обычно нечувствительны к регистру, поэтому вы можете указать имя как '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 |
+-------+--------+---------+------+------------+-------+
© 2025 Oracle
Licensed under the GPLv2 License.