Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Часть 3. Модификация данных через представление




Задание 11.

Данные, предъявляемые пользователю через представление, могут изменяться с помощью команд модификации DML, но при этом факти­ческая модификация данных будет осуществляться не в вирту­альной таблице-представлении, а в соответству­ющей базовой таблице.

 

Сначала выполните обычный запрос на обновление

USE Торговая_фирма

GO

UPDATE  Продажи

SET  Количество_ед_товара = 20

WHERE  Количество_ед_товара = 10

 

Затем внесите изменения в таблицу Продажис помощьюпредставления Товары_Количество_2

 

USEТорговая_фирма

GO

INSERT INTO Товары_Количество_2

VALUES  ('Вишня',  90,  20.04.2010)

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

Часть 4. Примеры проверки данных, вставляемых в таблицы с помощью представлений

(ключевое слово WITH CHECK OPTION)

Задание 12.

1. Создайте представление, отображающее поставщиков из заданных городов

USEТорговая_фирма

GO

CREATE VIEW  Поставщики_V

AS  

SELECT Название_фирмы

FROM        Поставщики

WHERE Город   LIKE 'Мос%'

    OR Город LIKE 'Саратов%'

WITH  CHECK  OPTION

 

2. Выполните оператор SELECT * FROM  Поставщики_V

Получите список поставщиков из Москвы и Саратова.

3. Теперь предпримем попытку обновить одну из строк с помощью этого представления – внести в таблицу поставщика из города с названием, отличным от допустимых значений, например, из Твери:

USE  Торговая_фирма

GO

UPDATE  Поставщики_V

SET  Город = 'Астрахань'

WHEREID_Поставщика = 1

 

Посмотрите, к чему приводит попытка выполнить этот оператор.

Как просмотреть коды представления

Можно воспользоваться процедурой sp_helptext.

Пример 13.

Exec   sp_helptext   Поставщики_V

Удаление представлений

Для удаления представления используется стандартная конструкция

DROP VIEW <имя представления > [,<имя представления 2 >[,…n]]

 

Пример 14. Связывание представления c таблицей.

 

Create view А

as

select Название_Товара, Категория from Товары

‘---------------------------------------------------------------------------------------

Create view В

as

select Категория_товара, Название_товара

from А inner joinКатегории_товаров

on Категории_товаров.id_категории = А.Категория

-----------------------

select * from В

 

Замечание. При связке представления с таблицей в преставлении должно находиться поле с внешним ключом!

Замечание.Запросы, содержащие вычисление итоговых результатов со словом COMPUTE, в представления не включаются (попытки их использования приводят к диагностике об ошибке).

 

 

Задания для самостоятельной работы

1. В представлении покажите наиболее активных клиентов. Задайте имена выводимым столбцам.

2. Создать представление, позволяющее получать сведения о продажах за прошлый год.

3. Приведите пример, в котором используется соединение представления с другими таблицами базы данных

4. Создайте представление с группировкой и агрегирующими функциями.

5. Создайте представление с вычислениями.










Последнее изменение этой страницы: 2018-04-12; просмотров: 560.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...