0% found this document useful (0 votes)
17 views

1. Database and Table Creation

The document outlines the creation and management of a flight management system database, including the creation of tables for flights, passengers, bookings, crew, and payments. It details data insertion, table modification, updates, and various SQL operations such as aggregation, joins, and subqueries. Additionally, it covers advanced topics like views, stored procedures, triggers, and user management for database security and access control.

Uploaded by

Karthika R
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

1. Database and Table Creation

The document outlines the creation and management of a flight management system database, including the creation of tables for flights, passengers, bookings, crew, and payments. It details data insertion, table modification, updates, and various SQL operations such as aggregation, joins, and subqueries. Additionally, it covers advanced topics like views, stored procedures, triggers, and user management for database security and access control.

Uploaded by

Karthika R
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

1.

Database and Table Creation


CREATE DATABASE flight_management_system;
→ Creates a database named flight_management_system.

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.

ALTER TABLE bookings ADD (source VARCHAR(40), destination VARCHAR(40),


departuretime DATETIME, arrivaltime DATETIME);
→ Adds more details to bookings.

ALTER TABLE bookings RENAME COLUMN depaturetime TO departuretime;


→ Fixes a typo in the column name.

4. Data Updates
UPDATE bookings SET destination = CASE ... END;
→ Updates destination based on bookingid.

UPDATE bookings b JOIN flights f ON b.flightid = f.flightid SET b.source =


f.source, b.arrivaltime = f.arrivaltime, b.departuretime = f.departuretime;
→ Updates bookings table with flight information.

5. Aggregation & Sorting


SELECT SUM(amount) FROM payments WHERE status = 'successful';
→ Calculates total revenue.

SELECT flightid, COUNT(*) FROM bookings GROUP BY flightid;


→ Counts bookings per flight.

SELECT airline, AVG(price) FROM flights GROUP BY airline;


→ Calculates the average ticket price per airline.

SELECT * FROM flights ORDER BY price ASC;


→ Lists flights in ascending order of price.
6. Date and Time Functions
SELECT flightid, TIMEDIFF(arrivaltime, departuretime) AS flight_duration FROM
flights;
→ Calculates flight duration.

SELECT * FROM bookings WHERE DATE(bookingdate) = CURDATE();


→ Finds bookings made today.

SELECT flightid, YEAR(departuretime), MONTH(departuretime), DAY(departuretime) FROM


flights;
→ Extracts year, month, and day from departure time.

7. Subqueries
SELECT * FROM passengers WHERE passengerid IN (SELECT passengerid FROM bookings);
→ Retrieves passengers who have bookings.

SELECT fullname, (SELECT status FROM bookings WHERE passengers.passengerid =


bookings.passengerid LIMIT 1) AS booking_status FROM passengers;
→ Fetches passenger name with their booking status.

SELECT * FROM passengers WHERE EXISTS (SELECT 1 FROM bookings WHERE


bookings.passengerid = passengers.passengerid);
→ Similar to IN, checks if a passenger has a booking.

SELECT * FROM passengers WHERE passengerid IN (SELECT passengerid FROM bookings


WHERE flightid = (SELECT flightid FROM flights ORDER BY price ASC LIMIT 1));
→ Finds passengers on the cheapest flight.

8. LIKE and Pattern Matching


SELECT * FROM passengers WHERE fullname LIKE 'a%';
→ Names starting with 'A'.

SELECT * FROM passengers WHERE fullname LIKE '%a';


→ Names ending with 'A'.

SELECT * FROM passengers WHERE fullname LIKE '%an%';


→ Names containing 'an'.

SELECT * FROM payments WHERE status LIKE 'pending';


→ Finds pending payments.

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.

10. UNION and UNION ALL


SELECT source AS location FROM flights UNION SELECT destination FROM flights;
→ Lists unique locations from source and destination.

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.

12. Regular Expressions


SELECT * FROM passengers WHERE REGEXP_LIKE(phonenumber, '^97');
→ Finds phone numbers starting with '97'.

SELECT passportnumber, REGEXP_REPLACE(passportnumber, '[0-9]', 'X') AS


masked_passport FROM passengers;
→ Masks passport numbers.

SELECT email, REGEXP_SUBSTR(email, '^[^@]+') AS username FROM passengers;


→ Extracts the username from emails.

13. Stored Procedures


sql
Copy
Edit
DELIMITER //
CREATE PROCEDURE GetFlightsByStatus(IN flight_status
ENUM('scheduled','departed','arrived','cancelled'))
BEGIN
SELECT * FROM flights WHERE status = flight_status;
END //
DELIMITER ;
→ Creates a stored procedure to fetch flights by status.

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.

15. User Management


CREATE USER 'flightadmin'@'localhost' IDENTIFIED BY 'Admin123';
→ Creates a new user.

GRANT ALL PRIVILEGES ON flight_management_system.* TO 'flightadmin'@'localhost';


→ Grants full privileges.

ALTER USER 'flightadmin'@'localhost' IDENTIFIED BY 'flightadmin123';


→ Changes the password.

REVOKE ALL PRIVILEGES ON flight_management_system.* FROM 'admin_user'@'localhost';


→ Revokes privileges.

You might also like