Изучаем SQL. №7. Сортировка данных SQL.

Изучаем SQL
Итак, вы научились выбирать различные данные с помощью различных ключевых слов из базы данных. Но все приведенные примеры не были отсортированы. И сегодня мы научимся сортировать результаты наших запросов. Тем более, что это очень легко.
Продолжим использовать все туже базу данных people с ее табличкой human.

Попробуем вывести всех наших пользователей и отсортировать по возрасту с помощью ключевого слова ORDER BY:

SELECT * FROM human ORDER BY age;
+----+-----------+-----+
| id | name      | age |
+----+-----------+-----+
| 10 | Светлана  |  17 |
| 13 | Сергей    |  19 |
|  5 | Андрей    |  19 |
| 12 | Екатерина |  19 |
|  3 | Оксана    |  20 |
|  8 | Снежана   |  20 |
|  1 | Сергей    |  22 |
|  4 | Света     |  22 |
| 11 | Виталий   |  26 |
|  9 | Игорь     |  30 |
| 14 | Сергей    |  31 |
|  2 | Паша      |  33 |
+----+-----------+-----+

А теперь по имени:

SELECT * FROM human ORDER BY name;
+----+-----------+-----+
| id | name      | age |
+----+-----------+-----+
|  5 | Андрей    |  19 |
| 11 | Виталий   |  26 |
| 12 | Екатерина |  19 |
|  9 | Игорь     |  30 |
|  3 | Оксана    |  20 |
|  2 | Паша      |  33 |
|  4 | Света     |  22 |
| 10 | Светлана  |  17 |
| 13 | Сергей    |  19 |
|  1 | Сергей    |  22 |
| 14 | Сергей    |  31 |
|  8 | Снежана   |  20 |
+----+-----------+-----+

Можно сортировать по нескольким параметрам, например по имени и возрасту:

SELECT * FROM human ORDER BY name,age;
+----+-----------+-----+
| id | name      | age |
+----+-----------+-----+
|  5 | Андрей    |  19 |
| 11 | Виталий   |  26 |
| 12 | Екатерина |  19 |
|  9 | Игорь     |  30 |
|  3 | Оксана    |  20 |
|  2 | Паша      |  33 |
|  4 | Света     |  22 |
| 10 | Светлана  |  17 |
| 13 | Сергей    |  19 |
|  1 | Сергей    |  22 |
| 14 | Сергей    |  31 |
|  8 | Снежана   |  20 |
+----+-----------+-----+

Как видим пользователи с именем Сергей отсортировались по возрасту.

Все это мы сортировали по возрастанию, но можем отсортировать возраст пользователей по убыванию с помощью ключевого слова DESC:

SELECT * FROM human ORDER BY age DESC;
+----+-----------+-----+
| id | name      | age |
+----+-----------+-----+
|  2 | Паша      |  33 |
| 14 | Сергей    |  31 |
|  9 | Игорь     |  30 |
| 11 | Виталий   |  26 |
|  4 | Света     |  22 |
|  1 | Сергей    |  22 |
|  8 | Снежана   |  20 |
|  3 | Оксана    |  20 |
|  5 | Андрей    |  19 |
| 12 | Екатерина |  19 |
| 13 | Сергей    |  19 |
| 10 | Светлана  |  17 |
+----+-----------+-----+

Представьте, что у вас тысячи записей, но вам, например, нужно вывести 5 записей начиная с 3 записи. Или вывести всего 4 записи из огромной базы. Для этого в SQL существует ключевое слово LIMIT.

Попробуем вывести 4 пользователей отсортированных по возрасту.

SELECT * FROM human ORDER BY age LIMIT 4;
+----+-----------+-----+
| id | name      | age |
+----+-----------+-----+
| 10 | Светлана  |  17 |
| 13 | Сергей    |  19 |
|  5 | Андрей    |  19 |
| 12 | Екатерина |  19 |
+----+-----------+-----+

А теперь выберем пять записей отсортированных по имени начиная с 3:

SELECT * FROM human ORDER BY name LIMIT 3,5;
+----+----------+-----+
| id | name     | age |
+----+----------+-----+
|  9 | Игорь    |  30 |
|  3 | Оксана   |  20 |
|  2 | Паша     |  33 |
|  4 | Света    |  22 |
| 10 | Светлана |  17 |
+----+----------+-----+

Первая цифра после LIMIT означает номер записи, с которой начинается выборка, а вторая количество — выбираемых записей.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *