5.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.