Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция - Представления.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
408 Кб
Скачать
☆

Часть 2. Примеры создания представлений

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

В окне запросов наберем текст

CREATE VIEW Клиенты_l

AS

SELECT Фамилия, Город FROM Клиенты

WHERE Город = 'Москва'

Выполним набранный

Выборка данных из представления:

SELECT * FROM Клиенты_l

Обращение к представлению осуществляется с помощью оператора SELECT как к обычной таблице. То есть представление можно использовать в команде так же, как и любую дру­гую таблицу.

К представлению можно строить запрос, модифицировать представление и соединять его с другими таблицами базы данных.

Попытаемся выполнить команду:

INSERT INTO Клиенты_1 VALUES ( 'Петров', 'Самара')

Эта команда допустима, и строка будет добавлена в таблицу Клиенты с помощью представления Клиенты_1. Но эта добавленная строка не будет отображаться в представлении.

Иногда такой подход может стать проблемой, т.к. данные уже находятся в таблице, но пользователь их не видит и не в состоянии выполнить их удаление или модификацию.

Для исключения подобных моментов служит WITH CHECK OPTION в опреде­лении представления.

Пример 2. Модифицируем созданное представление

ALTER VIEW Клиенты_1

SELECT Фамилия, Город

FROM Клиенты

WHERE Город = 'Москва'

WITH CHECK OPTION

Теперь вставляемые данные (или при попытке модификации данных через такое представление) будут проверяться на соответствие критериям, определенным в конструкции WHERE, определенной в операторе SELECT.

И приведенный выше оператор вставки будет отбрасываться.

Но, если вы вставите эти данные эти же данные в базовую таблицу, то все пройдет успешно.

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

Создадим это представление с помощью программы Management Studio.

  • Откройте SQL Server Management Studio;

  • В базе данных «Торговая_фирма» выделите объект Представления;

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

  • В открывшемся окне редактора представлений сформулируйте запрос

SELECT Товары.Название_товара, Продажи.Количество_ед_товара

FROM Товары INNER JOIN Продажи

ON Товары.ID_товара = Продажи.Товар

  • Выполните сформированный запрос;

  • Сохраните представление под именем Товары_количество_1;

  • Откройте созданную таблицу-представление.

Рис. 1. Создание представления с помощью SQL Server Management studio

Пример 4. С помощью запроса требуется создать представление, аналогичное описанному в примере 4.

  • Нажмите Создать запрос;

  • Наберите следующий код:

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

GO

CREATE VIEW Товары_Количество_2

AS

SELECT dbo.Товары.Название_товара, dbo.Продажи.Количество_ед_товара

FROM dbo.Товары INNER JOIN

dbo.Продажи ON dbo.Товары.Id_товара = dbo.Продажи.Товар

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

Пример 5. При создании представления можно задавать псевдонимы полей.

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

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

GO

CREATE VIEW Товары_Количество_3 (Товар, Продано)

AS

SELECT Товары.Название_товара, Продажи.Количество_ед_товара

FROM Товары INNER JOIN

Продажи ON Товары.Id_товара = Продажи.Товар

Выполните его командой

SELECT * FROM Товары_Количество_3

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

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

Это можно сделать двумя способами:

Способ 1. С помощью Management studio. Для этого выделите представление Товары_Количество_2 и выберите команду контекстного меню Изменить представление.

Способ 2. С помощью запроса. Для этого выделите представление Товары_Количество_2 и выберите команду Правка.

Во втором случае вы получите коды:

SET QUOTED_IDENTIFIER ON - - Включен контроль приращения размеров файла данных

GO

SET ANSI_NULLS OFF - - Включен контроль NULL-значений

GO

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

AS

SELECT

Товары.Название_товара,

Продажи.Количество_ед_товара,

Продажи.Дата

FROM

Товары INNER JOIN Продажи

ON Товары.Id_товара = Продажи.Товар

GO

SET QUOTED_IDENTIFIER OFF - - Выключен контроль приращения размеров файла данных

GO

SET ANSI_NULLS ON - - Выключен контроль NULL-значений

GO

Пример 7.

Теперь с помощью представления добавим новые данные в одну из таблиц базы данных.

Выполним команду

INSERT INTO Товары_Количество_2 VALUES (‘Ряженка’, 12, ‘12/09/10’)

Эта команда допустима, и строка будет добавлена в таблицу Товары (если в остальных полях таблиц допустимы значения NULL).

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