Spec-Zone .ru
спецификации, руководства, описания, API
|
Как показано в предыдущем разделе, легко получить всю таблицу. Только опустите 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 |+-------+--------+---------+------+------------+-------+