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

SQL

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

Представление это объект БД на основе одной или нескольких таблиц и/или других представлений.

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

Ограниченный доступ

 

 

 

Упрощенное создание

к данным

 

 

сложных запросов

 

 

 

 

 

 

 

 

Независимость от

 

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

данных

 

разному одних и тех

 

 

же данных

 

 

 

 

 

 

SQL

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

CREATE VIEW имя_представления [(имя_колонки, …)] AS запрос имя_представления – именует представление

имя_колонки – именует колонку представления.

AS – указывает начало определения представления.

запрос – определяет представление.

 

View

View

 

 

 

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DML- ! "

 

 

VIEW

 

 

 

 

 

SQL

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

Пример 1

CREATE VIEW MA_PROJ_V AS

SELECT * FROM PROJECT

WHERE SUBSTR(ProjNo, 1, 2) = ’MA’

Пример 2

CREATE VIEW dept_sum_v (name, minsal, maxsal, avgsal)

AS

 

SELECT

d.department_name,

 

MIN(e.salary),

MAX(e.salary),

 

AVG(e.salary)

FROM

employees e JOIN departments d

ON

(e.department_id = d.department_id)

GROUP BY d.department_name;

SQL

Процедурные элементы Transact SQL

Переменные

DECLARE @var1 <type>

SET @var1 = <значение>

SELECT @var1 = Ai

Операторы циклов

WHILE <логическое выражение> BEGIN

...

END

Условные операторы

IF(<логическое выражение) BEGIN

...

END

ELSE

BEGIN

...

END

SQL

Триггеры, как механизм ограничений целостности

Триггер — программный код, автоматически вызываемая системой при наступлении заданного события.

Срабатывание триггеров могут вызывать DML события: INSERT, UPDATE, DELETE.

Таблица inserted: вставляемые данные. Таблица deleted: удаляемые данные.

Вызов DML операции

Фиксация данных

время

instead of триггер

after триггер

 

SQL

Триггры, как механизм ограничений целостности

CREATE TRIGGER имя_триггера

ON имя_целевого_объекта время_активации_триггера контролируемая операция тело_триггера

имя_триггера – определяет имя триггера

имя_целевого_объекта – задает целевую таблицу

время_активации_триггера – определяет этап срабатывания триггера: INSTEAD OF, AFTER

контролируемая операция – определяет на какое SQL-событие срабатывает триггер

Тело триггера указывает действие, которое должно быть выполнено при активации триггера

SQL

Триггры, как механизм ограничений целостности

Триггер AFTER:

.! .

" ! # $% & . ROLLBACK.

SQL

Триггры, как механизм ограничений целостности

Пример. Запретить добавлять запись о сотруднике зарплата которого, менее 10000 рублей

CREATE TRIGGER Tr1 ON emp

AFTER INSERT AS

BEGIN

if (select salary from inserted)<10000 rollback

print‘ Запрещено добавлять запись о сотруднике с окладом менее 10 000 рублей'

END

SQL

Курсоры

Курсор-указатель на контекстную область памяти.

Контекстная область

 

 

 

 

 

 

 

 

 

 

 

Номер

должность

Зарплата

 

 

 

 

отдела

 

 

 

 

 

 

 

 

 

 

 

 

 

1

550

100

 

 

Активный набор

 

 

 

 

 

 

 

1

550

100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

552

80

 

 

 

 

 

 

 

 

 

 

 

2

660

200

 

 

 

 

 

 

 

 

 

 

 

2

661

300

 

 

 

 

 

 

 

 

 

 

 

3

770

100

 

 

 

 

 

 

 

 

 

 

 

3

770

100

 

 

 

 

 

 

 

 

 

 

 

3

773

180

 

 

 

 

 

 

 

SQL

Курсоры

Функции выполняемые курсором:

Обрабатывать последовательно, строка за строкой, наборы строк возвращаемые запросом.

Контроль текущей обрабатываемой строки запроса, на основе которого сформирован курсор.

Возможность программисту управлять курсором в процедурах или функциях.

Соседние файлы в папке Презентации БД (ВФ)