БД АВИАФИРМА

1,2 УРОК

СОЗДАНИЕ СТРАНИЦЫ “COMPANY”

--tabeli loomine
CREATE TABLE Company (
ID_comp int primary key identity(1,1),
name char(10)
);
SELECT * from Company;

СОЗДАНИЕ ВТОРОЙ СТРАНИЦЫ “TRIP”

CREATE TABLE Trip (
trip_no  int primary key identity(1,1), 
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 Company;

ДОБАВЛЕНИЕ АВИАКОМПАНИЙ В ТАБЛИЦУ “COMPANY”

INSERT INTO Company(name)
Values('Lufthansa');
Это изображение имеет пустой атрибут alt; его имя файла - pilt-22.png

ДОБАВЛЕНИЕ ЗНАЧЕНИЙ В ТАБЛИЦЕ “TRIP”

INSERT INTO Trip (
ID_comp, plane, town_from, town_to, time_out, time_in)
VALUES
(1, 'Ty-140', 'Germany', 'USA', '2023-11-10', '2023-11-10'); 
Это изображение имеет пустой атрибут alt; его имя файла - image.png

СОЗДАНИЕ ТАБЛИЦЫ “PASSENGER” И ДОБАВЛЕНИЕ ПАССАЖИРОВ.

CREATE TABLE Passenger (
ID_psg int primary key identity(1,1),
name char(20)
);
INSERT INTO Passenger(name)
Values ('Ivan Ivanov');
Select * from Passenger
Это изображение имеет пустой атрибут alt; его имя файла - image-1.png

СОЗДАНИЕ И ДОБАВЛЕНИЕ ЭЛЕМЕНТОВ В ТАБЛИЦУ “PASS_IN_TRIP”

create table Pass_in_trip (
trip_no int primary key identity(1,1),
foreign key (trip_no) references Trip(trip_no),
date_ datetime,
ID_psg int,
foreign key (ID_psg) references Passenger(ID_psg),
place char(10)
)
INSERT INTO pass_in_trip(
[date_], ID_psg, place)
Values
('2022-10-16', 5 , '15A');
select * from pass_in_trip
Это изображение имеет пустой атрибут alt; его имя файла - image-2.png

ДИАГРАММА:

Это изображение имеет пустой атрибут alt; его имя файла - image-3.png

СКРИНШОТЫ ВСЕХ СТРАНИЦ:

Это изображение имеет пустой атрибут alt; его имя файла - image-4.png

УРОК 3

ДОБАВЛЕНИЕ НОВОГО СТОЛБЦА В ТАБЛИЦУ “PASSENGER”

select * from Passenger;
ALTER TABLE passenger ADD age int;
select * from Passenger;

До:

Это изображение имеет пустой атрибут alt; его имя файла - image-5.png

После:

Это изображение имеет пустой атрибут alt; его имя файла - image-6.png

ОБНАВЛЕНИЕ ТАБЛИЦЫ “PASSENGER”

UPDATE passenger SET age=35
select * from Passenger
Это изображение имеет пустой атрибут alt; его имя файла - image-7.png

ДОБАВЛЕНИЯ НОВОГО СТОЛБЦА И ОБНОВЛЕНИЕ ДАННЫХ В ТАБЛИЦЕ “COMPANY”

ALTER TABLE company add counrty char(20);

UPDATE company SET counrty='Tallinn'
WHERE ID_comp=1;

До:

Это изображение имеет пустой атрибут alt; его имя файла - image-8.png

После:

Это изображение имеет пустой атрибут alt; его имя файла - image-9.png

СОСТАВЛЕНИЕ  И ВЫПОЛНЕНИЕ SELECT ЗАПРОСОВ

SELECT avg(Age) AS KeskmineVanus
FROM Passenger
Это изображение имеет пустой атрибут alt; его имя файла - image-10.png

ОБЪЯСНИТЕ СЛОВАМИ, ЧТО ВЫПОЛНЯЕТ СЛЕДУЮЩИЙ ЗАПРОС И РЕЗУЛЬТАТ ЗАПРОСА КОПИРУЙТЕ
НИЖЕ:

SELECT plane, COUNT(plane) AS Kogus
FROM Trip
GROUP by plane
Это изображение имеет пустой атрибут alt; его имя файла - image-11.png

Показывает количество самолетов в стоблце “Plane”.

ВТОРОЙ ЗАПРОС

SELECT town_from, town_to, time_out, time_in, ([time_in]-[time_out]) AS Kestvus
FROM trip 
Это изображение имеет пустой атрибут alt; его имя файла - image-12.png

УРОК 4.5

ЗАПРОС НА ОСНОВАНИИ ДВУХ ТАБЛИЦ

SELECT c.name, t.plane 
FROM Company AS c, Trip AS t 
WHERE c.ID_Comp=t.ID_Comp
Это изображение имеет пустой атрибут alt; его имя файла - image-13.png

Второй вариант выполнение задачи:

SELECT c.name, t.plane 
FROM Company AS c INNER JOIN Trip AS t 
ON c.ID_Comp=t.ID_Comp

В этом варианте использовалась функция “INNER JOIN”, то-есть внутрення связь

НАЙДИ ВСЕ КОМПАНИИ, ВЫЛЕТАЮЩИЕ ИЗ ОДНОГО ПРОИЗВОЛЬНОГО ГОРОДА. ЗАПРОС НА ОСНОВЕ ТАБЛИЦ TRIP, COMPANY И ВЫВОДЯЩИЙ ПОЛЯ COMPANY.NAME, TOWN_FROM.

SELECT c.name, t.plane 
FROM Company AS c INNER JOIN Trip AS t 
ON c.ID_Comp=t.ID_Comp
WHERE t.town_from like 'Tallinn'
Это изображение имеет пустой атрибут alt; его имя файла - image-14.png

НАЙТИ ВСЕ ГОРОДА, В КОТОРЫЕ ПУТЕШЕСТВУЕТ ОДИН ПРОИЗВОЛЬНО ВЫБРАННЫЙ ПАССАЖИР. ЗАПРОС НА ОСНОВЕ ТАБЛИЦ TRIP, PASS_IN_TRIP, PASSENGER И ВЫВОДЯЩИЙ ПОЛЯ NAME, PLACE, TOWN_TO

SELECT pa.name, p.place, t.town_to
FROM Passenger AS pa, Trip AS t, pass_in_trip AS p
WHERE t.trip_no=p.trip_no AND
p.ID_psg=pa.ID_psg AND
pa.name like 'John%'
Это изображение имеет пустой атрибут alt; его имя файла - image-15.png

ДОБАВЬ СВОЮ ТАБЛИЦУ К БАЗЕ ДАННЫХ, СВЯЖИ ЕЕ С ИМЕЮЩЕЙСЯ ТАБЛИЦЕЙ.

Для начала я создал новую таблитцу по название “ticket_n”

добавил туда 3 столбца, «ID_psg”, номер билета «ticket_num” и название аэропорта «aeroport_name».

create table ticket_n (
ID_psg int primary key identity(1,1),
foreign key (ID_psg) references Passenger(ID_psg),
ticket_num int,
airoport_name char(10)
)
select * from ticket_n

Заполнил таблицу

INSERT INTO ticket_n(
ticket_num, airoport_name)
Values (
34, 'GreghemAir');
Select * from ticket_n
Это изображение имеет пустой атрибут alt; его имя файла - image-16.png
Это изображение имеет пустой атрибут alt; его имя файла - image-17.png

СОСТАВЬ СВОЙ ЗАПРОС НА ОСНОВЕ ДВУХ СВЯЗАННЫХ ТАБЛИЦ, ВЫПОЛНИ ЕГО. СКОПИРУЙ РЕЗУЛЬТАТ.

SELECT p.ID_psg, p.name, p.age, t.ticket_num, t.airoport_name
FROM Passenger AS p, ticket_n AS t
WHERE p.ID_psg=t.ID_psg
Это изображение имеет пустой атрибут alt; его имя файла - image-18.png