Рабочий лист студента: 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) Что зависит от СУБД?