Привіт, шановні читачі блогу 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.
До нових зустрічей!