Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
07.02.2016
Размер:
57.86 Кб
Скачать

ЛАБОРАТОРНА РОБОТА №4

ТЕМА РОБОТИ: Створення,перейменування ,видалення видів.

МЕТА РОБОТИ: Вивчити способи створення,перейменування, видалення видів.

ТЕОРЕТИЧНІ ВІДОМОСТІ

Створення й знищення подань

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

Синтаксис пропозиції CREATE VIEW має вигляд

CREATE VIEW ім'я_подання

[(стовпець[,стовпець] ...)]

AS підзапит

[WITH CHECK OPTION];

де підзапит, що випливає за AS й є визначенням даного подання, не виконується, а просто зберігається в каталозі;

необов'язкова фраза "WITH CHECK OPTION" (з перевіркою) указує, що для операцій INSERT й UPDATE над цим поданням повинна здійснюватися перевірка, що забезпечує задоволення WHERE фрази підзапита;

Cписок імен стовпців повинен бути обов'язково визначений лише в тих випадках, коли:

а) хоча б один зі стовпців підзапита не має імені (створюється за допомогою вираження, SQL-функції або константи);

б) два або більше стовпці підзапита мають те саме ім'я;

якщо ж список відсутній, то подання успадковує імена стовпців з пыдзапита.

Наприклад, створимо подання М'ясні_блюда

CREATE VIEW М'ясні_блюда

AS SELECT БЛ, Блюдо, В, Вихід

FROM Блюда

WHERE Основа = 'М'ясо',

яке може розглядатися користувачем як нова таблиця в базі даних.

Розглянемо процедуру створення подань за допомогою утиліти SQL SERVER ENTERPRISE MANAGER.

Необхідно вибрати групу VIEWS у списку об'єктів бази даних ,після чого скориставшись командою NEW VIEW меню ACTION ,завантажити дизайнер подань .Діалогове вікно дизайнера подань складається з наступних основних частин :

DIAGRAM PANE (панель диаграм ),

GRID PANE(панель-список),

SQL PANE(SQL-панель ),

RESULT PANE (панель результатів ).

Розглянемо процес створення подань на прикладі навчальної бази даних EDUCATION. Тут необхідно створити подання ,що буде зв'язувати таблиці PREDMET й TEACHERS .

Отже, після створення подання, варто додати в нього необхідні таблиці PREDMET й TEACHERS. Для цього використається кнопка ADD TABLE , завдяки якій на екран буде виведене діалогове вікно з переліком наявних у базі даних таблиць. При виборі імені поля за допомогою прапорця, воно автоматично з'являється в списку GRID PANE й в області оператора SELECT на панелі SQL PANE. Для рішення поставленого завдання необхідно вибрати поля TFAM, TIMA,TOTCH з таблиці TEACHERS і поля PNAME ,HOURS з таблиці PREDMET. У цьому випадку SQL-команда буде мати вигляд:

SELECT TEACHERS .TFAM,TEACHERS .TIMA ,

TEACHERS.TOTCH ,PREDMET.PNAME ,

PREDMET.HOURS

FROM PREDMET INNER JOIN

TEACHERS ON PREDMET.TNUM= TEACHERS.TNUM

(створене подання необхідно зберегти).

Перейменування стовпців у видах

У видах також можна перейменовувати стовпці таблиць, на основі яких визначені ці види. Для присвоєння альтернативних імен стовпцям, на які посилається вид, використається такий синтаксис:

CREATE VIEW VIEW_NAME [ (VIEW_COLUMN_L ,... VIEW_COLUMN_N )] AS

SELECT STATEMENT ...

FROM TABLE_ NAME OR VIEW_NAME

[WHERE CLAUSE ]

приклад

CREATE VIEW VIEW8(a,b,c)

AS

SELECT NAME ,DEPARTMENT,BADGE

FROM EMPLOYEE

SELECT * FROM VIEW8

A b c

BOB SMITH SALES 1834

FRED SANDERS SALES 1051

STAN HUMPHRIES FIELD SERVICE 3211

FRED STANHOPE FIELD SERVICE 6732

(4 ROW ( S ) AFFECTED)

Перейменування видів

Для перейменування виду можна використати системну процедуру

Sp_ rename old_name ,new_name

Параметри old_name й new_name відокремлюються друг від друга коми. У наступному прикладі вид Sales1 перейменовується в Sales2. Після перейменування скористаємося процедурою sp_depends, щоб показати ,що перейменований вид як і раніше заснований на постійній таблиці Employee.

Sp_rename Sales1,Sales2

The object was renamed to 'Sales2'

Sp_depends.Sales2

In the current database ,the specified object references the following:

Name type updated selected column

Dbo.Employee user table no yes name

Dbo.Employee user table no yes department

Dbo.Employee user table no yes badge

Видалення видів

Знищення непотрібних подань виконується за допомогою пропозиції DROP VIEW (знищити подання), що має наступний формат:

DROP VIEW подання.

Операції вибірки з подань

Створивши подання М'ясні_блюда користувач може вважати, що в базі даних реально існує така таблиця й дати, наприклад, запит на одержання з її всіх даних:

SELECT *

FROM М'ясні_блюда;

результат якого має вигляд

БЛ

Блюдо

В

Вихід

2

Салат м'ясний

З

200

6

М'ясо з гарніром

З

250

9

Суп харчо

З

500

13

Бастурма

Г

300

14

Бефстроганов

Г

210

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

CREATE VIEW Гарячі_м'ясні_блюда

AS SELECT Блюдо, Продукт, Вага

FROM М'ясні_блюда, Склад, Продукти

WHERE М'ясні_блюда.БЛ = Склад.БЛ

AND Продукти.ПР = Склад.ПР

AND В = 'Г';

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

SELECT Блюдо, Продукт, Вага

FROM Гарячі_м'ясні_блюда

WHERE Блюдо IN

( SELECT Блюдо

FROM Гарячі_м'ясні_блюда

WHERE Продукт = 'Помідори')

і одержати:

Блюдо

Продукт

Вага

Бастурма

Яловичина

180

Бастурма

Помідори

100

Бастурма

Лук

40

Бастурма

Зелень

20

Бастурма

Масло

5

Легко помітити, що даний запит, що здійснює вибір даних через два подання, виглядає для користувача точно так само, як звичайний SELECT, що оперує звичайною базовою таблицею. Однак СУБД перетворить його при виконанні в еквівалентну операцію над лежачими в основі базовими таблицями (перед виконанням проводить злиття виданого користувачем SELECT із пропозиціями SELECT з описів подань, що зберігаються в каталозі).

ПОРЯДОК ПРОВЕДЕННЯ ЛАБОРАТОРНОЇ РОБОТИ

  1. Вивчити теоретичні відомості.

  2. Створити вид на основі однієї таблиці.

  3. Створити вид на основі декількох таблиць.

  4. Створити вид на основі виду та таблиці.

  5. Вивести певні стовпці у вигляді.

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

  7. Спроектувати складні види.

  8. Створити види за допомогою Enterprise Manager.

  9. Предоставити письмовий звіт по работі.

ПИТАННЯ ДЛЯ САМОПЕРЕВІРКИ

  1. Дайте визначення терміну “подання”.

  2. Наведіть приклад створення подання.

  3. У яких випадках список імен стовпців повинен бути обов’язково визначений?

  4. Наведіть приклад створення подання.

  5. Як присвоїти альтернативні імена стовпцям?

  6. Яка процедура використовується для перейменування виду? Назвіть параметри цієї процедури.

  7. Наведіть приклади запитів.

8

Соседние файлы в папке Учебное пособие