Базы данных

Автор работы: Пользователь скрыл имя, 17 Июня 2013 в 06:49, курсовая работа

Краткое описание

Каждый водитель характеризуется паспортными данными, классом, стажем работы и окладом, причем оклад зависит от класса и стажа работы. Маршрут автобуса характеризуется номером маршрута, названием начального и конечного пункта движения, временем начала и конца движения, интервалом движения и протяженностью в минутах (время движения от кольца до кольца). Характеристиками автобуса являются: номер государственной регистрации автобуса, его тип и вместимость, причем вместимость автобуса зависит от его типа. Каждый водитель закреплен за отдельным автобусом и работает на определенном маршруте, но в случае поломки своего автобуса или болезни другого водителя может пересесть на другую машину. В базе должен храниться график работы водителей. Необходимо предусмотреть возможность корректировки БД в случаях поступления на работу нового водителя, списания старого автобуса, введения нового маршрута или изменения старого и т.п.

Содержимое работы - 1 файл

Поясн записка.doc

— 1.53 Мб (Скачать файл)

 

Запрос “ВодтелиУволн”

Удаляет запись из таблицы Водители

 

DELETE *

FROM Водители

WHERE Pasp=Forms!Водители!PaspUv;

 

Результат:

Удалена запись вида:

Forms!Водители!PaspUv

FIO

staj

klas

Oklad

data_roj

Adres


 

 

 

 

Запрос “ГрафикАвтоб_лин”

Формирует таблицу, содержащую номера автобусов, дату, и номер маршрута или сообщение о поломке, в случае неисправности.

Необходим, для составление графика  работы автобусов.

 

SELECT Автобусы.avtob,

             Водят.date,

             Водят.marshr as Выход

FROM Автобусы inner join Водят on Автобусы.avtob=Водят.avtob

WHERE

             (Автобусы.avtob not in (SELECT Поломки.avtob FROM Поломки))

UNION SELECT Поломки.avtob,

             Поломки.date,

            "Поломка" as Выход

FROM Поломки;

 

Результат:

номер

дата

Выход

а004вп

22.05.2006

2

а004вп

23.05.2006

2

а004вп

24.05.2006

2

а007пп

23.05.2006

1

а007пп

24.05.2006

1

а070пр

25.05.2006

Поломка

в007рп

22.05.2006

1

в007рп

23.05.2006

1

в007рп

24.05.2006

1

в909ао

22.05.2006

4

в909ао

23.05.2006

4

в909ао

24.05.2006

4

н006оо

22.05.2006

2

н006оо

23.05.2006

2

н006оо

24.05.2006

2

о009пр

22.05.2006

5

о009пр

23.05.2006

5

о009пр

24.05.2006

5

п004пп

22.05.2006

2

п004пп

23.05.2006

2

п004пп

24.05.2006

2

п009оо

25.05.2006

Поломка

р005рр

22.05.2006

5

р005рр

23.05.2006

5

р005рр

24.05.2006

5

р007аа

22.05.2006

3

р007аа

23.05.2006

3

р007аа

24.05.2006

3

с050ар

22.05.2006

5

с050ар

23.05.2006

5

с050ар

24.05.2006

5


 

 

 

 

 

Запрос “ГрафикЛин”

Формирует таблицу, содержащую фамилии  водителей, даты, и номера маршрутов. Необходим, для составление графика работы водителей.

 

SELECT Водители.FIO, Водят.date, Водят.marshr & "     " & Водят.avtob AS marshr

FROM Водители RIGHT JOIN Водят ON Водители.Pasp=Водят.Pasp;

 

 

Результат:

Фамилия И.О.

дата

маршрут+автобус

Галич Н.О.

24.05.2006

5     р005рр

Петров А.И.

24.05.2006

5     о009пр

Жданов М.Ю.

24.05.2006

5     с050ар

Петров О.Н.

23.05.2006

1     а007пп

Сидоров С.А.

22.05.2006

1     в007рп

Егоров Л.Д.

23.05.2006

1     в007рп

Иванов А.В.

22.05.2006

2     н006оо

Зайцев О.С.

23.05.2006

2     н006оо

Бабушкин Р.Ю.

22.05.2006

2     а004вп

Кузнецов В.Н.

23.05.2006

2     а004вп

Белов А.С.

22.05.2006

2     п004пп

Белов И.С.

23.05.2006

2     п004пп

Кузнецов Н.А.

22.05.2006

3     р007аа

Нестеров П.М.

23.05.2006

3     р007аа

Быков П.А.

22.05.2006

3     п009оо

Швондер А.С.

23.05.2006

3     п009оо

Белов С.А.

22.05.2006

4     в909ао

Иванов С.Г.

23.05.2006

4     в909ао

Сидоров С.Л.

22.05.2006

4     а070пр

Нагорный Д.И.

23.05.2006

4     а070пр

Галич Н.О.

22.05.2006

5     р005рр

Титов П.М.

23.05.2006

5     р005рр

Еремеев О.П.

22.05.2006

5     о009пр

Петров А.И.

23.05.2006

5     о009пр

Старов П.В.

22.05.2006

5     с050ар

Жданов М.Ю.

23.05.2006

5     с050ар

Иванов И.И.

24.05.2006

1     а007пп

Егоров Л.Д.

24.05.2006

1     в007рп

Иванов А.В.

24.05.2006

2     н006оо

Кузнецов В.Н.

24.05.2006

2     а004вп

Белов А.С.

24.05.2006

2     п004пп

Нестеров П.М.

24.05.2006

3     р007аа

Быков П.А.

24.05.2006

3     п009оо

Белов С.А.

24.05.2006

4     в909ао


 

Запрос “ДобавНовАвтоб”

Добавляет строку в таблицу Автобусы.

 

INSERT INTO Автобусы ( avtob, Type )

VALUES (Forms!Автобусы!avtob, Forms!Автобусы!Type);

 

Результат:

Строка вида:

Forms!Автобусы!avtob

Forms!Автобусы!Type


 

Запрос “МаршВводНов”

Добавление строки в таблицу  Маршруты

 

INSERT INTO Маршруты ( marshr, Nach_punkt, Konechn_punkt, Nach_dvij, Kon_vrema, int, Protaj )

VALUES (Forms!МаршВводНов!nom, Forms!МаршВводНов!nach, Forms!МаршВводНов!konech, Forms!МаршВводНов!nvr, Forms!МаршВводНов!kvr, Forms!МаршВводНов!int ,Forms!МаршВводНов!prot);

Результат:

Строка вида:

Forms!МаршВводНов!nom

Forms!МаршВводНов!nach

Forms!МаршВводНов!konech

Forms!МаршВводНов!nvr

Forms!МаршВводНов!kvr

Forms!МаршВводНов!int

Forms!МаршВводНов!prot


 

Запрос “МаршВод”

Выбирает данные из таблицы Водители, удовлетворяющие заданному маршруту и дате.

 

SELECT DISTINCT Водители.FIO, Водители.Pasp

FROM Водители RIGHT JOIN Водят ON Водители.Pasp=Водят.Pasp

WHERE (((Водят.marshr)=Forms!Маршруты!marshr));

 

Результат:

FIO

Pasp

Егоров Л.Д.

3021 438954

Иванов И.И.

3000 123034

Петров О.Н.

3021 234945

Сидоров С.А.

4000 576933


 

Запрос “МаршПоиск”

Выбирает данные из таблицы Маршруты, по заданным кольцам.

 

SELECT Маршруты.marshr, Маршруты.Nach_punkt, Маршруты.Konechn_punkt

FROM Маршруты

WHERE (Маршруты.Nach_punkt=Forms!МаршПоиск!nachal) Or (Маршруты.Konechn_punkt=Forms!МаршПоиск!konech);

 

Результат:

                 marshr

Nach_punkt

Konechn_punkt

2

пр. Сизова

м. Пионерская

3

м. Плошадь мужества

м. Пионерская


 

Запрос “МаршУдал”

Удаляет запись из таблицы Маршруты

 

DELETE *

FROM Маршруты

WHERE marshr=Forms!Маршруты!marshr;

Результат:

Удалена строка вида:

Forms!Маршруты!marshr

Nach_punkt

Konechn_punkt

Nach_dvij

Kon_vrema

int

Protaj


 

Запрос “МахСтаж”

Выбор из таблицы Водители тех, у  кого наибольший стаж

 

SELECT Водители.FIO, staj

FROM Водители

WHERE staj in (SELECT max(staj) FROM Водители);

 

Результат:

FIO

staj

Зайцев О.С.

10

Бабушкин Р.Ю.

10

Кузнецов В.Н.

10

Белов И.С.

10

Быков П.А.

10

Белов С.А.

10

Галич Н.О.

10

Титов П.М.

10

Жданов М.Ю.

10


 

Запрос “НеВышли”

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

На эту дату.

 

SELECT Автобусы.avtob,

            "Нет водителя" as Причина

FROM Автобусы

WHERE (Автобусы.avtob not in (SELECT Водят.avtob FROM Водят WHERE date=date())) and

             (Автобусы.avtob not in (SELECT Поломки.avtob FROM Поломки WHERE date=date()))

UNION SELECT Поломки.avtob,

            "Поломка"

FROM Поломки

WHERE (date=date());

 

Результат:

avtob

Причина

а004вп

Нет водителя

а007пп

Нет водителя

а070пр

Поломка

в007рп

Нет водителя

в909ао

Нет водителя

н006оо

Нет водителя

о009пр

Нет водителя

п004пп

Нет водителя

п009оо

Поломка

р005рр

Нет водителя

р007аа

Нет водителя

с050ар

Нет водителя


 

 

Запрос “ПоКлассам”

Находит число водителей по классам.

 

SELECT Водители.klas, count(pasp) AS Человек

FROM Водители

GROUP BY Водители.klas;

Результат:

klas

Человек

A

5

B

15

C

4


Запрос “ПоПарку”

Необходим для создания отчета по парку.

Находит какие водители, по какому маршруту, и на каких автобусах  работают в эту дату.

 

SELECT Автобусы.Type, Автобусы.avtob, Водители.FIO, Маршруты.marshr, Маршруты.Nach_punkt, Маршруты.Konechn_punkt, Маршруты.Nach_dvij, Маршруты.Kon_vrema, Маршруты.Interval, Маршруты.Protaj

FROM Водители INNER JOIN (Маршруты RIGHT JOIN (Автобусы RIGHT JOIN Водят ON Автобусы.avtob=Водят.avtob) ON Маршруты.marshr=Водят.marshr) ON Водители.Pasp=Водят.Pasp

WHERE (Водят.date=date()); 

Результат:

Type

avtob

FIO

marshr

Nach_punkt

Konechn_punkt

Nach_dvij

Kon_vrema

Interval

Protaj

Лиаз (гармошка)

р005рр

Галич Н.О.

5

пр. Авиаконструкторов

Ланское шоссе

00.01.1900

00.01.1900

20

120

Лиаз (гармошка)

о009пр

Петров А.И.

5

пр. Авиаконструкторов

Ланское шоссе

00.01.1900

00.01.1900

20

120

Лиаз 05гв

с050ар

Жданов М.Ю.

5

пр. Авиаконструкторов

Ланское шоссе

00.01.1900

00.01.1900

20

120

Экарус (гармошка)

а007пп

Иванов И.И.

1

м. Старая деревня

ул. Камышовая

00.01.1900

00.01.1900

15

110

Экарус (гармошка)

в007рп

Егоров Л.Д.

1

м. Старая деревня

ул. Камышовая

00.01.1900

00.01.1900

15

110

Лиаз 90гв

н006оо

Иванов А.В.

2

пр. Сизова

м. Пионерская

00.01.1900

00.01.1900

25

180

Лиаз 05гв

а004вп

Кузнецов В.Н.

2

пр. Сизова

м. Пионерская

00.01.1900

00.01.1900

25

180

Лиаз 05гв

п004пп

Белов А.С.

2

пр. Сизова

м. Пионерская

00.01.1900

00.01.1900

25

180

Экарус (гармошка)

р007аа

Нестеров П.М.

3

м. Плошадь мужества

м. Пионерская

00.01.1900

00.01.1900

15

100

Лиаз (гармошка)

п009оо

Быков П.А.

3

м. Плошадь мужества

м. Пионерская

00.01.1900

00.01.1900

15

100

Лиаз 90гв

в909ао

Белов С.А.

4

пр. Испытателей

ул. Камышовая

00.01.1900

00.01.1900

20

60


 

Запрос “ПоПаркуСвод”

Формирует список общих характеристик  по парку. Средний возраст водителей, Средний стаж вождения, общая протяженность маршрутов, количество водителей.

 

SELECT DISTINCT (SELECT sum(protaj) FROM Маршруты) AS [Общая  протяженность], (SELECT count(pasp) FROM Водители) AS [Количество водителей], (SELECT round(avg(staj)) FROM Водители) AS [Средний стаж], (SELECT round(avg(Date()-Водители.data_roj)/365) FROM Водители) AS [Средний возраст]

FROM Водители INNER JOIN (Маршруты RIGHT JOIN (Автобусы RIGHT JOIN Водят ON Автобусы.avtob=Водят.avtob) ON Маршруты.marshr=Водят.marshr) ON Водители.Pasp=Водят.Pasp

WHERE (Водят.date=date());

 

Резульиат:

Общая протяженность

Количество  водителей

Средний стаж

Средний возраст

570

24

7

25


 

 

Запрос “СвободныеАвтоб”

Формирует список автобусов, для которых  не нашлось водителя.

 

SELECT Автобусы.avtob

FROM Автобусы

WHERE (Автобусы.avtob not in (SELECT Водят.avtob FROM Водят WHERE date=date())) and

             (Автобусы.avtob not in (SELECT Поломки.avtob FROM Поломки WHERE date=date()));

 

Результат:

avtob

а007пп

в007рп

н006оо

а004вп

п004пп


 

Запрос “СвободныеВодители”

Формирует список водителей, для которых  не нашлось автобуса.

 

SELECT Водители.pasp

FROM Водители

WHERE (Водители.pasp not in (SELECT Водят.pasp FROM Водят WHERE date=date()));

 

Результат:

pasp

3021 234945

4000 576933

4000 455202

4000 455220

3021 347520

3021 485621

4000 673921

3021 452213

4000 789842

4000 509123

3000 906823

3000 762234

3000 542421


 

 

Запрос “СписАвтоб”

Формирует список автобусов на данном маршруте, в эту дату.

 

SELECT DISTINCT Водят.avtob, Водят.marshr, Водят.date

FROM Водят

WHERE (((Водят.marshr)=Forms!Маршруты!marshr) And ((Водят.date)=Forms!Маршруты!data));

 

Результат:

avtob

marshr

date

а007пп

1

25.05.2006

в007рп

1

25.05.2006

Информация о работе Базы данных