В предыдущей статье цикла вы освоили базовые команды 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;
и получим следующий результат:
Как видите порядок записей изменился - в начале списка отличники Сергей и Татьяна, а Илья со своей тройкой оказался внизу списка. Уделим ещё пару минут нашим отличникам. Они оба имеют оценку 5, значит при выполнении нашего запроса с сортировкой обе записи имеют равный приоритет и то что Сергей оказался выше Татьяны - дело случая. База данных не гарантирует порядок строк кроме того который явно указан в запросе. Если нам принципиально чтобы студенты с равными оценками были упорядочены по имени придется уточнить запрос следующим образом:
SELECT name, score FROM students ORDER BY score DESC, name ASC;
Таким запросом мы гарантируем порядок выдачи строк вне зависимости от настроения базы данных.
Таким образом вы знаете уже пять слов из лексикона SQL и можете выполнить задания 3 и 12 на SQLtest.online
Следующий урок можно зайти здесь а вопросы по теме задать можно тут