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.
-
На які групи поділяються вбудовані функції язика?
-
Дайте коротку характеристику та перерахуйте відомі вам математичні функції
-
Дайте коротку характеристику та перерахуйте відомі вам рядкові функції.
-
Дайте коротку характеристику та перерахуйте відомі вам функції обробки дати та часу.