SQL-Урок 7. Функції обробки даних

Як і в більшості мов програмування, в SQL існують функції для обробки даних. Варто зазначити, що на відміну від SQL-операторів, функції не є стандартизованими для усіх видів СУБД, тобто для виконання одних і тих самих операції над даними, різні СУБД мають свої власні назви функцій. Це означає, що код запиту написаний в одній СУБД може не працювати в іншій, і це потрібно враховувати в подальшому. Найбільше це стосується функцій для обробки текстових значень, перетворення типів даних та маніпуляцій над датами.

В більшості СУБД підтримується стандартний набір типів функцій, а саме:

1. Функції SQL для обробки тексту

Реалізація SQL в СУБД Access має наступні функції для обробки тексту:

Знак операції
Значення
LEFT() Відбирає символи в тексті зліва
RIGHT() Відбирає символи в тексті справа
MID() Відбирає символи з середини тексту
UCase() Переводить символи в верхній регістр
LCase() Переводить символи в нижній регістр
LTrim() Видаляє всі порожні символи зліва від тексту
RTrim() Видаляє всі порожні символи справа від тексту
Trim() Видаляє всі порожні символи з обох боків тексту

Переведемо назви товарів у верхній регістр за допомогою функції UCase():

SELECT Product, UCase(Product) AS Product_UCase FROM Sumproduct

Виділимо перші три символи у тексті за допомогою функції LEFT():

SELECT Product, LEFT(Product, 3) AS Product_LEFT FROM Sumproduct

2. Функції SQL для обробки чисел

Функції обробки чисел призначені для виконання математичних операцій над числовими даними. Ці функції призначені для алгебраїчних та геометричних обчислень, тому вони використовуються значно рідше функцій обробки дати та часу. Проте числові функції є найбільш стандартизованими для усіх версій SQL. Давайте поглянемо на перелік числових функцій:

Знак операції
Значення
SQR() Повертає корінь квадратний вказаного числа
ABS() Повертає абсолютне значення числа
EXP() Повертає експоненту вказаного числа
SIN() Повертає синус вказаного кута
COS() Повертає косинус вказаного кута
TAN() Повертає тангенс вказаного кута

Ми навели лише кілька основних функцій, проте ви завжди можете звернутися до документації вашої СУБД, щоб переглянути повний перелік функцій, що підтримуються з їх детальним описом.

Наприклад, напишемо запит для отримання кореня квадратного для чисел в стовпці Amount за допомогою функції SQR():

SELECT Amount, SQR(Amount) AS Amount_SQR FROM Sumproduct

3. Функції SQL для обробки дати та часу

Функції маніпулювання датою та часом являються одними з найважливіших і часто використовуваних функцій SQL. В базах даних значення дат та часу зберігаються в спеціальному форматі, тому їх неможливо використовувати напряму без додаткової обробки. Кожна СУБД має свій набір функцій для обробки дат, що, нажаль, не дозволяє переносити їх на інші платформи та реалізації SQL.

Список деяких функцій для обробки дати та часу в СУБД Access:

Знак операції
Значення
DatePart() Повертає частину дати: рік, квартал, місяць, тиждень, день, годину, хвилини, секунди
Year(), Month() Повертає рік та місяць відповідно
Hour(), Minute(), Second() Повертає годину, хвилини та секунди вказаної дати
WeekdayName() Повертає назву дня тижня

Подивимось на прикладі як працює функція DatePart():

SELECT Date1, DatePart("m", Date1) AS Month1 FROM Sumproduct

Функція DatePart() має додатковий параметр, який нам дозволяє відобразити необхідну частину дати. В прикладі ми використали значення параметра "m", який відображає номер місяця (таким же чином ми можемо відобразити рік - "yyyy", квартал - "q", день - "d", тиждень - "w", годину - "h", хвилини - "n", секунди - "s" тощо).

4. Статистичні функції SQL

Статистичні функції допомагають нам отримати готові дані без їх вибірки. SQL-запити з цими функціями часто використовуються для аналізу та створення різноманітних звітів. Прикладом таких вибірок може бути: визначення кількості рядків в таблиці, отримання суми значень по певному полю, пошук найбільшого/найменшого або середнього значення в зазначеному стовпці таблиці. Також зазначимо, що статистичні функції підтримуються усіма СУБД без якихось особливих змін в написанні.

Список статистичних функцій в СУБД Access:

Знак операції
Значення
COUNT() Повертає число рядків в таблиці або стовпці
SUM() Повертає суму значень в стовпці
MIN() Повертає найменше значення в стовпці
MAX() Повертає найбільше значення в стовпці
AVG() Повертає середнє значення в стовпці

Приклади використання функції COUNT():

SELECT COUNT(*) AS Count1 FROM Sumproduct - повертає кількість усіх рядків в таблиці

SELECT COUNT(Product) AS Count2 FROM Sumproduct - повертає кількість усіх непорожніх рядків в полі Product

Ми навмисно видалили одне значення в стовпці Product, щоб показати різницю в роботі двох запитів.

Приклади використання функції SUM():

SELECT SUM(Quantity) AS Sum1 FROM Sumproduct WHERE Month = 'April'

Даним запитом ми відобразили загальну кількість проданого товару в квітні місяці.

SELECT SUM(Quantity*Amount) AS Sum2 FROM Sumproduct

Як бачимо, в статистичних функціях ми також можемо здійснювати обчислення над кількома стовпцями з використанням стандартних математичних операторів.

Приклад використання функції MIN():

SELECT MIN(Amount) AS Min1 FROM Sumproduct

Приклад використання функції MAX():

SELECT MAX(Amount) AS Max1 FROM Sumproduct

Приклад використання функції AVG():

SELECT AVG(Amount) AS Avg1 FROM Sumproduct

Статті по темі:

  • SQL-Урок 6. Розрахункові (обчислювальні) поля
  • SQL-Урок 8. Групування даних (GROUP BY)