Отчет по лабораторной работе №7
Вариант 2
Выполнил:
ст. гр. ИТ-14-1-Д
Сдержиков Александр
ЛАБОРАТОРНАЯ РАБОТА № 7
Работа с базой данных
(создание базы данных и запросов к ней на языке SQL)
ЦЕЛЬ РАБОТЫ.
ü освоить основы языка SQL.
.
1. Присвоим таблице имя – «Данные о наличии билетов» и определим имена атрибутов и их типы.
Номер_поезда - Числовой(целый)
Вид_поезда - Текстовый(30)
Станция_отправления - Текстовый(30)
Станция_назначения - Текстовый(30)
Время_отправления - Дата/время
Количество_мест - Числовой(целый)
Запрос на создание таблицы:
CREATE TABLE [Данные о наличии билетов] (Номер_поезда INT,Вид_поезда CHAR (30) NOT NULL, Станция_отправления CHAR (30) NOT NULL, Станция_назначения CHAR (30) NOT NULL,Время_отправления TIME, Количество_мест INT);
Запросы на изменение данных:
1) удалить из расписания информацию о данном поезде, следующем до данной станции
DELETE *
FROM [Данные о наличии билетов]
WHERE Станция_назначения = "Москва";
2) изменить для данного поезда, следующего по данному направлению, время отправления
|
|
UPDATE [Данные о наличии билетов]
SET Время_отправления = #15:25#
WHERE Номер_поезда=1 AND Станция_назначения = "Петербург";
3) изменить для данного поезда, отправляющегося с данной станции, количество свободных мест
UPDATE [Данные о наличии билетов]
SET Количество_мест = "Количество_мест*2"
WHERE Номер_поезда = 2 AND Станция_отправления = "Петербург";
4) создать новую таблицу, которая будет содержать все станции отправления и номера поездов, следующих до данного города
SELECT [Данные о наличии билетов].Станция_отправления, [Данные о наличии билетов].Номер_поезда, [Данные о наличии билетов].Станция_назначения INTO Станция_назначения
FROM [Данные о наличии билетов]
WHERE ((([Данные о наличии билетов].Станция_назначения)= "Елец"));
Запросы на выборку данных:
1) выбрать станции отправления и назначения, а также время отправления по требуемому номеру поезда
SELECT Станция_отправления,Станция_назначения,Время_отправления
FROM [Данные о наличии билетов]
WHERE Номер_поезда=1;
2) выбрать количество свободных мест и номера поездов до требуемой станции
SELECT Количество_мест,Номер_поезда
FROM [Данные о наличии билетов]
WHERE [Станция_назначения]="Петербург"
3) выбрать номера поездов, следующих до данной станции, количество свободных мест на которые превышает заданное значение
SELECT Номер_поезда
FROM [Данные о наличии билетов]
WHERE Станция_назначения="Москва " AND Количество_мест>100;
4) выбрать время отправления, номера поездов, следующих в Москву, Санкт-Петербург и Воронеж
SELECT Время_отправления,Номер_поезда
|
|
FROM [Данные о наличии билетов]
WHERE Станция_назначения = "Москва" AND Станция_назначения = "Петербург" AND Станция_назначения = "Воронеж";
5) выбрать номера и виды поездов, следующих по данному маршруту и отправляющихся в указанный промежуток времени
SELECT Номер_поезда,Вид_поезда
FROM [Данные о наличии билетов]
WHERE Станция_назначения = "Москва" AND Время_отправления < #19:30# AND Время_отправления > #16:30#
Запросы с агрегатными функциями:
1) определить количество поездов, следующих до данной станции
SELECT Count (Номер_поезда) AS Номера_поездов_до_Москвы
FROM [Данные о наличии билетов]
WHERE Станция_назначения = "Москва";
2) определить номер поезда, следующего до данной станции с наибольшим количеством свободных мест
SELECT Номер_поезда, Количество_мест
FROM [Данные о наличии билетов]
WHERE Станция_назначения = "Петербург" AND Количество_мест = (SELECT Max(Количество_мест) FROM [Данные о наличии билетов]);
3) определить номер поезда, следующего до данной станции с наименьшим количеством свободных мест
SELECT Номер_поезда, Количество_мест
FROM [Данные о наличии билетов]
WHERE Станция_назначения = "Петербург" AND Количество_мест = (SELECT Min(Количество_мест) FROM [Данные о наличии билетов])
4) определить общее количество свободных мест на поезда, следующие до данной станции
SELECT SUM(Количество_мест) AS Всего_мест
FROM [Данные о наличии билетов]
WHERE [Станция_назначения]="Петербург";
Подзапросы:
1) выбрать номера поездов, станции отправления и назначения, следующих до той же станции, что и указанный поезд
SELECT Номер_поезда,Станция_отправления,Станция_назначения
FROM [Данные о наличии билетов]
WHERE Станция_назначения = (SELECT Станция_назначения FROM [Данные о наличии билетов] WHERE Номер_поезда= 7);
Представления:
1) Создать представление, содержащее: номера поездов, станции назначения и количество свободных мест, превышающих заданное значение.
CREATE VIEW Количество_мест1 AS SELECT Номер_поезда,Станция_назначения,Количество_мест
FROM [Данные о наличии билетов]
WHERE Количество_мест>50;