Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБЫ ПО БАЗАМ ДАННЫХ.doc
Скачиваний:
46
Добавлен:
01.06.2015
Размер:
268.29 Кб
Скачать

Лабораторная работа №7 запросы по удалению, изменению и добавлению данных

Цель занятия

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

Постановка задачи

В соответствии с индивидуальным вариантом построить на языке SQL не менее шести различных запросов к базе данных, созданной в ходе практического занятия №4. Необходимо обеспечить:

авыборку информации из нескольких таблиц;

будаление информации;

визменение информации;

г)добавление информации.

Ход работы

 Запрос , показывающий полные сведения о железнодорожном вокзале для сотрудника с введенной с клавиатуры фамилией:

SELECT [Железнодорожный вокзал].[Полное название вокзала], Адрес, Телефон, Директор

FROM [Железнодорожный вокзал] INNER JOIN Сотрудник ON [Железнодорожный вокзал].[Полное название вокзала]=Сотрудник.[Полное название вокзала]

WHERE Сотрудник.Фамилия=[Введите фамилию сотрудника];

 Запрос , удаляющий сотрудника по введенному с клавиатуры коду:

DELETE *

FROM Сотрудник

WHERE [№ ТРУДОВОГО ДОГОВОРА]=[ВВЕДИТЕ № ТРУДОВОГО ДОГОВОРА];

 Запрос, изменяющий оклад сотрудника введенного с клавиатуры на оклад введенный с клавиатуры:

UPDATE [Справочник окладов] SET Оклад = [Введите новый оклад]

WHERE Должность=[Введите должность сотрудников];

 Запрос, добавляющий в таблицу справочник окладов новую запись с должностью старший машинист и окладом = 25000 тыс.

INSERT INTO [Справочник окладов] ( Должность, Оклад )

VALUES ("Ст машинист", "25000");

 Запрос, добавляющий в таблицу сотрудники сотрудника с № трудового договора 666, с фамилией Шац, с должностью старший машинист и работающего на киевском вокзале:

INSERT INTO Сотрудник ([№ трудового договора], фамилия, должность, [полное название вокзала])

VALUES (666, "Шац", "ст машинис", "Киевский");

 Запрос , удаляющий пассажира с фамилией введенной с клавиатуры :

DELETE *

FROM Пассажир

WHERE Пассажир.[Фамилия]=[ВВЕДИТЕ ФАМИЛИЮ ПАССАЖИРА];

Лабораторная работа №8 Построение сложных запросов, запросов на соединение и объединение информации

Цель занятия

Изучение средств SQL для построения более сложных универсальных запросов.

Постановка задачи

В соответствии с индивидуальным вариантом построить на языке SQL не менее шести различных запросов к базе данных, созданной в ходе практического занятия №4. Необходимо обеспечить:

а построение информации на основе нескольких независимых запросов;

борганизация соединений необходимой информации;

впостроение запросов на объединение информации.

Ход работы

 Запрос, показывающий полную информацию о наиболее молодых сотрудниках по каждой должности:

  • SELECT MAX([Дата рождения]) AS [макс дата рождения], Должность

FROM Сотрудник

GROUP BY Должность;

  • SELECT Сотрудник.*

FROM Сотрудник INNER JOIN Запрос1 ON (Сотрудник.Должность=Запрос1.Должность) AND (Сотрудник.[дата рождения]=Запрос1.[макс дата рождения]);

 Запрос, показывающий полную информацию о пассажирах по каждому маршруту с наибольшей стоимостью билета не меньше 150 p.:

  • SELECT max([Стоимость билета]) AS [макс стоимость билета], [Название маршрута]

FROM [Маршрут движения]

GROUP BY [Название маршрута]

HАVING max([Стоимость билета])>=150 р.;

  • SELECT Пассажир.*

FROM Пассажир INNER JOIN Запрос3 ON Пассажир.[Название маршрута]=Запрос3.[Название маршрута];

 Запрос, показывающий всю информацию о вокзале сотрудником которого является человек с введенной с клавиатуры фамилией:

SELECT [Железнодорожный вокзал].*

FROM [Железнодорожный вокзал] LEFT JOIN Сотрудник ON [Железнодорожный вокзал].[Полное название вокзала]=Сотрудник.[Полное название вокзала]

WHERE Сотрудник.Фамилия =[ВВедите фамилиЮ];

 Запрос, показывающий фамилии, имена и отчества всех сотрудников и пассажиров имеющихся в базе данных:

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

FROM Сотрудник

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

FROM Пассажир

ORDER BY Фамилия;

 Запрос, показывающий фамилии ПАСАЖИРОВ КУПИВШИХ БИЛЕТ 10/10/2008 ИЛИ 10/15/2008 и СОТРУДНИКИ МУЖЧИНЫ С ИМЕНЕМ НА С:

SELECT Фамилия

FROM [# СОТРУДНИКИ МУЖЧИНЫ С ИМЕНЕМ НА С]

UNION ALL SELECT Фамилия

FROM [# ПАСАЖИРЫ КУПИВШИЕ БИЛЕТ 10/10/2008 ИЛИ 10/15/2008]

ORDER BY Фамилия;

 Запрос, показывающий фамилии МАШИНИСТОВ ОТ 25 ДО 40 и ПАССАЖИРЫ С СЕРИЕЙ ПАСПОРТА НА 28 ИЛИ 29:

SELECT Фамилия

FROM [# МАШИНИСТЫ ОТ 25 ДО 40]

UNION ALL SELECT Фамилия

FROM [# ПАССАЖИРЫ С СЕРИЕЙ ПАСПОРТА НА 28 ИЛИ 29]

ORDER BY Фамилия;