Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабРаб.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
9.63 Mб
Скачать

Работа с представлениями базы данных фио студента________________________Гр.№_____________Институт_________

Цель работы: научиться создавать и использовать различные представления.

Приборы и оборудование: компьютер с установленной операционной системой Windows 2003 Server, MS SQL Server 2005, MS Office 2007.

Ход работы.

Создать и проверить на выполнение:

1) Представление на выборку всех данных из таблиц.

Таблицы хранят только данные, но иногда необходимо иметь возможность выбирать особенно важные данные из нескольких таблиц, именно для этого служат представления на выборку. В представлениях на выборку данные могут выбираться по многим критериям, сортироваться, с ним могут производиться вычислительные операции. Представление – это временная таблица, это значит, что данные в них не хранятся, только временно вызываются из таблиц по заранее заданному шаблону в момент активизации представления. Таким образом, в БД постоянно хранятся только шаблоны вызова данных. Во время создания в представлении необходимо создать ссылки на таблицы, откуда будут выбираться данные. Оператор SELECT позволяет извлекать данные из БД SQL Server и представлять их пользователю в виде одного или нескольких результирующих наборов.

В конструкторе в графе столбцы путем выбора ввести поля «Фамилия», «Имя», «Отчество» таблицы «Люди».

б)

SQL – инструкция:

SELECT Фамилия, Имя, Отчество

FROM dbo.Люди

Вид представления: это представление показывает все Фамилии, Имена, Отчества из таблицы «Люди».

а)

Рис.1. Представление на выборку в режиме конструктора (а) и вид представления (б).

2.) Представление с условием отбора.

В графе столбцы путем выбора ввести поля «Фамилия», «Имя», «Отчество» таблицы «Люди».

б)

SQL – инструкция:

SELECT Фамилия, Имя, Отчество

FROM dbo.Люди

WHERE (ИДЛюди = 1)

Вид представления: это представление показывает человека с ИД=1 из таблицы «Люди».

а)

Рис.2. Представление с условием отбора в режиме конструктора (а) и вид представления (б).

3 ) Представление с использованием системных функций.

б)

SQL – инструкция:

SELECT SYSTEM_USER AS [USER],

CURRENT_USER AS EXPR1

Вид представления: это представление показывает имя текущего пользователя и имя учетной записи.

а)

Рис.3. Представление с использованием системных функций в режиме конструктора (а) и вид представления (б).

4) Представление с использованием групповых операций.

В графе столбцы путем выбора отметить поле «Имя» таблицы «Люди».

S QL – инструкция:

SELECT Имя

FROM dbo.Люди

GROUP BY Имя

б)

Вид представления: это представление группирует всех

людей по имени из таблицы «Люди».

а)

Рис.4. Представление с использованием групповых операций в режиме конструктора (а) и вид представления (б).

5.) Представления к нескольким таблицам со связями CROSS JOIN, INNER JOIN, RIGHT OUTER JOIN.

а ) Представление к нескольким таблицам со связью CROSS JOIN.

а) б)

Рис.5. Представление к нескольким таблицам со связью CROSS JOIN в режиме конструктора (а) и вид представления (б).

SELECT dbo.Студенты. ИДСтуденты, dbo.Студенты.Фамилия, dbo.Студенты.Имя, dbo.Студенты.Отчество, dbo.Люди.ИДЛюди, dbo.Люди.Фамилия AS Expr1, dbo.Люди.Имя AS Expr2, dbo.Люди.Отчество AS Expr3.

FROM dbo.Студенты CROSS JOIN dbo.Люди.

б) Представление к нескольким таблицам со связью INNER JOIN.

Cвязь INNER JOIN объединяет записи из двух таблиц, если связывающие поля этих таблиц содержат одинаковые значения.

б)

SQL – инструкция:

SELECT dbo.Студенты. Фамилия, dbo.Студенты.Имя, dbo.Студенты.Отчество, dbo.Люди.Фамилия AS Expr1, dbo.Люди.Имя AS Expr2, dbo.Люди.Отчество AS Expr3.

FROM dbo.Студенты INNER JOIN dbo.Люди. ON dbo.Студенты. Фамилия = dbo.Люди.Фамилия AND dbo.Студенты.Имя = dbo.Люди.Имя AND

а) dbo.Студенты.Отчество = dbo.Люди.Отчество.

Рис.6. Представление к нескольким таблицам со связью INNER JOIN в режиме конструктора (а) и вид представления (б).

Вид представления: это представление отбирает все совпадающие записи из одной таблицы и соответствующие по полям «Фамилия», «Имя», «Отчество» записи из другой таблицы.

в) Представление к нескольким таблицам со связью RIGHT OUTER JOIN.

С вязь RIGHT OUTER JOIN отбирает все записи из правой таблицы и только совпадающие записи из левой

б)

SQL – инструкция:

SELECT dbo.Студенты.ИДСтуденты, dbo.Студенты. Фамилия, dbo.Студенты.Имя, dbo.Студенты.Отчество, dbo.Люди.Фамилия AS Expr1, dbo.Люди.Имя AS Expr2, dbo.Люди.Отчество AS Expr3, dbo.Люди.ИДЛюди

FROM dbo.Студенты RIGHT OUTER JOIN dbo.Люди. ON dbo.Студенты. Фамилия = dbo.Люди.Фамилия.

а)

Рис.7. Представление к нескольким таблицам со связью RIGHT JOIN в режиме конструктора (а) и вид представления (б).

Вид представления: это представление отбирает все записи из правой таблицы и только не совпадающие записи из левой таблицы.

6 .) Представление, реализующее разность Люди\Студенты.

б)

SQL – инструкция:

SELECT dbo.Люди.Фамилия, dbo.Люди. ИДЛюди, dbo.Люди.Имя, dbo.Люди.Отчество, dbo.Студенты.ИДСтуденты, dbo.Студенты.Фамилия AS Expr1, dbo.Студенты.Имя AS Expr2, dbo.Студенты.ИДГруппы.

FROM dbo.Люди LEFT OUTER JOIN dbo.Студенты ON dbo.Люди. Фамилия = dbo.Студенты.Фамилия.

WHERE (dbo.Студенты.Фамилия IS NULL)

а)

Рис.8. Представление, реализующее разность, в режиме конструктора (а) и вид представления (б).

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

7.) Представление к таблице другой базы SQL Server.

Создать вторую базу данных db2, в ней создать таблицу «Люди2».

а) б)

Р ис.9.Таблица «Люди2» в режиме конструктора (а) и данные таблицы «Люди2» (б).

б)

SQL – инструкция:

SELECT ИДЛюди,Фамилия, Имя, Отчество

FROM db2.dbo.Люди2

Вид представления: это представление показывает все Фамилии, Имена, Отчества из таблицы «Люди2».

а)

Рис.10. Представление на выборку к таблице «Люди2» базы данных db2 в режиме конструктора (а) и вид представления (б).

Вывод:

ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ

Работы выполнена 2010 г. Зав. лабораторией /подпись/______________

Работа защищена ____________ 2010 г. Преподаватель /подпись/ ________________

Лабораторная работа № 5