Сейчас на сайте
Сейчас на сайте 0 пользователей и 0 гостей.

Команда CREATE VIEW

Вы создаете представление командой CREATE VIEW. Она состоит из слов CREATE VIEW (СОЗДАТЬ ПРЕДСТАВЛЕНИЕ), имени представления которое нужно создать, слова AS (КАК), и далее запроса, как в следующем примере:

CREATE VIEW Londonstaff AS SELECT * FROM Salespeople WHERE city = ' London ';

Теперь Вы имеете представление, называемое Londonstaff. Вы можете использовать это представление точно так же как и любую другую таблицу. Она может быть запрошена, модифицирована, вставлена в, удалена из, и соединена с, другими таблицами и представлениями. Давайте сделаем запрос такого представления ( вывод показан в Рисунке 20.1):

SELECT * FROM Londonstaff;

SQL Execution Log

SELECT *

FROM Londonstaff;

snum sname city comm
1001 Peel London 0.1200
1004 Motika London 0.1100

Рисунок 20.1: Представление Londonstaff Когда вы приказываете SQL выбрать(SELECT) все строки ( * ) из представления, он выполняет запрос, содержащий в определении - Loncfonstaff, и возвращает все из его вывода. Имея предикат в запросе представления, можно вывести только те строки из представления, которые будут удовлетворять этому предикату. Вы могли бы вспомнить, что в Главе 15 , вы имели таблицу, называемую Londonstaff, в которую вы вставляли это же самое содержание ( конечно, мы понимаем что таблица - не слишком велика. Если это так, вы будете должны выбрать другое имя для вашего представления). Преимущество использования представления, по сравнению с основной таблицы, в том, что представление будет модифицировано автоматически всякий раз, когда таблица лежащая в его основе изменяется. Содержание представления не фиксировано, и переназначается каждый раз, когда вы ссылаетесь на представление в команде. Если вы добавите завтра другого, живущего в Лондоне продавца, он автоматически появится в представлении.

Представления значительно расширяют управление вашими данными. Это превосходный способ дать публичный доступ к некоторой, но не всей информации в таблице. Если вы хотите чтобы ваш продавец был показан в таблице Продавцов, но при этом не были показаны комиссии других продавцов, вы могли бы создать представление с Использованием следующего оператора ( вывод показан в Рисунке 20.2 )

CREATE VIEW Salesown AS SELECT snum, sname, city FROM Salespeople:

SQL Execution Log

SELECT *

FROM Londonstaff;

snum sname city
1001 Peel London
1002 Serres San Jose
1004 Motika London
1007 Rifkin Barcelona
1003 Axelrod New York

Рисунок 20.2: Представление Salesown Другими словами, это представление - такое же, как для таблицы Продавцов, за исключением того, что поле comm, не упоминалось в запросе, и следовательно не было включено в представление.