Справочное руководство по MySQL

         

Выборка всех данных

В самом простом варианте вызова SELECT из таблицы извлекаются сразу все данные:

mysql> SELECT * FROM pet;
+----------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Fang | Benny | dog | m | 1990-08-27 | NULL |
| Bowser | Diane | dog | m | 1998-08-31 | 1995-07-29 |
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |


| Puffball | Diane | hamster | f | 1999-03-30 | NULL | +----------+--------+---------+------+------------+------------+

Использовать SELECT таким образом удобно, когда нужно просмотреть всю таблицу, например, после того, как в нее была загружена первая порция данных. Как часто случается, в выведенных на экран данных сразу можно увидеть ошибку в таблице: Bowser, оказывается, успел умереть еще до того, как родился! Заглянув в его родословную обнаруживаем, что пес родился в 1989, а не в 1998 году.

Исправить ошибку можно как минимум двумя способами:

  • Отредактировать файл pet.txt, затем очистить таблицу и снова заполнить ее командами DELETE и LOAD DATA:
    mysql> SET AUTOCOMMIT=1; # Used for quick re-create of the table
    mysql> DELETE FROM pet;
    mysql> LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;
    
    Однако в таком случае придется снова ввести запись о Puffball.
  • Исправить только ошибочно введенные данные при помощи команды UPDATE:
    mysql> UPDATE pet SET birth = "1989-08-31" WHERE name = "Bowser";
    

Как видно из приведенного выше примера, загрузить всю таблицу сразу очень просто. Но на практике обычно этого не требуется, особенно когда таблица достигает значительных размеров. Чаще всего нужно просто ответить на какой-нибудь вопрос, для чего необходимо ввести ограничения, указывающие, какая же информация вам нужна. Давайте рассмотрим несколько запросов с точки зрения вопросов, на которые они отвечают.

Содержание раздела