Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6. Робота з SQL Server.docx
Скачиваний:
9
Добавлен:
22.11.2019
Размер:
121.61 Кб
Скачать

6.5.7. Вкладені запити

Запити можуть керувати іншими запитами. Це робиться шляхом вкладання одного запиту всередину умови другого запиту. Зазвичай внутрішній запит генерує значення, яке перевіряється в умові зовнішнього запиту, який визначає вірне воно чи ні. Наприклад, відоме ім’я торгового агента – Шостак Т.Х., але не відомий його код (cod). Необхідно вибрати всі здійснені ним операції з таблиці „Обсяг операцій”(obsag). Запит матиме наступний вигляд:

select *

from obsag

where cod = ( select cod

from stat

where prizv =’Шостак Т.Х.’)

Щоб виконати зовнішній (головний) запит, спочатку виконується внутрішній запит (підзапит) всередині оператора where. При виконанні підзапиту розглядається таблиця „Штат рекламних агентів” (stat), в якій вибираються рядки, де поле prizv рівне ‘Шостак Т.Х.’, далі вибирається значення поля cod. Єдиним рядком буде cod =101. Далі отримане значення поміщається в умову головного запиту, замість самого підзапиту, так що умова набуде вигляду:

where cod = 101

В результаті головний запит виконується як звичайний.

Приклади вкладених запитів:

select *

from obsag

where suma < ( select avg(suma)

from obsag)

В результаті виконання запиту отримаємо дані про операції, здійснені на суму меншу за середньоарифметичну.

select *

from stat

where cod = ( select cod

from obsag

where month (data)=6 )

В результаті виконання запиту отримаємо cписок рекламних агентів, які здійснили операції у червні.

6. 6. Використання математичних та рядкових функцій

Математичні функції

Математичні функції застосовуються до числових типів даних, як INTEGER, FLOAT, REAL, MONEY. Вони знаходять значення з точністю до шести десяткових розрядів. Якщо при виконанні функції виникла помилка, то результат приймає значення NULL і з’являється повідомлення про помилку.

Основні математичні функції SQL наведені в таблиці 6.4.

Таблиця 6.4.

ACOS (float)

Арккосинус числа

ASIN (float)

Арксинус числа

CEILING (numeric)

Найменше ціле значеня, яке більше або рівне значенню виразу

FLOOR (numeric)

Найбільше ціле значеня, яке більше або рівне значенню виразу

EXP (float)

Експонента значення виразу

LOG10 (float)

Десятковий алгоритм значення виразу

LOG (float)

Натуральний алгоритм значення виразу

POWER (numeric, y)

Значення виразу в степені y

ABS (numeric)

Абсолютне значення виразу

RAND (integer)

Випадкове дійсне число, яке знаходиться в проміжку від 0 до 1 або до значення, вказаного в необов’язковому аргументі

ROUND (numeric, integer)

Округлення значення з точністю до integer

SQRT (float)

Квадратний корінь від значення виразу

Приклади використання математичних функцій:

  • Обчислення кореня квадратного з числа 81

    • select sqrt (81);

  • заокруглення значення числа 8.8888 з точністю до двох знаків після коми

    • select round (8.8888,2);

    • select round (sqrt(7),2);

  • знаходження значення 563

    • select power (56,3);

  • знаходження найменшого цілого значення поля suma

    • select ceiling (suma)

from obsag.

Рядкові функції

Основні рядкові функції SQL наведені в таблиці 6.5.

Таблиця 6.5.

ASCII (char)

Знаходить ASCII-код символа, який є крайнім зліва у виразі

CHAR (integer)

Перетворює ASCII- код в символ

LOWER (char)

Перетворює великі літери в малі

UPPER (char)

Перетворює малі літери в великі

LTRIM (char)

Знищує пробіли на початку рядка

RTRIM (char)

Знищує пробіли в кінці рядка

STR(float[,length [,decimal]])

Перетворює числові дані у символьні

Приклади використання рядкових функцій:

  • перетворення символа в десятковий ASCII-код і навпаки

    • select ASCII (‘Apple’);

    • select char (65);

  • знищення пробілів на початку і в кінці рядка

    • select rtrim (ltrim (‘ Apple ’);

  • міняє регістр символів

    • select lower (‘ABCD’).

Функції для роботи з датою

Для виконання операцій над даними типу DATE існує декілька функцій. Вони використовуються для виконання арифметичних операцій над даними типу DATETIME і SMALLDATETIME.

Основні функції для роботи з датою SQL наведені в таблиці 6.6.

Таблиця 6.6.

DATENAME(date_part, date)

Перетворює певну частину дати у символьний рядок

DATEPART (date_part, date)

Перетворює певну частину дати у дане цілого типу

GETDATE ()

Перетворює дату і час в стандартний формат SQL Server і має тип DATETIME

DATEADD (date_part, number, date)

Знаходить значення, яке дорівнює вказаній в параметрі даті плюс додатковий інтервал

DATEDIFF (date_part, date1, date2)

Знаходить різницю між частинами двох різних дат

Приклади використання функції для роботи з датою:

  • перетворення символа в десятковий ASCII-код і навпаки

    • select ASCII (‘Apple’);

    • select char (65);

  • знищення пробілів на початку і в кінці рядка

    • select rtrim (ltrim (‘ Apple ’);

  • міняє регістр символів

    • select lower (‘ABCD’).

Контрольні запитання

  1. Перерахуйте основні можливості мови SQL.

  2. Що характеризує поняття „тип даних поля”?

  3. Опишіть основні типи даних SQL.

  4. Охарактеризуйте оператори SQL для визначення даних.

  5. Охарактеризуйте оператори SQL для модифікації записів.

  6. Опишіть формат оператора SELECT.

  7. Як створюються прості та складені запити в SQL?

  8. Як і для чого створюються вкладені запити?

  9. Перерахуйте стандартні функції SQL.