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');

ДОБАВЛЕНИЕ ЗНАЧЕНИЙ В ТАБЛИЦЕ “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');

СОЗДАНИЕ ТАБЛИЦЫ “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

СОЗДАНИЕ И ДОБАВЛЕНИЕ ЭЛЕМЕНТОВ В ТАБЛИЦУ “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

ДИАГРАММА:

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

УРОК 3
ДОБАВЛЕНИЕ НОВОГО СТОЛБЦА В ТАБЛИЦУ “PASSENGER”
select * from Passenger;
ALTER TABLE passenger ADD age int;
select * from Passenger;
До:

После:

ОБНАВЛЕНИЕ ТАБЛИЦЫ “PASSENGER”
UPDATE passenger SET age=35
select * from Passenger

ДОБАВЛЕНИЯ НОВОГО СТОЛБЦА И ОБНОВЛЕНИЕ ДАННЫХ В ТАБЛИЦЕ “COMPANY”
ALTER TABLE company add counrty char(20);
UPDATE company SET counrty='Tallinn'
WHERE ID_comp=1;
До:

После:

СОСТАВЛЕНИЕ И ВЫПОЛНЕНИЕ SELECT ЗАПРОСОВ
SELECT avg(Age) AS KeskmineVanus
FROM Passenger

ОБЪЯСНИТЕ СЛОВАМИ, ЧТО ВЫПОЛНЯЕТ СЛЕДУЮЩИЙ ЗАПРОС И РЕЗУЛЬТАТ ЗАПРОСА КОПИРУЙТЕ
НИЖЕ:
SELECT plane, COUNT(plane) AS Kogus
FROM Trip
GROUP by plane

Показывает количество самолетов в стоблце “Plane”.
ВТОРОЙ ЗАПРОС
SELECT town_from, town_to, time_out, time_in, ([time_in]-[time_out]) AS Kestvus
FROM trip

УРОК 4.5
ЗАПРОС НА ОСНОВАНИИ ДВУХ ТАБЛИЦ
SELECT c.name, t.plane
FROM Company AS c, Trip AS t
WHERE c.ID_Comp=t.ID_Comp

Второй вариант выполнение задачи:
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'

НАЙТИ ВСЕ ГОРОДА, В КОТОРЫЕ ПУТЕШЕСТВУЕТ ОДИН ПРОИЗВОЛЬНО ВЫБРАННЫЙ ПАССАЖИР. ЗАПРОС НА ОСНОВЕ ТАБЛИЦ 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%'

ДОБАВЬ СВОЮ ТАБЛИЦУ К БАЗЕ ДАННЫХ, СВЯЖИ ЕЕ С ИМЕЮЩЕЙСЯ ТАБЛИЦЕЙ.
Для начала я создал новую таблитцу по название “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


СОСТАВЬ СВОЙ ЗАПРОС НА ОСНОВЕ ДВУХ СВЯЗАННЫХ ТАБЛИЦ, ВЫПОЛНИ ЕГО. СКОПИРУЙ РЕЗУЛЬТАТ.
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
