Представления

17
Представления

Upload: clayton-russo

Post on 30-Dec-2015

39 views

Category:

Documents


1 download

DESCRIPTION

Представления. S_EMP Table. Что такое представления?. EMPVU45 View. Преимущества представления. Ограничение доступа к базе данных Упрощение запросов Разные способы показа одних и тех же данных. Создание представлений: синтаксис. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Представления

Представления

Page 2: Представления

Что такое представления?ID LAST_NAME FIRST_NAME TITLE DEPT_ID

1 Velasquer Carmen President 50

2 Ngao LaDoris VP, Operations 41

3 Nadayama Midor VP, Sales 31

4 Qick-To-See Mark VP, Finance 10

5 Ropeburn Audry VP, Administrator 50

6 Urghart Molly Warehouse Manager 41

7 Menchu Robeka Warehouse Manager 42

8 Biri Ben Warehouse Manager 43

9 Catchpole Antoinetts Warehouse Manager 44

10 Havel Marta Warehouse Manager 45

11 Magee Colin Sales Representative 31

12 Giljum Henry Sales Representative 32

13 Segeghi Yanry Sales Representative 33

14 Mai Sales Representative 34

15 Andre Sales Representative 35

16 Elena Stock Clerk 41

17 George Stock Clerk 41

18 Akira Stock Clerk 42

19 Vikram Stock Clerk 42

20 Chad Stock Clerk 43

21 Eddie Stock Clerk 44

22 Patel Radha Stock Clerk 34

23 Dancs Bela Stock Clerk 45

24 Schwartz Sylvie Stock Clerk 45

ID LAST_NAME TITLE

10 Havel Warehouse Manager

24 Dancs Warehouse Manager

25 Schwartz Stock Clerk

S_EMP Table

EMPVU45 View

Page 3: Представления

Преимущества представления

• Ограничение доступа к базе данных• Упрощение запросов• Разные способы показа одних и тех же данных

Page 4: Представления

Создание представлений: синтаксис

• Представление создается путем включения подзапроса в команду CREATE VIEW

• Подзапрос может содержать сложную команду SELECT

• Использование в подзапросе предложения ORDER BY не разрешается

CREATE [OR REPLAСE] [FORCE|NOFORCE] VIEW view [(alias[, alias]…)]

AS subquery

[WITH CHECK OPTION [CONSTRAINT constraint]]

[WITH READ ONLY]

Page 5: Представления

Простые и сложные представления

Простые представления

Сложные представления

Количество таблиц Одна Одна или больше

Содержит функции Нет Да

Содержит группы данных

Нет Да

Операции DML над представлением

Да Нет

Page 6: Представления

Создание представления: пример

• Создайте представление EMPVU45, включающее учетный номер, фамилию и должность каждого служащего отдела номер 45

• Получите описание представления с помощью команды DESCRIBE SQL*Plus

• Произведите выборку данных путем ввода команды SELECT со ссылкой на это представление

SQL> CREATE VIEW empvu45

2 AS SELECT id, last_name, title

3 FROM s_emp

4 WHERE dept_id=45;

View created

Page 7: Представления

Создание представления: пример

• Создайте представление с псевдонимами столбцов в подзапросе

• Выберете столбцы из этого представления по заданному псевдониму

SQL> CREATE VIEW salvu41

2 AS SELECT id, first_name FIRST, last_name

3 LAST, salary MONTHLY_SALARY

4 FROM s_emp

5 WHERE dept_id=41;

View created

Page 8: Представления

Изменение представления: пример

• Измените представление EMPVU45 с помощью команды CREATE OR REPLAСE. Добавьте псевдоним для каждого столбца

• Псевдонимы столбцов в команде CREATE VIEW указываются в таком же порядке, как столбцы в подзапросе

SQL> CREATE OR REPLAСE VIEW empvu45

(id_number, employee, job)

2 AS SELECT id, last_name, title

3 FROM s_emp

4 WHERE dept_id = 45;

View created

Page 9: Представления

Создание сложного представления: пример

Создание сложного представления с групповыми функциями для выбора

данных таблиц.

SQL> CREATE VIEW dept_sum_vu

(name, minsal, maxsal, avgsal)

AS SELECT d.name, MIN(e.salary),

MAX(e.salary), AVG(e.salary)

FROM s_emp e, s_dept d

WHERE e.dept_id=d.id

GROUP BY d.name;

View created.

Page 10: Представления

Правила выполнения операций DML над представлением

• Операции DML могут быть выполнены только с простым представлением.

• Удаление строк невозможно, если представление содержит следующее:

- условие соединения

- групповые функции

- предложение GROUP BY

- команду DISTINCT

Page 11: Представления

Правила выполнения операций DML над представлением

• Нельзя изменять данные в представлении, если оно содержит:

- одно из вышеуказанных условий.- столбцы, описанные как выражения.- псевдостолбец ROWNUM.• Нельзя добавлять данные в представление, если оно

содержит:- Одно из вышеперечисленных условий- Какие-либо столбцы NOT NULL, не выбранные в

представлении.

Page 12: Представления

Представление WITH CHECK OPTION

• Необходимо следить за тем, чтобы результаты операций DML оставались в пределах домена представления.

• Попытка изменить номер отдела для какой-либо строки в представлении закончится неудачей, т.к. при этом нарушится ограничение CHECK OPTION.

SQL> CREATE OR REPLAСE VIEW empvu41

2 AS SELECT *

3 FROM s_emp

4 WHERE dept_id = 41

5 WITH CHECK OPTION CONSTRAINT empvu41_ck;

View created.

Page 13: Представления

Запрет операций DML

• Параметр WITH READ ONLY в определении представления запрещает операции DML с этим представлением.

• При попытке выполнить операцию DML над какой-либо строкой представления, сервер Oracle выдает сообщение об ошибке ORA-01732.

SQL> CREATE OR REPLAСE VIEW empvu45

2 (id_number, employee, job)

3 AS SELECT id, last_name, title

4 FROM s_emp

5 WHERE dept_id = 45

6 WITH READ ONLY;

View created.

Page 14: Представления

Просмотр определения представления

Имя представления и его определения содержатся в таблице словаря данных USER_VIEWS.

SQL> SELECT view_name, text

2 FROM user_views;

Page 15: Представления

Удаление представления: пример

Удаление представления не вызывает потери данных, т.к. в основном представления лежат реальные таблицы базы данных.

SQL> DROP VIEW empvu45;

View dropped.

Page 16: Представления

Заключение

• Представление создается на основе данных других таблиц или других представлений.

• Представление – это окно для просмотра или изменения данных базовой таблицы.

• Преимущества представления:- Ограничение доступа к базе данных- Упрощение запросов- Независимость данных- Различные способы показа одних и тех же данных- Возможность удаления без потери данных, лежащих

в его основе

Page 17: Представления

Заключение

• Представление может быть простым (основанным на данных одной таблицы) и сложным (основанным на данных нескольких таблиц или содержащим группы или функции).

• Представления могут быть предназначены только для чтения.

• Определение представления содержится в таблице USER_VIEWS словаря данных