AB Aviafirma

1.  Company

CREATE TABLE Company (
ID_comp int primary key auto_increment,
name char(10)
);
SELECT * from Company;

2. Trip

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
);
select * from Trip;

3. Passenger

CREATE TABLE passenger(
    ID_psg int PRIMARY KEY auto_increment,
    name char(20))

4. Pass_in_trip

CREATE TABLE pass_in_trip(
    trip_no int,
    FOREIGN KEY (trip_no) REFERENCES Trip(trip_no),
    date datetime,
    ID_psg int,
    FOREIGN KEY (ID_psg) REFERENCES passenger(ID_psg),
    place char(10),
    PRIMARY KEY(trip_no, date, ID_psg))

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

ALTER TABLE passenger ADD age int

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

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

ALTER TABLE Company ADD age int;

Составление  и выполнение SELECT запросов

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

SELECT AVG(age) AS avg_age FROM passenger

Составьте запрос на нахождение количества значений в таблице Company.

SELECT COUNT(*) AS size FROM Company

Объясните словами, что выполняет следующий запрос и результат запроса копируйте
ниже:

SELECT plane, COUNT(plane) AS Kogus
FROM Trip
GROUP by plane

Количество путешествий с группировкой по названию самолета.
SELECT town_from, town_to, time_out, time_in, ([time_in]-[time_out])as int) AS Kestvus
FROM trip 

????

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

Select c.name, t.town_from
from Company as c INNER JOIN Trip as t
on c.ID_comp=t.ID_comp
where t.town_from like 'Tallinn'

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

Select pa.name, p.place, t.town_to
from Trip as t, pass_in_trip as p, passenger as pa
where t.trip_no=p.trip_no and p.ID_psg=pa.ID_psg and
pa.name like 'Fin%'

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

Lennujaama tabel, mis näitab peale

CREATE TABLE Lennujaam(
id_jaam int primary key auto_increment,
peal int,
ID_comp int,
FOREIGN KEY (ID_comp) REFERENCES Company(ID_comp))

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

Otsige üles kõik ettevõtted, mille maks on väiksem kui 40.

select l.peal, c.name
from lennujaam as l, company as c
where l.ID_comp=c.ID_comp and l.peal<40;