ПОСТРОЕНИЕ ПРОСТЕЙШИХ ЗАПРОСОВ НА ВЫБОРКУ ИНФОРМАЦИИ Цель занятия
Изучение средств языка SQL по созданию запросов на выборку информации. Практическая реализация простейших запросов-выборок.
Постановка задачи
В соответствии с индивидуальным вариантом реализовать на языке SQL не ме-нее восьми различных запросов на выборку информации для базы данных, разрабо-танной в рамках практического занятия №4. Совокупность запросов обязательно должна содержать следующие конструкции SQL:
а) логические операции;
б) ключевое слово DISTINCT;
в) предикат BETWEEN;
г) предикат LIKE;
д) предикат IN.
Ход работы
üЗапрос, который выводит полную информацию о всех железнодорожных вокзалах:
SELECT *
FROM [Железнодорожный вокзал];
üЗапрос, который показывает фамилию, имя и контактный телефон машинистов в возрасте от 25 до 40 лет:
SELECT Фамилия,
Имя,
[Контактный телефон]
FROM Сотрудник
WHERE (Должность="Машинист") and
([Дата рождения] BETWEEN #01/01/1968# and #12/31/1983#);
üЗапрос, который показывает фамилию и имя пассажиров серия паспорта которых начинается на «28» или «29» купивших билет 24 сентября 2000 года:
SELECT Фамилия,
Имя
FROM Пассажир
WHERE ([№ и серия паспорта] Like "######*28##*") Or
([№ и серия паспорта] Like "######*29##*") And
([Дата покупки билета]=#9/24/2000#);
üЗапрос, который показывает должности, оклад которых не меньше 5000:
SELECT Должность
FROM [Справочник окладов]
WHERE Оклад >= 5000;
üЗапрос, который показывает всю информацию о маршрутах движения поездов 19октября 2008 года отправляющихся с 3ей платформы:
SELECT *
FROM [Маршрут движения]
WHERE ([Дата отправления] = #10/19/2008#) and
([№ платформы] = 3);
üЗапрос, который показывает всю информацию о пассажирах купивших билеты 10 октября 2008 года или 15 октября 2008 года:
SELECT *
FROM Пассажир
WHERE [Дата покупки билета] IN (#10/10/2008#,#10/15/2008#);
üЗапрос, который показывает название и адрес вокзала с телефоном начинающимся на «7» и фамилией директора на «И» или «П»:
SELECT [Полное название вокзала],
Адрес
FROM [Железнодорожный вокзал]
WHERE (Телефон Like "7*") And
(Директор Like "И*") Or
(Директор Like "П*");
üЗапрос, который показывает всю информацию о мужчинах чьё имя начинается на «С»:
SELECT *
FROM Сотрудник
WHERE (Отчество LIKE "*вич") and
(Имя LIKE "С*");
Лабораторная работа №6
ИСПОЛЬЗОВАНИЕ ГРУППИРОВКИ И УПОРЯДОЧЕНИЯ ДАННЫХ
Цель занятия
Изучение возможностей языка SQL для создания параметрических запросов-выборок, а также запросов с использованием группировки и упорядочения информации. Практическая реализация соответствующих запросов.
Постановка задачи
В соответствии с индивидуальным вариантом создать с помощью языка SQL не менее шести различных запросов для базы данных, разработанной в рамках практи-ческого занятия №4. Совокупность запросов должна содержать:
а) параметрические запросы;
б) запросы, использующие группировку данных;
в) запросы, осуществляющие различные способы упорядочения данных.
Ход работы
üЗапрос, который показывает фамилию, имя и контактный телефон сотрудников занимающих должность введенную с клавиатуры:
SELECT Фамилия, имя, [Контактный телефон]
FROM Сотрудник
WHERE Должность=[Введите должность]
ORDER BY Фамилия;
üЗапрос, который по введенным с клавиатуры названию маршрута и дате маршрута показывает полную информацию об этом маршруте:
SELECT *
FROM [Маршрут движения]
WHERE [Название маршрута]=[введите название маршрута] AND [Дата отправления]=[введите дата отправления];
üЗапрос, который показывает самого старого сотрудника по каждой должности:
SELECT MIN([дата рождения]) AS [МАХ возраст], должность
FROM Сотрудник
GROUP BY Должность;
ü Запрос, который тройку пассажиров купивших билет последними:
SELECT TOP 3 [Личный №], имя, фамилия, [Дата покупки билета]
FROM Пассажир
ORDER BY [Дата покупки билета];
ü Запрос, который показывает среднюю цену билетов для всех вокзалов в алфавитном порядке:
SELECT [Полное название вокзала],
AVG([стоимость билета]) AS [средняя стоимость биллета]
FROM [маршрут движения]
GROUP BY [Полное название вокзала]
ORDER BY [Полное название вокзала];
ü Запрос, который название, адрес и телефон вокзала директор которого вводится с клавиатуры:
SELECT [Полное название вокзала], адрес, телефон
FROM [Железнодорожный вокзал]
WHERE Директор=[введите директора];
Лабораторная работа №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 Фамилия;
Лабораторная работа №9
|