1. Database and Table Creation
1. Database and Table Creation
USE flight_management_system;
→ Selects the database to execute queries in.
Table Creation
Flights Table: Stores flight details (ID, airline, source, destination, status,
price).
Passengers Table: Stores passenger details (ID, name, email, phone number, passport
number).
Bookings Table: Links flights and passengers, storing booking details (ID, seat
number, status).
Crew Table: Stores flight crew details (ID, name, role, associated flight).
Payments Table: Stores payment details (ID, booking ID, amount, payment method,
status).
2. Data Insertion
INSERT INTO flights ... VALUES (...);
→ Adds sample flight records.
INSERT INTO passengers ... VALUES (...);
→ Adds passengers.
INSERT INTO bookings ... VALUES (...);
→ Adds flight bookings for passengers.
INSERT INTO crew ... VALUES (...);
→ Adds crew members to flights.
INSERT INTO payments ... VALUES (...);
→ Adds payment records linked to bookings.
3. Table Modification
ALTER TABLE flights ADD (departuretime DATETIME, arrivaltime DATETIME);
→ Adds departure and arrival times to the flights table.
4. Data Updates
UPDATE bookings SET destination = CASE ... END;
→ Updates destination based on bookingid.
7. Subqueries
SELECT * FROM passengers WHERE passengerid IN (SELECT passengerid FROM bookings);
→ Retrieves passengers who have bookings.
9. Joins
Inner Join:
sql
Copy
Edit
SELECT c.fullname AS crew_member, c.role, f.airline, f.source, f.destination
FROM crew c
INNER JOIN flights f ON c.flightid = f.flightid;
→ Combines crew and flights based on flightid.
Left Join:
sql
Copy
Edit
SELECT f.flightid, f.airline, f.source, f.destination, b.bookingid
FROM flights f
LEFT JOIN bookings b ON f.flightid = b.flightid;
→ Retrieves all flights with corresponding bookings.
Right Join:
sql
Copy
Edit
SELECT p.paymentid, b.bookingid, b.passengerid, p.amount, p.paymentmethod, p.status
FROM bookings b
RIGHT JOIN payments p ON b.bookingid = p.bookingid;
→ Retrieves all payments with booking details.
SELECT source AS location FROM flights UNION ALL SELECT destination FROM flights;
→ Lists all locations (including duplicates).
11. Views
Simple View:
sql
Copy
Edit
CREATE VIEW active_flights AS
SELECT flightid, airline, source, destination, departuretime, status
FROM flights
WHERE status = 'scheduled';
→ Creates a view for scheduled flights.
Complex View:
sql
Copy
Edit
CREATE VIEW passenger_booking_details AS
SELECT p.fullname AS passenger_name, f.airline, f.source, f.destination,
f.departuretime, b.status AS booking_status
FROM bookings b
JOIN passengers p ON b.passengerid = p.passengerid
JOIN flights f ON b.flightid = f.flightid;
→ Creates a view showing passenger booking details.
Calling it:
sql
Copy
Edit
CALL GetFlightsByStatus('arrived');
→ Fetches flights with status 'arrived'.
14. Triggers
sql
Copy
Edit
DELIMITER //
CREATE TRIGGER auto_payment_status
AFTER INSERT ON bookings
FOR EACH ROW
BEGIN
UPDATE payments
SET status = 'successful'
WHERE bookingid = NEW.bookingid;
END;
//
DELIMITER ;
→ Automatically updates payment status when a new booking is inserted.