0Pricing
SQL Academy · Урок

Полезные математические функции

ABS, MOD, POWER и другие функции

«Полезные математические функции» — бесплатный урок SQL Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения SQL Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс SQL Academy содержит 4 уроков всего.

Зачем нужны математические функции

SQL предназначен не только для хранения и получения текста — это также мощный инструмент для числовых вычислений. Встроенные математические функции позволяют вычислять абсолютные значения, остатки, степени и многое другое прямо в запросе.

В этом уроке Вы изучите самые полезные числовые функции SQL: ABS, MOD, POWER, SQRT, ROUND, CEIL, FLOOR и SIGN.

ABS — абсолютное значение

ABS(n) возвращает абсолютное, то есть неотрицательное, значение числа. Отрицательные числа становятся положительными, а положительные числа и ноль не изменяются.

Это удобно, когда важнее расстояние от нуля, чем направление, например при вычислении отклонения температуры от целевого значения независимо от того, выше она или ниже.

SELECT ABS(-42),  -- 42
       ABS(15),   -- 15
       ABS(0);    -- 0

ABS в настоящем запросе

Представьте таблицу transactions, в которой снятия средств хранятся как отрицательные суммы. С помощью ABS можно отображать каждую сумму как положительное число независимо от направления.

CREATE TABLE transactions (
  id     INTEGER,
  amount NUMERIC
);

INSERT INTO transactions VALUES (1, 200.00), (2, -50.00), (3, -120.00), (4, 80.00);

SELECT id,
       amount,
       ABS(amount) AS absolute_amount
FROM   transactions;

MOD — остаток после деления

MOD(делимое, делитель) возвращает остаток, получаемый при делении первого числа на второе. В SQL эта функция эквивалентна оператору %, который используется во многих языках программирования.

Классический вариант применения — проверка, является ли число чётным или нечётным: если MOD(n, 2) = 0, число чётное, в противном случае оно нечётное.

SELECT MOD(10, 3),  -- 1  (10 = 3*3 + 1)
       MOD(15, 5),  -- 0  (15 = 5*3 + 0)
       MOD(7,  2);  -- 1  (odd number)

MOD в настоящем запросе

Вы можете использовать MOD внутри предложения WHERE, чтобы фильтровать строки. Здесь мы выбираем только заказы с чётным id.

CREATE TABLE orders (
  id    INTEGER,
  total NUMERIC
);

INSERT INTO orders VALUES (1, 99.99), (2, 45.00), (3, 130.50), (4, 22.00), (5, 75.00), (6, 60.00);

SELECT id, total
FROM   orders
WHERE  MOD(id, 2) = 0;

POWER — возведение в степень

POWER(основание, показатель степени) возводит число в указанную степень. POWER(2, 10) даёт 1024, а POWER(9, 0.5) даёт 3 — квадратный корень из 9.

Эта функция полезна для расчётов сложных процентов, вычисления площади и любых задач, связанных с экспоненциальным ростом.

SELECT POWER(2, 10),   -- 1024
       POWER(3, 3),    -- 27
       POWER(9, 0.5);  -- 3 (square root)

SQRT — квадратный корень

SQRT(n) — удобная сокращённая запись для POWER(n, 0.5). Функция возвращает квадратный корень неотрицательного числа.

Например, если Вы храните площадь квадратного земельного участка, с помощью SQRT(area) можно восстановить длину его стороны.

SELECT SQRT(25),   -- 5
       SQRT(2),    -- 1.4142...
       SQRT(100);  -- 10

ROUND — округление до N десятичных знаков

ROUND(n, d) округляет n до d десятичных знаков. Если не указывать d или передать 0, результатом будет целое число. Отрицательные значения d округляют число слева от десятичной запятой.

SELECT ROUND(3.14159, 2),  -- 3.14
       ROUND(2.555, 2),    -- 2.56
       ROUND(1234.5, -2),  -- 1200
       ROUND(9.9);         -- 10

CEIL и FLOOR — округление вверх или вниз

CEIL(n), также записываемая как CEILING, всегда округляет вверх до ближайшего целого числа, а FLOOR(n) всегда округляет вниз.

Используйте CEIL, когда нужно определить минимальное количество чего-либо, например число страниц, необходимых для печати строк, а FLOOR — когда нужно получить наибольшее целое число, не превышающее значение, например количество полностью прошедших недель.

SELECT CEIL(4.1),   -- 5
       CEIL(-4.1),  -- -4
       FLOOR(4.9),  -- 4
       FLOOR(-4.9); -- -5

SIGN — каково направление числа

SIGN(n) возвращает 1, если число положительное, -1, если оно отрицательное, и 0, если оно равно нулю. Это быстрый способ классифицировать числовые значения без написания выражения CASE.

SELECT SIGN(42),   -- 1
       SIGN(-7),   -- -1
       SIGN(0);    -- 0

Комбинирование математических функций

Математические функции можно свободно объединять в одном выражении. В примере ниже функции ROUND и POWER вместе вычисляют ежемесячный платёж по простому займу, показывая, как эти функции дополняют друг друга в реальной бизнес-логике.

-- Monthly payment formula: P * r / (1 - (1+r)^-n)
-- P=10000, annual rate 6% (r=0.005/month), n=24 months
SELECT ROUND(
  10000.0 * 0.005 / (1 - POWER(1 + 0.005, -24)),
  2
) AS monthly_payment;

Быстрая проверка

Проверьте, насколько хорошо Вы понимаете математические функции SQL.

Итоги урока

Отличная работа! Вот краткое изложение математических функций SQL, которые Вы изучили в этом уроке:

  • ABS(n) — абсолютное значение, то есть значение без знака
  • MOD(a, b) — остаток от деления a на b
  • POWER(основание, показатель) — возведение числа в степень
  • SQRT(n) — квадратный корень
  • ROUND(n, d) — округление до d десятичных знаков
  • CEIL(n) — округление вверх до следующего целого числа
  • FLOOR(n) — округление вниз до предыдущего целого числа
  • SIGN(n) — возвращает 1, -1 или 0 в зависимости от знака числа

Эти функции работают во всех основных базах данных SQL и могут быть вложенными друг в друга или объединёнными для обработки сложной числовой логики непосредственно в запросах.

Часто задаваемые вопросы

Урок «Полезные математические функции» бесплатный?

Да — полный текст урока «Полезные математические функции» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс SQL Academy, подпишись на CoddyKit PRO. Курс SQL Academy содержит 4 уроков всего.

Чему я научусь в уроке «Полезные математические функции»?

ABS, MOD, POWER и другие функции Ты практикуешь SQL Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать SQL Academy?

Предыдущий опыт не требуется. SQL Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Полезные математические функции»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке SQL Academy?

Да. Каждый урок SQL Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Арифметика и операторы
  2. Округление и усечение
  3. Целочисленное и десятичное деление
  4. Полезные математические функции
← Назад к SQL Academy