diff --git a/LabSQL/.idea/.gitignore b/LabSQL/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/LabSQL/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/LabSQL/.idea/dataSources.xml b/LabSQL/.idea/dataSources.xml new file mode 100644 index 0000000..250fbf6 --- /dev/null +++ b/LabSQL/.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/LabSQL/.idea/misc.xml b/LabSQL/.idea/misc.xml new file mode 100644 index 0000000..639900d --- /dev/null +++ b/LabSQL/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LabSQL/.idea/modules.xml b/LabSQL/.idea/modules.xml new file mode 100644 index 0000000..58fa5dd --- /dev/null +++ b/LabSQL/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/LabSQL/.idea/sqldialects.xml b/LabSQL/.idea/sqldialects.xml new file mode 100644 index 0000000..a1d288c --- /dev/null +++ b/LabSQL/.idea/sqldialects.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/LabSQL/.idea/vcs.xml b/LabSQL/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/LabSQL/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LabSQL/LabSQL.iml b/LabSQL/LabSQL.iml new file mode 100644 index 0000000..9a5cfce --- /dev/null +++ b/LabSQL/LabSQL.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/LabSQL/airline.sql b/LabSQL/airline.sql new file mode 100644 index 0000000..1114936 --- /dev/null +++ b/LabSQL/airline.sql @@ -0,0 +1,97 @@ +CREATE DATABASE airline; + +USE airline; + +CREATE TABLE customers ( + customer_name VARCHAR(255) PRIMARY KEY, + customer_status VARCHAR(255), + total_customer_mileage INT +); + +CREATE TABLE aircrafts ( + aircraft VARCHAR(255) PRIMARY KEY, + total_aircraft_seats INT +); + +CREATE TABLE flights ( + flight_number VARCHAR(255) PRIMARY KEY, + aircraft VARCHAR(255), + flight_mileage INT, + FOREIGN KEY (aircraft) REFERENCES aircrafts(aircraft) +); + +CREATE TABLE bookings ( + customer_name VARCHAR(255), + flight_number VARCHAR(255), + PRIMARY KEY (customer_name, flight_number), + FOREIGN KEY (customer_name) REFERENCES customers(customer_name), + FOREIGN KEY (flight_number) REFERENCES flights(flight_number) +); + +INSERT INTO customers (customer_name, customer_status, total_customer_mileage) + VALUES + ('Agustine Riviera', 'Silver', 115235), + ('Alaina Sepulvida', 'None', 6008), + ('Tom Jones', 'Gold', 205767), + ('Sam Rio', 'None', 2653), + ('Jessica James', 'Silver', 127656), + ('Ana Janco', 'Silver', 136773), + ('Jennifer Cortez', 'Gold', 300582), + ('Christian Janco', 'Silver', 14642); + +INSERT INTO aircrafts (aircraft, total_aircraft_seats) + VALUES + ('Boeing 747', 400), + ('Airbus A330', 236), + ('Boeing 777', 264); + + +INSERT INTO flights (flight_number, aircraft, flight_mileage) + VALUES + ('DL143', 'Boeing 747', 135), + ('DL122', 'Airbus A330', 4370), + ('DL53', 'Boeing 777', 2078), + ('DL222', 'Boeing 777', 1765), + ('DL37', 'Boeing 747', 531); + +INSERT INTO bookings (customer_name, flight_number) +VALUES + ('Agustine Riviera', 'DL143'), + ('Agustine Riviera', 'DL122'), + ('Alaina Sepulvida', 'DL122'), + ('Tom Jones', 'DL122'), + ('Tom Jones', 'DL53'), + ('Tom Jones', 'DL222'), + ('Sam Rio', 'DL143'), + ('Sam Rio', 'DL37'), + ('Jessica James', 'DL143'), + ('Jessica James', 'DL122'), + ('Ana Janco', 'DL222'), + ('Jennifer Cortez', 'DL222'), + ('Christian Janco', 'DL222'); + + +SELECT COUNT(DISTINCT flight_number) FROM flights; +SELECT AVG(flight_mileage) FROM flights; +SELECT AVG(aircrafts.total_aircraft_seats) FROM aircrafts; +SELECT customer_status, AVG(total_customer_mileage) FROM customers GROUP BY customer_status; +SELECT customer_status, MAX(total_customer_mileage) FROM customers GROUP BY customer_status; +SELECT COUNT(*) FROM aircrafts WHERE aircraft LIKE '%Boeing%'; +SELECT * FROM flights WHERE flight_mileage BETWEEN 300 AND 2000; + +SELECT c.customer_status, AVG(f.flight_mileage) +FROM bookings b + JOIN customers c ON b.customer_name = c.customer_name + JOIN flights f ON b.flight_number = f.flight_number +GROUP BY c.customer_status; + +SELECT a.aircraft, COUNT(*) AS total_bookings +FROM bookings b + JOIN customers c ON b.customer_name = c.customer_name + JOIN flights f ON b.flight_number = f.flight_number + JOIN aircrafts a ON f.aircraft = a.aircraft +WHERE c.customer_status = 'Gold' +GROUP BY a.aircraft +ORDER BY total_bookings DESC +LIMIT 1; + diff --git a/LabSQL/blog.sql b/LabSQL/blog.sql new file mode 100644 index 0000000..2b6728a --- /dev/null +++ b/LabSQL/blog.sql @@ -0,0 +1,31 @@ +CREATE DATABASE blog; + +USE blog; + +CREATE TABLE authors ( + author VARCHAR(255) NOT NULL PRIMARY KEY +); + +CREATE TABLE articles ( + author VARCHAR(255) NOT NULL, + title VARCHAR(255) NOT NULL, + word_count INT NOT NULL, + views INT NOT NULL, + FOREIGN KEY (author) REFERENCES authors(author) +); + +INSERT INTO authors (author) +VALUES + ('Maria Charlotte'), + ('Juan Perez'), + ('Gemma Alcocer'); + +INSERT INTO articles (author, title, word_count, views) +VALUES + ('Maria Charlotte', 'Best Paint Colors', 814, 14), + ('Juan Perez', 'Small Space Decorating Tips', 1146, 221), + ('Maria Charlotte', 'Hot Accessories', 986, 105), + ('Maria Charlotte', 'Mixing Textures', 765, 22), + ('Juan Perez', 'Kitchen Refresh', 1242, 307), + ('Maria Charlotte', 'Homemade Art Hacks', 1002, 193), + ('Gemma Alcocer', 'Refinishing Wood Floors', 1571, 7542);; \ No newline at end of file diff --git a/diagram-schema.png b/diagram-schema.png new file mode 100644 index 0000000..b57063d Binary files /dev/null and b/diagram-schema.png differ