Загрузка данных


--1
CREATE TABLE Pilots
(
  id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  pilot_name TEXT NOT NULL,
  experience INT
);

--2
INSERT INTO Pilots (pilot_name, experience)
VALUES ('Иван', 5),
('Петр', 2),
('Павел', 7),
('Борис', 1);

--3
ALTER TABLE Pilots
ADD COLUMN phone VARCHAR(12) NOT NULL DEFAULT '';

UPDATE Pilots SET phone = '+70000000000' WHERE pilot_name = 'Иван';
UPDATE Pilots SET phone = '+70000000001' WHERE pilot_name = 'Петр';
UPDATE Pilots SET phone = '+70000000002' WHERE pilot_name = 'Павел';
UPDATE Pilots SET phone = '+70000000003' WHERE pilot_name = 'Борис';

ALTER TABLE Pilots
ALTER COLUMN phone DROP DEFAULT;

--4
CREATE VIEW Airport_name
AS
 SELECT airport_code, airport_name, city
 FROM Airports_data;

SELECT * FROM Airport_name;

--5
CREATE VIEW Siberian_airports
AS
 SELECT * FROM Airports_data
 WHERE city->>'ru' = 'Новосибирск' OR city->>'ru' = 'Кемерово';

SELECT * FROM Siberian_airports;

--6
CREATE VIEW Fl_from_moscow_or_st_petersburg
AS
 SELECT city FROM Airports_data
 WHERE airport_code IN (
  SELECT arrival_airport FROM Flights
  WHERE departure_airport IN (
   SELECT airport_code FROM Airports_data
   WHERE city->>'ru' IN ('Москва', 'Санкт-Петербург')
  )
 )
 ORDER BY city DESC;

SELECT * FROM Fl_from_moscow_or_st_petersburg;

--7
CREATE VIEW  flights_city
AS
 SELECT A.city, COUNT(F.departure_airport) AS count_flights
 FROM Airports_data A LEFT JOIN Flights F
 ON A.airport_code = F.departure_airport
 GROUP BY A.city;

SELECT * FROM flights_city
WHERE city->>'ru' LIKE ('А%');

--8
CREATE VIEW Pass_name_from_domodedovo
AS
 SELECT T.ticket_no, T.passenger_name
 FROM Ticket_flights TF JOIN Tickets T
 ON TF.ticket_no = T.ticket_no
 JOIN Flights F
 ON TF.flight_id = F.flight_id
 WHERE F.scheduled_departure BETWEEN '2017-09-05 11:15:00+05' AND '2017-09-05 17:15:00+05' AND departure_airport IN (
  SELECT airport_code FROM Airports_data
  WHERE city->>'ru' = 'Домодедово'
 );

SELECT * FROM Pass_name_from_domodedovo;