Полезные математические функции
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); -- 0ABS в настоящем запросе
Представьте таблицу 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); -- 10ROUND — округление до 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); -- 10CEIL и FLOOR — округление вверх или вниз
CEIL(n), также записываемая как CEILING, всегда округляет вверх до ближайшего целого числа, а FLOOR(n) всегда округляет вниз.
Используйте CEIL, когда нужно определить минимальное количество чего-либо, например число страниц, необходимых для печати строк, а FLOOR — когда нужно получить наибольшее целое число, не превышающее значение, например количество полностью прошедших недель.
SELECT CEIL(4.1), -- 5
CEIL(-4.1), -- -4
FLOOR(4.9), -- 4
FLOOR(-4.9); -- -5SIGN — каково направление числа
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 — локальная установка не требуется.
Все уроки этого курса
- Арифметика и операторы
- Округление и усечение
- Целочисленное и десятичное деление
- Полезные математические функции