 
        
        5 Вбудовані функції
Вбудовані функції, що є у розпорядженні користувачів при роботі з SQL, можна умовно розділити на наступні групи:
- 
математичні функції ; 
- 
рядкові функції ; 
- 
функції для роботи з датою і часом ; 
- 
функції конфігурування; 
- 
функції системи безпеки; 
- 
функції управління метаданими; 
- 
статистичні функції. 
Математичні функції
Короткий огляд математичних функцій представлений в таблиці.
Таблиця 12.1.
| ABS | обчислює абсолютне значення числа | 
| ACOS | обчислює арккосинус | 
| ASIN | обчислює арксинус | 
| ATAN | обчислює арктангенс | 
| ATN2 | обчислює арктангенс з урахуванням квадратів | 
| CEILING | виконує округлення вгору | 
| COS | обчислює косинус кута | 
| COT | повертає котангенс кута | 
| DEGREES | перетворить значення кута з радіан в градуси | 
| EXP | повертає експоненту | 
| FLOOR | виконує округлення вниз | 
| LOG | обчислює натуральний логарифм | 
| LOG10 | обчислює десятковий логарифм | 
| PI | повертає значення "пі" | 
| POWER | підносить число до ступеня | 
| RADIANS | перетворить значення кута з градуса в радіани | 
| RAND | повертає випадкове число | 
| ROUND | виконує округлення із заданою точністю | 
| SIGN | визначає знак числа | 
| SIN | обчислює синус кута | 
| SQUARE | виконує зведення числа в квадрат | 
| SQRT | витягує квадратний корінь | 
| TAN | повертає тангенс кута | 
SELECT Товар.Назва, Операція.Кількість Round(Товар.Ціна*Операція.Кількість*0.05,1)
AS Податок
FROM Товар INNER JOIN Операція ON Товар.КодТовара=Операція.КодТовара
Приклад 12.4. Використовування функції округлення до одного знака після коми для розрахунку податку.
Рядкові функції
Короткий огляд рядкових функцій представлений в таблиці.
Таблиця 12.2.
| ASCII | повертає код ASCII лівого символу рядка | 
| CHAR | за кодом ASCII повертає символ | 
| CHARINDEX | визначає порядковий номер символу, з якого починається входження підрядка в рядок | 
| DIFFERENCE | повертає показник збігу рядків | 
| LEFT | повертає вказане число символів з початку рядка | 
| LEN | повертає довжину рядка | 
| LOWER | переводить всі символи рядка в нижній регістр | 
| LTRIM | видаляє пропуски на початку рядка | 
| NCHAR | повертає за кодом символ Unicode | 
| PATINDEX | виконує пошук підрядка в рядку за вказаним шаблоном | 
| REPLACE | замінює входження підрядка на вказане значення | 
| QUOTENAME | конвертує рядок у формат Unicode | 
| REPLICATE | виконує тиражування рядка певне число раз | 
| REVERSE | повертає рядок, символи якого записані в зворотному порядку | 
| RIGHT | повертає вказане число символів з кінця рядка | 
| RTRIM | видаляє пропуски в кінці рядка | 
| SOUNDEX | повертає код звучання рядка | 
| SPACE | повертає вказане число пропусків | 
| STR | виконує конвертацію значення числового типу в символьний формат | 
| STUFF | видаляє вказане число символів, замінюючи новим підрядком | 
| SUBSTRING | повертає для рядка підрядок вказаної довжини із заданого символу | 
| UNICODE | повертає Unicode-код лівого символу рядка | 
| UPPER | переводить всі символи рядка у верхній регістр | 
SELECT Фірма [Прізвище]+""+Left([Ім'я],1)+"."+Left([По Батькові],1)+"." AS ФІО
FROM Клієнт
Приклад 11.5. Використовування функції LEFT для отримання ініціалів клієнтів.
Функції для роботи з датою і часом
Короткий огляд основних функцій для роботи з датою і часом представлений в таблиці.
Таблиця 12.3.
| DATEADD | додає до дати вказане значення днів, місяців, годинника і т.д. | 
| DATEDIFF | повертає різницю між вказаними частинами двох дат | 
| DATENAME | виділяє з дати вказану частину і повертає її в символьному форматі | 
| DATEPART | виділяє з дати вказану частину і повертає її в числовому форматі | 
| DAY | повертає число з вказаної дати | 
| GETDATE | повертає поточний системний час | 
| ISDATE | перевіряє правильність виразу на відповідність одному з можливих форматів введення дати | 
| MONTH | повертає значення місяця з вказаної дати | 
| YEAR | повертає значення року з вказаної дати | 
SELECT Year(Дата) AS Рік, Month(Дата) AS Місяць, Sum(Кількість) AS Заг_Кількість
FROM Операція
GROUP Year(Дата), Month(Дата)
Приклад 11.6. Використовування функцій YEAR і MONTH для визначення загальної кількості товару, проданого за кожний місяць кожного року.
Контрольні питання
- 
Що таке, у вашому розумінні, функція користувача? В чому полягає її призначення? 
- 
Які класи функцій користувача ви можете назвати? 
- 
Дайте коротку характеристику класу функцій Scalar. 
- 
Дайте коротку характеристику класу функцій Inline. 
- 
Дайте коротку характеристику класу функцій Multi-statement. 
- 
Які аналогії можна провести між функціями користувача і збереженими процедурами? 
- 
Дайте опис створення функції користувача типу Scalar. 
- 
Дайте опис створення функції користувача типу Inline. 
- 
Дайте опис створення функції користувача типу Multi-statement. 
- 
На які групи поділяються вбудовані функції язика? 
- 
Дайте коротку характеристику та перерахуйте відомі вам математичні функції 
- 
Дайте коротку характеристику та перерахуйте відомі вам рядкові функції. 
- 
Дайте коротку характеристику та перерахуйте відомі вам функції обробки дати та часу. 
