← К оглавлению занятия

📖 Теория

📁 Блок: SQL / MySQL / Практика функций ⏱️ Время изучения: ~90 мин 🎯 Сложность: Практикум

⚡ Кратко: 📖 теория

Практикум 11 закрепляет пользовательские функции MySQL на трёх расчётных задачах.

Нужно создать cm_to_inches, sphere_volume и degrees_to_radians.

Все три функции принимают числовой аргумент, возвращают DECIMAL и используют DETERMINISTIC.

Минимальный пример: SELECT cm_to_inches(10); должен вернуть значение в дюймах по формуле cm * 0.393701.

Топ-3 ошибки: потерять точность из-за INT, забыть POW(radius, 3), написать DELIMITER; без пробела и разделителя.

Как решать задачи практикума

Каждая задача практикума переводится в один и тот же шаблон: определить имя функции, выбрать тип параметра, выбрать тип результата, записать формулу в RETURN, затем проверить вызовом SELECT.

DELIMITER $$

CREATE FUNCTION function_name(value DECIMAL(10,2))
RETURNS DECIMAL(10,2)
DETERMINISTIC
BEGIN
    RETURN value;
END$$

DELIMITER ;

DECIMAL в этих задачах уместнее INT, потому что сантиметры, радиус и градусы могут быть дробными, а результат точно не всегда целый.

Формулы из источника

  • Сантиметры в дюймы: inches = cm * 0.393701.
  • Объём шара: V = 4 / 3 * PI() * r^3.
  • Градусы в радианы: radians = degrees * PI() / 180.