Найти тему
SQLtest

SQL - это просто (часть вторая: сортируем)

В предыдущей статье цикла вы освоили базовые команды SELECT и FROM и уже можете написать элементарный запрос к базе. В этой мы продолжим изучение английского SQL и узнаем ещё три слова: ORDER BY, ASC и DESC.

Если вы не знаете английский - можно открыть онлайн переводчик и найти перевод:

ORDER BY - упорядочить (отсортировать) по

ASC -  (сокращение от ascending - восходящий) порядок то есть сортировка от меньшего к большему (0, 1, 2, 3 .. )

DESC -  (сокращение от descending - нисходящий) порядок то есть сортировка от большего к меньшему (100, 99, 98 ...)
Как мы использовать эти ключевые слова в написании запросов? Например так:

SELECT name, score
FROM students
ORDER BY name ASC;

Если перевести запрос с английского на русский получим:

ВЫБЕРИ имя и оценку
ИЗ ТАБЛИЦЫ студентов
УПОРЯДОЧИВ ПО имени ПО ВОЗРАСТАНИЮ;

Выполним этот запрос получим следующий результат:

Список студентов отсортированный по имени
Список студентов отсортированный по имени

Отсортируем список студентов так чтобы в начале были студенты с более высокими оценками. Для этого напишем запрос:

SELECT name, score FROM students ORDER BY score DESC;

и получим следующий результат:

-2

Как видите порядок записей изменился - в начале списка отличники Сергей и Татьяна, а Илья со своей тройкой оказался внизу списка. Уделим ещё пару минут нашим отличникам. Они оба имеют оценку 5, значит при выполнении нашего запроса с сортировкой обе записи имеют равный приоритет и то что Сергей оказался выше Татьяны - дело случая. База данных не гарантирует порядок строк кроме того который явно указан в запросе. Если нам принципиально чтобы студенты с равными оценками были упорядочены по имени придется уточнить запрос следующим образом:

SELECT name, score FROM students ORDER BY score DESC, name ASC;

Таким запросом мы гарантируем порядок выдачи строк вне зависимости от настроения базы данных.

Таким образом вы знаете уже пять слов из лексикона SQL и можете выполнить задания 3 и 12 на SQLtest.online

Следующий урок можно зайти здесь а вопросы по теме задать можно тут