Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SQL_mova_strukturovanikh_zapitiv.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
933 Кб
Скачать
☆

4.8. Додаткові можливості

Тимчасові таблиці

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

Курсори

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

♦ вибрати певну сукупність даних (на зразок тимчасової таблиці, що містить ре­ зультати виконання оператора SELECT);

+ ініціювати послідовний перегляд сукупності записів;

+ проаналізувати конкретний запис, на який вказує курсор;

♦ виконати зовнішню операцію над поточним записом перш ніж перейти до на­ ступного.

Ще одним варіантом застосування курсору є тимчасове зберігання результа­тів запиту для подальшого використання. Якщо зовнішня програма вимагає бага­торазового використання певного набору записів, то створюється курсор, яким оперують замість багаторазового виконання оператора SELECT.

Для використання курсору потрібно:

  • створити курсор;

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

  • ініціювати за допомогою курсору послідовне перебирання записів з метою їх­ньої обробки;

  • закрити курсор після завершення роботи з ним (з можливим наступним від­криттям у разі потреби);

•♦• видалити курсор.

На відміну від таблиць, індексів, тригерів та збережених процедур, курсори не є об'єктами бази даних.

Збережені процедури

Збережені процедури - це об'єкти бази даних, які зазвичай містять велику кіль­кість директив SQL. Такі процедури можуть містити сукупність команд (склад­них запитів, операцій оновлення, додавання та видалення), що часто використо­вуються як єдине ціле. Збережена процедура дає змогу звернутися до неї як до функції, замість того, щоб послідовно записувати команди SQL, які вона містить. Значне зниження навантаження на канали зв'язку під час роботи користувачів із сервером теж є важливою перевагою збережених процедур, адже замість окремих багаторазових звернень до бази даних виконується єдине звернення до збереже­ної процедури.

Розширення SQL

Будь-яка СКБД розширює стандарт мови SQL, причому в багатьох випадках SQL трансформується в мову програмування, що надає усі можливості SQL. Наприк­лад, у Microsoft SQL Server таким розширенням є мова Transact-SQL, в Oracle —

мова PL/SQL. Кожна з них має переваги звичайних мов програмування, підтри­мує всі можливості стандарту ANSI SQL, а також розширює його.

Крім того, багато СКБД надають засоби для застосування SQL у традиційних мовах програмування. Існують два методи такого використання мови.

Статична SQL припускає вкладання безпосередньо в програмний код речення, що не може бути змінене під час виконання програми. Зазвичай статична SQL вимагає використання предкомпілятора. Наприклад, Oracle має предкомпілято-ри для використання SQL у мовах С, Pascal, Ada, COBOL та FORTRAN.

Динамічна SQL дає змогу програмувати побудову SQL-запитів, що створюю­ться під час виконання програми і передаються СКБД, яка, в свою чергу, передає знайдені дані змінним програми.

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

  1. Які можливості надає мова SQL?

  2. Як можна вивести всі стовпці таблиці?

  3. Для чого використовується модифікатор DISTINCT у фразі SELECT?

  4. Як перевизначити імена стовпців таблиці, отриманої в результаті виконання запиту?

  5. Що таке агрегатні функції? Перелічіть їх.

  6. Чи можна використовувати у фразі SELECT водночас імена стовпців та агрегатні функції, якщо немає фрази GROUP BY?

  7. Яке призначення фрази GROUP BY?

  8. Чи можна застосовувати агрегатні функції у фразі WHERE?

  9. Які вирази можна використовувати у фразі SELECT, коли наявна фраза GROUP BY?

  1. Для чого призначена фраза HAVING?

  2. Для чого призначена фраза ORDER BY? За якими стовпцями можна впорядкову­вати кінцеве відношення?

  3. Які є типи вкладених запитів? Чим вони відрізняються?

  4. Як використовуються невизначені значення?

  5. Назвіть два різновиди команди INSERT.

  6. Яке призначення команди UPDATE?

  7. Що можна видалити за допомогою команди DELETE?

  8. Які можливості надають команди CREATE TABLE, ALTER TABLE i DROP TABLE?

  9. Що таке віртуальні таблиці? Як вони використовуються?

  10. Для чого призначені транзакції?

  11. Що таке тригери? Які можливості вони надають?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]