Математичні функції в sql (модуль числа, округлення, зведення в ступінь, обчислення кореня і

Привіт, шановні читачі блогу webcodius.ru. Сьогодні продовжимо вивчення баз даних, а саме пройдемося по математичних функцій мови sql. Використання математичних функцій sql допоможе перенести частину логіки програми з web-сервера на сервер бази даних, тим самим розвантаживши web-сервер на який зазвичай лягає основне навантаження.

Відразу зазначу, що в разі помилки все математичні функції повертають NULL. Отже, перейдемо до справи.

знаки числа

Почнемо з функції ABS (x). яка повертає абсолютне значення переданого їй числа x. приклад:

SELECT ABS (-5)
Результат: 5
SELECT ABS (5)
Результат: 5

Знак числа можна визначити за допомогою функції SIGN (x). Функція повертає -1 якщо x негативне число, 1 якщо позитивне і 0 якщо x є нулем. приклад:

SELECT SIGN (-5)
Результат: -1
SELECT SIGN (0)
Результат: 0
SELECT SIGN (5)
Результат: 1

округлення чисел

Почнемо з функції FLOOR (x). Повертає найближче ціле число не перевищує x. приклад:

SELECT FLOOR (5.5)
Результат: 5
SELECT FLOOR (5.2)
Результат: 5
SELECT FLOOR (5.7)
Результат: 5
SELECT FLOOR (5)
Результат: 5
SELECT FLOOR (-5.2)
Результат: -6

Як видно, при завданні будь-якого позитивного дрібного числа від 5 до 6 повертається ціле число 5. А при передачі параметра -5.2 повернеться -6, так як -6 менше -5.2.

Зворотна дія виконує функція CEILING (x). Вона повертає найближче ціле число, яке перевищує переданий параметр x. приклад:

SELECT CEILING (5.5)
Результат: 6
SELECT CEILING (5.2);
Результат: 6
SELECT CEILING (5.7)
Результат: 6
SELECT CEILING (5)
Результат: 5
SELECT CEILING (-5.5)
Результат: -5

Для округлення дробового числа до найближчого цілого використовується функція ROUND (x, d). Функція може приймати один або два параметри. Перший параметр x - число, яке необхідно округлити. Другий параметр d - ціле число, яке визначає розряд до якого необхідно округлити x. У разі якщо переданий один параметр x. то відбувається просто округлення до найближчого цілого. наприклад:

SELECT ROUND (50.45)
Результат: 50
SELECT ROUND (50.76)
Результат: 51

При значенні аргументу, рівного середині між двома цілими числами, результат буде залежати від конкретної СУБД, де використовується мова SQL.

Якщо в функцію переданий другий параметр, то після коми залишиться стільки знаків скільки вказано в параметрі. Наприклад, якщо після коми необхідно залишити один символ, то в якості другого параметра вказуємо цифру 1:

SELECT ROUND (50.76, 1)
Результат: 50,8

Існує можливість округляти число до будь-якого розряду до коми, для цього просто другим параметром вказуємо негативне число. наприклад:

SELECT ROUND (251.55, -1)
Результат: 250

У SQL ще є функція, яка округлює, а відсікає десяткову частину дробового числа. Функція TRUNCATE (x, y) повертає число x. усеченное до y десяткових знаків:

SELECT TRUNCATE (1.999, 1)

SELECT TRUNCATE (1.999, 0)

Функції виконують складні математичні операції

Почнемо з самого простого. Функція MOD (x, y) повертає залишок від деленіяx на y. наприклад:

SELECT MOD (10, 3)
Результат: 1

Наступна функція EXP (x). яка повертає значення e (Число Ейлера) зведена в ступінь x. Або науковою мовою, повертає експоненту числа. приклад:

SELECT EXP (3)
Результат: 20.085536923187668

Далі розглянемо функцію LOG (x). яка повертає натуральний логарифм числа x. приклад:

SELECT LOG (10)
Результат: 2.302585092994046

Для отримання логарифма числа x. для довільної основи логарифма y можна користуватися формулою LOG (x) / LOG (y). наприклад:

SELECT LOG (8) / LOG (2)
Результат: 3

Для отримання десяткового логарифма числа x існує функція LOG10 (x). приклад:

SELECT LOG10 (100)
Результат: 2

Для зведення в ступінь в мові SQL є цілих дві функції: POW (x, y) і POWER (x, y). Повертають число x зведена в ступінь y. приклад:

SELECT POW (2, 3)
Результат: 8
SELECT POWER (3, 2)
Результат: 9

А функція SQRT (x) обчислює квадратний корінь числа x. приклад:

SELECT SQRT (16)
Результат: 4

Щоб використовувати в своїх обчислення число «пі» в SQL є функція PI (). яка повертає значення цього числа:

SELECT PI ()
Результат: 3.141593

Тригонометричні функції в мові SQL

Коротенько пройдемося по тригонометричним функціям:

Скрізь x задається в радіанах. приклади:

SELECT COS (PI ())
Результат: -1
SELECT SIN (PI () / 2)
Результат: 1
SELECT TAN (PI () / 4)
Результат: 1
SELECT COT (PI () / 3)
Результат: 0.577350269189626

Функції ACOS (x) і ASIN (x) обчислюють відповідно арккосинус і арксинус числа x, тобто функції повертають величину, косинус або синус якого дорівнює x. При цьому якщо значення x не перебуває у діапазоні від -1 до 1, то функції повертають NULL. наприклад:

SELECT ASIN (-1)
Результат: -1.5707963267949
SELECT ACOS (-1)
Результат: 3.14159265358979
SELECT ACOS (1.1)
Результат: NULL

Функція ATAN (x) обчислює арктангенс числа x. тобто повертає величину, тангенс якого дорівнює x. приклад:

SELECT ATAN (3);
Результат: 1.24904577239825

Для перетворення радіан в градуси і назад використовуються функції DEGREES (x) і RADIANS (x) відповідно:

SELECT DEGREES (PI ())
Результат: 180
SELECT RADIANS (180)
Результат: 3.14

випадкові числа

Функція RAND (x) генерує випадкове значення в діапазоні від 0 до 1. Якщо вказано аргумент x. то він використовується як початкове значення цієї величини. приклад:

SELECT RAND ();
Результат: 0.472241415009636
SELECT RAND (0.5);
Результат: 0.943597390424144

На цьому все. Начебто розглянув всі часто використовувані в SQL математичні функції. Можливо вам буде цікаво дізнатися і про функції обробки рядків в SQL.

До нових зустрічей!