diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..7bc07ec --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Environment-dependent path to Maven home directory +/mavenHomeManager.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..0654aca --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,17 @@ + + + + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://localhost:3306 + + + + + + $ProjectFileDir$ + + + \ No newline at end of file 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..31e1ebc --- /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/sqldialects.xml b/.idea/sqldialects.xml new file mode 100644 index 0000000..1225da6 --- /dev/null +++ b/.idea/sqldialects.xml @@ -0,0 +1,7 @@ + + + + + + + \ 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/AIrline.sql b/AIrline.sql new file mode 100644 index 0000000..f56ba0b --- /dev/null +++ b/AIrline.sql @@ -0,0 +1,112 @@ +CREATE DATABASE airline_db; + +USE airline_db; + +CREATE TABLE customers( + id INT AUTO_INCREMENT PRIMARY KEY, + customer_name varchar(50), + status varchar(50), + total_mileage INT +); + +CREATE TABLE aircrafts( + id INT AUTO_INCREMENT PRIMARY KEY, + name varchar(50), + total_seats INT +); + +CREATE TABLE flights +( + flight_number varchar(5) PRIMARY KEY , + mileage INT, + aircraft_id INT, + FOREIGN KEY (aircraft_id) REFERENCES aircrafts(id) +); + +CREATE TABLE bookings +( + id INT AUTO_INCREMENT PRIMARY KEY, + customer_id INT, + flight_number varchar(5), + FOREIGN KEY (flight_number) REFERENCES flights(flight_number), + FOREIGN KEY (customer_id) REFERENCES customers(id) +); + +INSERT INTO customers(id, customer_name, status, total_mileage) + VALUES + (1,'Agustine Riviera','Silver',115235), + (2,'Alaina Sepulvida','None',6008), + (3,'Tom Jones','Gold',205767), + (4,'Jessica James','Silver',127656), + (5,'Sam Rio','None',2653), + (6,'Ana Janco','Silver',136773), + (7,'Jennifer Cortez','Gold',300582), + (8,'Christian Janco','Silver',14642) +; + +INSERT INTO aircrafts(id, name, total_seats) + VALUES + (1,'Boeing 747',400), + (2,'Airbus A330',236), + (3,'Boeing 777',264) +; + +INSERT INTO flights( flight_number, mileage, aircraft_id) + VALUES + ('DL143',135,1), + ('DL122',4370,2), + ('DL53',2078,3), + ('DL222',1765,3), + ('DL37',531,1) +; + +INSERT INTO bookings(id, customer_id, flight_number) + VALUES + (1, 1, 'DL143'), + (2, 1, 'DL122'), + (3, 2, 'DL122'), + (4, 1, 'DL143'), + (5, 3, 'DL122'), + (6, 3, 'DL53'), + (7, 1, 'DL143'), + (8, 4, 'DL143'), + (9, 1, 'DL143'), + (10, 3, 'DL222'), + (11, 5, 'DL143'), + (12, 4, 'DL143'), + (13, 6, 'DL222'), + (14, 7, 'DL222'), + (15, 5, 'DL122'), + (16, 4, 'DL37'), + (17, 8, 'DL222'); +; + +SELECT COUNT(DISTINCT flight_number) FROM flights; + +SELECT AVG(mileage) FROM flights; + +SELECT AVG(total_seats) FROM aircrafts; + +SELECT status, AVG(total_mileage) FROM customers GROUP BY status; + +SELECT status, MAX(total_mileage) FROM customers GROUP BY status; + +SELECT COUNT(*) FROM aircrafts WHERE name LIKE '%Boeing%'; + +SELECT * FROM flights WHERE mileage BETWEEN 300 AND 2000; + +SELECT c.status, AVG(f.mileage) +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.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.name +ORDER BY total_bookings DESC + LIMIT 1; \ No newline at end of file diff --git a/Books.sql b/Books.sql new file mode 100644 index 0000000..5a71b4e --- /dev/null +++ b/Books.sql @@ -0,0 +1,35 @@ +CREATE DATABASE book_db; + +USE book_db; + +CREATE TABLE author +( + id int AUTO_INCREMENT PRIMARY KEY, + author varchar(50) +); +CREATE TABLE books +( + id int AUTO_INCREMENT PRIMARY KEY, + author_id int, + title varchar(50), + word_count int, + views int, + FOREIGN KEY (author_id) REFERENCES author (id) +); + +INSERT INTO author(id, author) + VALUES + (1,'Maria Charlotte'), + (2,'Juan Perez'), + (3,'Gemma Alcocer') +; + +INSERT INTO books(id, author_id, title, word_count, views) + VALUES + (1,1,'Best Paint Colors',814,14), + (2,2,'Small Space Decorating Tips',1146,221), + (3,1,'Hot Accessories',986,105), + (4,1,'Mixing Textures',765,22), + (5,1,'Homemade Art Hacks',1002,193), + (6,3,'Refinishing Wood Floors',1571,7542) +