Рабочий лист студента: SQL — синтаксис и типы данных
Занятие 29 · Работайте с выбранным преподавателем вариантом. Записывайте фрагменты SQL и кратко обосновывайте решения.
Вариант 1. Финансовые расчёты
В платёжной системе сравните сумму NUMERIC(15,2) с приближённым FLOAT: опишите, почему округление двоичной плавающей точки рискованно для денежных итогов. Составьте выражение точной суммы двух значений и пример начисления пени за период INTERVAL '30 days'. Укажите, где нужен явный CAST и каковы единицы периода.
Вариант 2. Логистический трекинг
Опишите генерацию UUIDv4 для посылки, хранение координат в массиве FLOAT[], разбор метаданных JSONB. Приведите PostgreSQL-примеры типов/выражений и явно назовите диалект. Объясните, когда координаты допустимо хранить как приближённые числа.
Вариант 3. Кадровый учёт
Рассчитайте стаж по разнице между моментом приёма и CURRENT_TIMESTAMP. Выберите тип столбца для момента приёма. Покажите явное приведение строкового возраста в INTEGER через CAST; обработайте случай, когда строка не является целым числом.
Вариант 4. Электронная коммерция
Покажите текстовые операции с VARCHAR и TEXT: объединение через ||, преобразование регистра функцией UPPER, очистку краёв TRIM, преобразование ISO-строки даты в DATE. Отметьте переносимость оператора и риск невалидной/неоднозначной даты.
Итоговая самопроверка
1) Какой тип вы выбрали осознанно? 2) Какое преобразование проверили? 3) Что зависит от СУБД?