From 5430e7fcdd75bfc4a8a725465f15726467469fd5 Mon Sep 17 00:00:00 2001 From: Lala Aliyeva Date: Thu, 2 Apr 2026 15:38:20 +0400 Subject: [PATCH 1/2] lab 3.02 --- .idea/.gitignore | 10 ++++ ...lab-java-normalization-ddl-aggregation.iml | 9 ++++ .idea/misc.xml | 6 +++ .idea/modules.xml | 8 ++++ .idea/vcs.xml | 6 +++ solution.sql | 48 +++++++++++++++++++ 6 files changed, 87 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/lab-java-normalization-ddl-aggregation.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 solution.sql diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..ab1f416 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Ignored default folder with query files +/queries/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/lab-java-normalization-ddl-aggregation.iml b/.idea/lab-java-normalization-ddl-aggregation.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/lab-java-normalization-ddl-aggregation.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..07115cd --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..152076a --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/solution.sql b/solution.sql new file mode 100644 index 0000000..1a2fad0 --- /dev/null +++ b/solution.sql @@ -0,0 +1,48 @@ + +CREATE TABLE author ( +id INT AUTO_INCREMENT , +name VARCHAR(100) NOT NULL, +PRIMARY KEY (id) +); +CREATE TABLE book ( +id INT AUTO_INCREMENT, +title VARCHAR(100) NOT NULL, +word_count int, +views int, +PRIMARY KEY (id), +FOREIGN KEY (id) REFERENCES author(id) +); + + +CREATE TABLE customers ( +id INT AUTO_INCREMENT PRIMARY KEY, +customer_name VARCHAR(100) NOT NULL, +customer_milage INT, +status VARCHAR (30) DEFAULT 'none' +); +CREATE TABLE aircrafts ( +id INT AUTO_INCREMENT PRIMARY KEY, +aircraft_name VARCHAR(100), +aircraft_seats INT +); +CREATE TABLE flights ( +id INT AUTO_INCREMENT PRIMARY KEY, +flight_number VARCHAR(6), +flight_milage INT, +aircraft_id INT, +FOREIGN KEY (aircraft_id) REFERENCES aircrafts(id) +); +CREATE TABLE bookings ( +id INT AUTO_INCREMENT PRIMARY KEY, +customer_id INT, +flight_id INT, +FOREIGN KEY (customer_id) REFERENCES customers(id), +FOREIGN KEY (flight_id) REFERENCES flights(id) +); + +SELECT c.id,c.customer_name,c.customer_milage,a.aircraft_name,a.aircraft_seats +FROM bookings b +JOIN customers c ON b.customer_id = c.id +JOIN flights f ON b.flight_id = f.id +JOIN aircrafts a ON f.aircraft_id = a.id ; + From 635e326fcdbd9ade27283071d2942ee29b40bba6 Mon Sep 17 00:00:00 2001 From: Lala Aliyeva Date: Thu, 2 Apr 2026 17:16:41 +0400 Subject: [PATCH 2/2] lab 3.02 ,revised --- solution.sql | 109 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 92 insertions(+), 17 deletions(-) diff --git a/solution.sql b/solution.sql index 1a2fad0..aee593b 100644 --- a/solution.sql +++ b/solution.sql @@ -4,16 +4,17 @@ id INT AUTO_INCREMENT , name VARCHAR(100) NOT NULL, PRIMARY KEY (id) ); -CREATE TABLE book ( -id INT AUTO_INCREMENT, -title VARCHAR(100) NOT NULL, -word_count int, -views int, -PRIMARY KEY (id), -FOREIGN KEY (id) REFERENCES author(id) -); - +CREATE TABLE posts ( + id INT AUTO_INCREMENT PRIMARY KEY, + author_id INT, + title VARCHAR(255) NOT NULL, + word_count INT, + views INT, + FOREIGN KEY (author_id) REFERENCES authors(id) +); + -- TASK 2 + CREATE TABLE customers ( id INT AUTO_INCREMENT PRIMARY KEY, customer_name VARCHAR(100) NOT NULL, @@ -26,23 +27,97 @@ aircraft_name VARCHAR(100), aircraft_seats INT ); CREATE TABLE flights ( -id INT AUTO_INCREMENT PRIMARY KEY, -flight_number VARCHAR(6), -flight_milage INT, -aircraft_id INT, -FOREIGN KEY (aircraft_id) REFERENCES aircrafts(id) + flight_number VARCHAR(10) PRIMARY KEY, + aircraft_id INT, + milage INT, + FOREIGN KEY (aircraft_id) REFERENCES aircrafts(id) ); + CREATE TABLE bookings ( id INT AUTO_INCREMENT PRIMARY KEY, customer_id INT, -flight_id INT, +flight_number VARCHAR(10), FOREIGN KEY (customer_id) REFERENCES customers(id), -FOREIGN KEY (flight_id) REFERENCES flights(id) +FOREIGN KEY (flight_number) REFERENCES flights(flight_number) ); + /*INSERTIONS */ +INSERT INTO aircrafts (aircraft_name, aircraft_seats) VALUES +('Boeing 747', 400), +('Airbus A330', 236), +('Boeing 777', 264); + +INSERT INTO flights (flight_number, aircraft_id,milage) VALUES +('DL143', 1, 135), +('DL122', 2, 4370), +('DL53', 3, 2078), +('DL222', 3, 1765), +('DL37', 1, 531); + +INSERT INTO customers (customer_name,customer_milage,status) VALUES +('Agustine Riviera', 115235, 'Silver'), +('Alaina Sepulvida', 6008, 'None'), +('Tom Jones', 205767, 'Gold'), +('Sam Rio', 2653, 'None'), +('Jessica James', 127656, 'Silver'), +('Ana Janco', 136773, 'Silver'), +('Jennifer Cortez', 300582, 'Gold'), +('Christian Janco', 14642, 'Silver'); + +INSERT INTO bookings (customer_id, flight_number) VALUES +(1, 'DL143'), +(1, 'DL122'), +(2, 'DL122'), +(1, 'DL143'), +(3, 'DL122'), +(3, 'DL53'), +(1, 'DL143'), +(4, 'DL143'), +(1, 'DL143'), +(3, 'DL222'), +(5, 'DL143'), +(4, 'DL143'), +(6, 'DL222'), +(7, 'DL222'), +(5, 'DL122'), +(4, 'DL37'), +(8, 'DL222'); + + SELECT c.id,c.customer_name,c.customer_milage,a.aircraft_name,a.aircraft_seats FROM bookings b JOIN customers c ON b.customer_id = c.id -JOIN flights f ON b.flight_id = f.id +JOIN flights f ON b.flight_number = f.flight_number JOIN aircrafts a ON f.aircraft_id = a.id ; + +SELECT COUNT(DISTINCT flight_number) FROM flights; + +SELECT AVG(milage) FROM flights; + +SELECT AVG(aircraft_seats) FROM aircrafts; + +SELECT status, AVG(customer_milage) FROM customers GROUP BY status; + +SELECT status, MAX(customer_milage) FROM customers GROUP BY status; + +SELECT COUNT(*) FROM aircrafts WHERE aircraft_name LIKE '%Boeing%'; + +SELECT * FROM flights WHERE milage BETWEEN 300 AND 2000; + +SELECT c.status, AVG(f.milage) +FROM bookings b +JOIN customers c ON b.customer_id = c.id +JOIN flights f ON b.flight_number = f.flight_number +GROUP BY c.status; + +SELECT a.aircraft_name, COUNT(*) AS total_bookings +FROM bookings b +JOIN customers c ON b.customer_id = c.id +JOIN flights f ON b.flight_number = f.flight_number +JOIN aircrafts a ON f.aircraft_id = a.id +WHERE c.status = 'Gold' +GROUP BY a.aircraft_name +ORDER BY total_bookings DESC +LIMIT 1; +