diff --git a/Exercise1.sql b/Exercise1.sql new file mode 100644 index 0000000..c1574a8 --- /dev/null +++ b/Exercise1.sql @@ -0,0 +1,27 @@ +CREATE TABLE authors ( + author_id INT PRIMARY KEY, + author_name VARCHAR(100) NOT NULL +); + +CREATE TABLE posts ( + post_id INT PRIMARY KEY, + title VARCHAR(200) NOT NULL, + word_count INT, + views INT, + author_id INT, + FOREIGN KEY (author_id) REFERENCES authors(author_id) +); + +INSERT INTO authors (author_id, author_name) VALUES +(1, 'Maria Charlotte'), +(2, 'Juan Perez'), +(3, 'Gemma Alcocer'); + +INSERT INTO posts (post_id, title, word_count, views, author_id) VALUES +(1, 'Best Paint Colors', 814, 14, 1), +(2, 'Small Space Decorating Tips', 1146, 221, 2), +(3, 'Hot Accessories', 986, 105, 1), +(4, 'Mixing Textures', 765, 22, 1), +(5, 'Kitchen Refresh', 1242, 307, 2), +(6, 'Homemade Art Hacks', 1002, 193, 1), +(7, 'Refinishing Wood Floors', 1571, 7542, 3); diff --git a/Exercise2.sql b/Exercise2.sql new file mode 100644 index 0000000..dc315dc --- /dev/null +++ b/Exercise2.sql @@ -0,0 +1,71 @@ +CREATE TABLE customers ( + customer_id INT PRIMARY KEY, + name VARCHAR(100), + status VARCHAR(20), + total_mileage INT +); + +CREATE TABLE aircrafts ( + aircraft_id INT PRIMARY KEY, + aircraft_name VARCHAR(100), + total_seats INT +); + +CREATE TABLE flights ( + flight_id INT PRIMARY KEY, + flight_number VARCHAR(10), + aircraft_id INT, + flight_mileage INT, + FOREIGN KEY (aircraft_id) REFERENCES aircrafts(aircraft_id) +); + +CREATE TABLE bookings ( + booking_id INT PRIMARY KEY, + customer_id INT, + flight_id INT, + FOREIGN KEY (customer_id) REFERENCES customers(customer_id), + FOREIGN KEY (flight_id) REFERENCES flights(flight_id) +); + + +INSERT INTO aircrafts VALUES +(1, 'Boeing 747', 400), +(2, 'Airbus A330', 236), +(3, 'Boeing 777', 264), +(4, 'Boeing 747', 531); + + +INSERT INTO flights VALUES +(1, 'DL143', 1, 135), +(2, 'DL122', 2, 4370), +(3, 'DL53', 3, 2078), +(4, 'DL222', 3, 1765), +(5, 'DL37', 4, 531); + +INSERT INTO customers VALUES +(1, 'Agustine Riviera', 'Silver', 115235), +(2, 'Alaina Sepulvida', 'None', 6008), +(3, 'Tom Jones', 'Gold', 205767), +(4, 'Sam Rio', 'None', 2653), +(5, 'Jessica James', 'Silver', 127656), +(6, 'Ana Janco', 'Silver', 136773), +(7, 'Jennifer Cortez', 'Gold', 300582), +(8, 'Christian Janco', 'Silver', 14642); + +INSERT INTO bookings VALUES +(1, 1, 1), +(2, 1, 2), +(3, 2, 2), +(4, 3, 2), +(5, 3, 3), +(6, 1, 1), +(7, 4, 1), +(8, 1, 1), +(9, 3, 4), +(10, 5, 1), +(11, 4, 1), +(12, 6, 4), +(13, 7, 4), +(14, 5, 2), +(15, 4, 5), +(16, 8, 4); diff --git a/Exercise3.sql b/Exercise3.sql new file mode 100644 index 0000000..41e764a --- /dev/null +++ b/Exercise3.sql @@ -0,0 +1,62 @@ +SELECT COUNT(DISTINCT flight_number) +FROM flights; +SELECT AVG(flight_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 aircraft_name LIKE '%Boeing%'; + +SELECT * +FROM flights +WHERE flight_mileage BETWEEN 300 AND 2000; + +SELECT c.status, AVG(f.flight_mileage) +FROM bookings b +JOIN customers c ON b.customer_id = c.customer_id +JOIN flights f ON b.flight_id = f.flight_id +GROUP BY c.status; + +SELECT a.aircraft_name, COUNT(*) AS total_bookings +FROM bookings b +JOIN customers c ON b.customer_id = c.customer_id +JOIN flights f ON b.flight_id = f.flight_id +JOIN aircrafts a ON f.aircraft_id = a.aircraft_id +WHERE c.status = 'Gold' +GROUP BY a.aircraft_name +ORDER BY total_bookings DESC +FETCH FIRST 1 ROW ONLY; + + +CREATE TABLE customers ( + customer_id INT PRIMARY KEY, + name VARCHAR(100) NOT NULL, + status VARCHAR(20) CHECK (status IN ('Gold','Silver','None')), + total_mileage INT DEFAULT 0 CHECK (total_mileage >= 0) +); + +CREATE TABLE aircrafts ( + aircraft_id INT PRIMARY KEY, + aircraft_name VARCHAR(100) NOT NULL, + total_seats INT NOT NULL CHECK (total_seats > 0) +); + +CREATE TABLE flights ( + flight_id INT PRIMARY KEY, + flight_number VARCHAR(10) UNIQUE NOT NULL, + aircraft_id INT NOT NULL, + flight_mileage INT CHECK (flight_mileage > 0), + FOREIGN KEY (aircraft_id) REFERENCES aircrafts(aircraft_id) +); +