
- •Среда программирования vb.
- •Лабораторная работа №2 (проверочная) Рабочее задание:
- •Лабораторная работа №3.
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Лабораторная работа №9
- •Лабораторная работа №10
- •Лабораторная работа №11
- •Создание таблицы.
- •Первичные и внешние ключи.
- •Изменение таблицы, которая уже была создана.
- •Исключение таблицы.
- •Лабораторная работа №12 «Создание запросов»
- •Команда Select.
- •Реляционные операторы.
- •Булевы операторы.
- •Специальные операторы.
- •Использование выражений в командах Select.
- •Работа с данными с помощью функций агрегирования.
- •Использование множества таблиц в одном запросе.
- •Вложение запросов.
- •Использование агрегатных функций в подзапросах.
- •Применение подзапросов, которые формируют множественные строки с помощью in.
- •Связанные подзапросы.
- •Представления (view).
- •Групповые представления.
- •Удаление представлений.
Связанные подзапросы.
При применении подзапросов, во внутреннем запросе (вложенном) можно ссылаться на таблицу, имя которой указано в предложении FROM внешнего запроса, тем самым формируя связанный подзапрос. В этом случае подзапрос выполняется повторно, по одному разу для каждой строки таблицы из основного запроса.
Например, предположим необходимо узнать имена и номера продавцов, имеющих более одного покупателя. Для получения таких данных следует использовать связанный запрос:
SELECT person_n, name
FROM Prodav main
WHERE 1 <
(SELECT COUNT(*)
FROM Pokypat
WHERE person_n=main.person_n);
В запросе слово main является префиксом, для облегчения связи между таблиц. При отсутствии префикса в виде имени таблицы, sql сначала предполагает, что извлекаются поля той таблицы, имя которой указано в предложении FROM текущего запроса. Поэтому префиксы, содержащие имя таблицы, обычно необходимы в связанных подзапросах для того, чтобы избавиться от подобных предположений.
Представления (view).
Представление (VIEW) – это объект, который не содержит собственных данных. Это своего рода таблица, содержимое которой берется из других таблиц (базовых) посредством выполнения запроса. Поскольку значения в таблицах меняются, это автоматически приводит к соответствующим изменениям в представлениях. Представления подобны окнам, через которые просматривается информация, реально хранимая в базовых таблицах. В действительности же это запросы, выполняемые всякий раз, когда представление является объектом команды. В этот момент выходные данные запроса и становятся содержимым представления.
Представление определяется с помощью команды CREATE VIEW, состоящей из ключевых слов CREATE VIEW (т.е. создать представление), имени создаваемого представления и ключевого слова AS, после которого следует запрос:
CREATE VIEW имя представления AS SELECT * FROM имя таблицы WHERE условие;
Например, чтобы сразу получить данные о тех, кто проживает в городе Москва, можно сначала создать представление, а потом вызывать его:
CREATE VIEW Moskovcity AS SELECT * FROM Prodav
WHERE city=’Москва’;
В результате выполнения этой команды можно стать владельцем данного представления. Как и любую другую таблицу, представление можно использовать: формулировать к нему запросы, выполнять обновление, вставку, удаление и соединение с другими таблицами и представлениями.
Преимущество использования представления вместо базовой таблицы состоит в том, что оно обновляется автоматически при изменении формирующих его таблиц. Содержимое представления не фиксируется, а повторно вычисляется всякий раз, когда происходит ссылка на представление в команде. Если в базовую таблицу добавится несколько продавцов, проживающих в Москве, то данные на этих продавцов автоматически добавятся в представление.
Представления значительно расширяют возможности управления данными. Они представляют пользователям доступ не ко всей информации, хранящейся в таблице, а только к её части.
Например, если нужно, чтобы каждый продавец мог просмотреть таблицу Prodav, но не мог видеть значения комиссионных, можно создать представления с помощью следующего предложения:
CREATE VIEW Dann
AS SELECT person_n, name, city
FROM Prodav;
Т.е. данное представление представляет собой ту же самую таблицу Prodav, но без столбца комиссионных.
При обновлении представление можно модифицировать с помощью команд обновления, но модификации воздействуют не на само представление, а только на лежащую в его основе таблицу. Т.е. если необходимо перезаписать место жительства продавца с номером 100 в представлении Dann, то обновление нужно произвести с таблицей Prodav:
UPDATE Prodav
SET city=’Анапа’
WHERE person_n=100;
При создании представления в качестве имен его полей использовались имена полей базовой таблицы. Для простых действий с представлениями это допустимо, но иногда необходимо задать новые имена для столбцов. Это когда:
Некоторые столбцы являются выходными столбцами и, следовательно не поименованы;
Два и более столбцов в соединении имеют одинаковые имена в соответствующих таблицах.
Имена, которые станут именами полей, даются в круглых скобках после имени таблицы.