Оператор mod — остаток от деления. Что такое mod?
Оператор mod обозначается символом % и является оператором деления по модулю. Он возвращает остаток от деления 1-го операнда на 2-й и широко используется в разных языках программирования для решения ряда задач.
Оператор mod в Java
В Java operator mod может работать как с целыми числами (byte/int/short/long), так и с плавающей точкой (byte/int/short/long). Давайте приведём пример работы оператора mod при делении:
class Modulus { public static void main (String args []) { int x = 42; double у = 42.3; System.out.print("x mod 10 = " + x % 10); System.out.println("y mod 10 = " + у % 10); } }
После выполнения этой программы вы получите результат следующего вида:
х mod 10 = 2 у mod 10 = 2.3
Как видим, оператор mod — это прекрасный способ найти остаток от деления. Зачем это может понадобиться на практике? Например, при нахождении кратности числа и определении, является ли некоторое число, введённое с клавиатуры, чётным. Также с помощью оператора mod можно узнать, делится ли одно число на другое без остатка или определить последнюю цифру числа. В общем, оператор mod очень полезен при решении различных задач по программированию.
Оператор mod в SQL
Не менее интересно использование mod в базах данных. Аналогично, mod находит остаток от деления. При этом вместо mod можно задействовать операцию %, делающую то же самое. Синтаксис в SQL следующий:
SELECT MOD(что_делить, на_что_делить) FROM имя_таблицы WHERE условие
Но можно написать и иначе, используя
SELECT что_делить % на_что_делить FROM имя_таблицы WHERE условие
Давайте приведём пример использования mod в базах данных. Вот, например, таблица numbers:
Найдём остаток от деления столбца number на три:
SELECT *, MOD(number, 3) as mod FROM numbers
В результате запрос SQL выберет следующие строки:
Но, как мы уже говорили выше, этот же запрос можно без проблем переписать:
SELECT id, number % 3 as mod FROM numbers
Идём дальше. Теперь возьмём таблицу посложнее:
Здесь найдём остаток от деления столбца number1 на number2:
SELECT *, MOD(number1, number2) as mod FROM numbers
Получим следующие строки:
Опять же, этот же самый запрос можно оформить иначе:
SELECT *, number1 % number2 as mod FROM numbers
А где вы используете mod? Пишите в комментариях!