Цель работы

Отчет по лабораторной работе №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;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: