SQL ülesanded: AB Aviafirma

Ülesanne 1,2

CREATE TABLE Company (
ID_comp int primary key auto_increment,
name char(10)
);
CREATE TABLE  Trip (
trip_no  int primary key auto_increment, 
ID_comp int,
FOREIGN KEY (ID_comp) REFERENCES Company(ID_comp), 
plane char(10), 
town_from char(25), 
town_to char(25),
time_out datetime,
time_in datetime
) 
create table Pass_in_trip(
    trip_no int,
    FOREIGN KEY (trip_no) REFERENCES Trip(trip_no),
    date datetime,
    ID_psg int,
    place char(10)
    )

ALTER table Pass_in_trip add(
	FOREIGN KEY (ID_psg) REFERENCES Passenger(ID_psg)
    )

Ülesanne 3

В таблицу Passenger добавьте поле Age (возраст).

alter table Passenger add column age int

 Заполните столбец возраст данными.

Продумайте и добавьте подходящий произвольный столбец в таблицу Company, заполните его.

alter table Company add COLUMN country varchar(20)

Найдите средний возраст пассажиров.

SELECT AVG(age) FROM Passenger;
Составьте запрос на нахождение количества значений в таблице Company.


SELECT COUNT(*) FROM Company;

  1. Объясните словами, что выполняет следующий запрос и результат запроса копируйте
    ниже:
SELECT plane, COUNT(plane) AS Kogus
FROM Trip
GROUP by plane

 выполняет группировку записей таблицы Trip по значению столбца plane, а затем подсчитывает количество записей в каждой группе
SELECT town_from, town_to, time_out, time_in, ([time_in]-[time_out]) AS Kestvus
FROM trip 

Данный SQL-запрос выполняет выборку данных из таблицы trip и выводит пять столбцов- town_from, town_to, time_out, time_in как столбец под названием kestvus

1. Найди все компании, вылетающие из одного произвольного города. Запрос на основе таблиц trip, company и выводящий поля company.name, town_from.

SELECT company.name, trip.town_from
FROM trip
JOIN company ON trip.ID_comp = trip.ID_comp
WHERE trip.town_from = 'kiev'
GROUP BY company.name, trip.town_from;

Найти все города, в которые путешествует один произвольно выбранный пассажир. Запрос на основе таблиц trip, pass_in_trip, passenger и выводящий поля name, place, town_to.

SELECT passenger.name, pass_in_trip.place, trip.town_to
FROM pass_in_trip
JOIN trip ON pass_in_trip.trip_no = pass_in_trip.trip_no
JOIN passenger ON pass_in_trip.ID_psg = Pass_in_trip.ID_psg
WHERE passenger.name = 'Maksim'
GROUP BY passenger.name, pass_in_trip.place, trip.town_to;

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

CREATE TABLE attendance (
    people_in_month int,
    planes_in_month int,
    ID_comp int,
    FOREIGN KEY (ID_comp) REFERENCES Trip(ID_comp)
);

Составь свой запрос на основе двух связанных таблиц, выполни его. Скопируй результат.

SELECT Trip.trip_no, Trip.plane, Trip.ID_comp
FROM Trip
JOIN Passenger ON Passenger.ID_psg = Passenger.ID_psg
WHERE Passenger.ID_psg = 1;

Таблица country

Вторичный ключ country_id в company

Leave a Reply

Sinu e-postiaadressi ei avaldata. Nõutavad väljad on tähistatud *-ga