From 96db235d6e86d3b251786d4e3afde5039f35016c Mon Sep 17 00:00:00 2001 From: AyhanAghayev Date: Tue, 31 Mar 2026 03:59:07 -0700 Subject: [PATCH] task done --- solutions.sql | 155 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 solutions.sql diff --git a/solutions.sql b/solutions.sql new file mode 100644 index 0000000..649960e --- /dev/null +++ b/solutions.sql @@ -0,0 +1,155 @@ +-- exercise 1 + +DROP DATABASE IF EXISTS blogdb; +CREATE DATABASE blogdb; +USE blogdb; + +CREATE TABLE authors ( + id INT PRIMARY KEY AUTO_INCREMENT, + name VARCHAR(150) NOT NULL UNIQUE +); + +CREATE TABLE posts ( + id INT PRIMARY KEY AUTO_INCREMENT, + author_id INT NOT NULL, + title VARCHAR(200) NOT NULL, + word_count INT NOT NULL, + views INT NOT NULL, + FOREIGN KEY (author_id) REFERENCES authors(id) +); + +INSERT INTO authors (name) VALUES +('Maria Charlotte'), +('Juan Perez'), +('Gemma Alcocer'); + +INSERT INTO posts (author_id, title, word_count, views) VALUES +(1, 'Best Paint Colors', 814, 14), +(2, 'Small Space Decorating Tips', 1146, 221), +(1, 'Hot Accessories', 986, 105), +(1, 'Mixing Textures', 765, 22), +(2, 'Kitchen Refresh', 1242, 307), +(1, 'Homemade Art Hacks', 1002, 193), +(3, 'Refinishing Wood Floors', 1571, 7542); + +SELECT * FROM authors; +SELECT * FROM posts; + + +-- exercise 2 + +DROP DATABASE IF EXISTS airlinedb; +CREATE DATABASE airlinedb; +USE airlinedb; + +CREATE TABLE aircrafts ( + id INT PRIMARY KEY, + name VARCHAR(100) NOT NULL UNIQUE, + total_seats INT NOT NULL +); + +CREATE TABLE flights ( + flight_number VARCHAR(10) PRIMARY KEY, + aircraft_id INT NOT NULL, + mileage INT NOT NULL, + FOREIGN KEY (aircraft_id) REFERENCES aircrafts(id) +); + +CREATE TABLE customers ( + id INT PRIMARY KEY, + name VARCHAR(150) NOT NULL UNIQUE, + status VARCHAR(20) NOT NULL, + total_mileage INT NOT NULL +); + +CREATE TABLE bookings ( + id INT PRIMARY KEY, + customer_id INT NOT NULL, + flight_number VARCHAR(10) NOT NULL, + FOREIGN KEY (customer_id) REFERENCES customers(id), + FOREIGN KEY (flight_number) REFERENCES flights(flight_number), + UNIQUE (customer_id, flight_number) +); + +INSERT INTO aircrafts VALUES +(1, 'Boeing 747', 400), +(2, 'Airbus A330', 236), +(3, 'Boeing 777', 264); + +INSERT INTO flights VALUES +('DL143', 1, 135), +('DL122', 2, 4370), +('DL53', 3, 2078), +('DL222', 3, 1765), +('DL37', 1, 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, 'DL143'), +(2, 1, 'DL122'), +(3, 2, 'DL122'), +(4, 3, 'DL122'), +(5, 3, 'DL53'), +(6, 3, 'DL222'), +(7, 4, 'DL143'), +(8, 4, 'DL37'), +(9, 5, 'DL143'), +(10, 5, 'DL122'), +(11, 6, 'DL222'), +(12, 7, 'DL222'), +(13, 8, 'DL222'); + +SELECT * FROM aircrafts; +SELECT * FROM flights; +SELECT * FROM customers; +SELECT * FROM bookings; + + +-- exercuse 3 + +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