Школьная библиотека создаёт базу данных для учёта книг. Все данные хранятся в одной таблице books со столбцами (полями): id — порядковый номер записи, title — название, category — категория, year — год издания, copies — число экземпляров, price — цена одного экземпляра в тенге. Поле id заполняет система, номера в нём не повторяются. Таблица содержит шесть записей в порядке полей (id, title, category, year, copies, price): (1, Абай жолы, роман, 2012, 5, 3200); (2, Информатика 10, учебник, 2019, 12, 2500); (3, Python для школьников, учебник, 2021, 3, 4100); (4, Физика 9, учебник, 2017, 8, 2300); (5, Сказки степи, сказка, 2019, 8, 1800); (6, История Казахстана, учебник, 2016, 10, 2700). Библиотекарь будет получать данные структурированными запросами на языке SQL. Запрос SELECT выбирает поля, FROM указывает таблицу, WHERE задаёт условие отбора строк, ORDER BY сортирует результат: по умолчанию по возрастанию, а слово DESC означает сортировку по убыванию. Функция SUM(поле) суммирует значения, COUNT(*) считает строки, GROUP BY объединяет в группы строки с одинаковым значением поля. Условия в WHERE можно соединять словом AND: тогда строка должна удовлетворять обоим условиям. Порядок частей запроса такой: SELECT, FROM, WHERE, GROUP BY, ORDER BY. Позже библиотекарь планирует указывать цены с тиынами, например 2450,50, и при этом сравнивать цены и вычислять их суммы.
Библиотекарю нужен список названий книг дороже 2400 тенге, от самой дорогой к самой дешёвой. Какой запрос это выполнит?
Показать ответ и разборСкрыть ответ и разбор
Верный ответ
- CSELECT title FROM books WHERE price > 2400 ORDER BY price DESC;
Разбор
Нужно условие price > 2400 и сортировка по убыванию цены, то есть ORDER BY price DESC. Запрос с ORDER BY price без DESC сортирует по возрастанию. Запрос с условием price < 2400 отбирает более дешёвые книги. Запрос, где ORDER BY стоит перед WHERE, нарушает порядок частей запроса.