
SELECT: найти нужные операции и ничего не изменить
Осваиваем проекцию, фильтр, сортировку и ограничение результата. Учимся читать логический порядок запроса и задавать устойчивую сортировку, чтобы один вопрос всегда означал одно и то же.
Зачем это нужно
База полезна не тем, что хранит всё, а тем, что быстро отдаёт нужное: последние расходы, покупки дороже порога или операции одного месяца.
Образ.
FROMставит на стол коробку чеков,WHEREоставляет подходящие,SELECTзакрывает ненужные поля,ORDER BYраскладывает,LIMITберёт первые.
Сразу целиком
SELECT happened_on, amount_tiyn / 100.0 AS amount_kzt, note
FROM transactions
WHERE amount_tiyn >= 1000000
ORDER BY happened_on DESC, id DESC
LIMIT 5;
Разбор
Логически запрос начинает работу с FROM, затем применяет WHERE, строит выражения SELECT, сортирует и ограничивает результат. Записывается он в другом порядке — это часть языка.
SELECT * удобно для короткого исследования, но контракт приложения должен перечислять поля. Иначе новый столбец неожиданно изменит форму ответа и принесёт лишние данные.
Без ORDER BY порядок строк не определён. Даже если сегодня он похож на порядок вставки, план запроса или индекс может завтра его изменить. При возможном равенстве дат добавляем id как второй ключ сортировки.
Строковые шаблоны задаёт LIKE: % означает любое число символов, _ — один. Регистр и правила сопоставления зависят от СУБД и настроек, поэтому не выдавайте поведение SQLite с ASCII за универсальное.
Карта урока
Скажите своими словами
- Почему строка
SELECTнаписана первой, но выполняется не первой? - Что гарантирует порядок при одинаковой дате?
- Когда
SELECT *становится риском?
Задание
Выведите три самые крупные операции сентября: дату, сумму в тенге и заметку. При одинаковой сумме сначала покажите более позднюю запись.
Куда это встанет в проекте
Так строятся экран истории и проверка отдельных строк до любого массового изменения.
Ответы
Показать ответы
SELECT happened_on, amount_tiyn / 100.0 AS amount_kzt, note
FROM transactions
WHERE happened_on >= '2026-09-01' AND happened_on < '2026-10-01'
ORDER BY amount_tiyn DESC, happened_on DESC, id DESC
LIMIT 3;
Источники
Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом
Комментарии (0)
Войдите, чтобы оставить комментарий →
Пока нет комментариев. Будьте первым.