CREATE TABLE Bookings ( SSN INTEGER PRIMARY KEY, Train_Number INTEGER NOT NULL, Ticket_Type VARCHAR(7) NOT NULL, Status VARCHAR(6) NOT NULL ); CREATE TABLE Passengers ( Fname VARCHAR(15) NOT NULL, Lname VARCHAR(15) NOT NULL, Address VARCHAR(50) NOT NULL, City VARCHAR(15) NOT NULL, County VARCHAR(15) NOT NULL, Phone VARCHAR(13), SSN INTEGER PRIMARY KEY, Bdate DATE NOT NULL ); CREATE TABLE Trains ( Train_Number INTEGER PRIMARY KEY, Train_Name VARCHAR(16) NOT NULL, Pfare INTEGER, Gfare INTEGER NOT NULL, Source VARCHAR(15), Destination VARCHAR(15) NOT NULL, Days VARCHAR(50) ); CREATE TABLE Train_Status ( Train_Day VARCHAR(10), Train VARCHAR(25) PRIMARY KEY, Pseats_Ava INTEGER, Gseats_Ava INTEGER, Pseats_Occ INTEGER, Gseats_Occ INTEGER ); INSERT INTO Bookings (SSN, Train_Number, Ticket_Type, Status) VALUES (284965676, 2, 'Premium', 'Booked'), (317434088, 2, 'Premium', 'Booked'), (240471168, 2, 'General', 'Booked'), (310908858, 2, 'General', 'Booked'), (322273872, 2, 'General', 'Booked'), (277292710, 2, 'General', 'Booked'), (302548590, 2, 'General', 'WaitL' ), (331293204, 2, 'General', 'WaitL' ), (264816896, 3, 'Premium', 'Booked'), (286411536, 3, 'Premium', 'Booked'), (294860856, 3, 'Premium', 'Booked'), (285200976, 3, 'General', 'Booked'), (256558303, 3, 'General', 'Booked'), (268682534, 3, 'General', 'Booked'), (272913578, 3, 'General', 'Booked'), (250951162, 3, 'Premium', 'WaitL' ), (272610795, 4, 'Premium', 'Booked'), (309323096, 4, 'Premium', 'Booked'), (331160133, 4, 'Premium', 'Booked'), (290123298, 4, 'General', 'Booked'), (814654987, 4, 'General', 'Booked'), (987654321, 4, 'General', 'Booked'), (345986511, 4, 'Premium', 'WaitL' ), (565110925, 4, 'Premium', 'WaitL' ), (667025599, 4, 'General', 'WaitL' ), (343114946, 4, 'General', 'WaitL' ); INSERT INTO Passengers (Fname, Lname, Address, City, County, Phone, SSN, Bdate) VALUES ('James', 'Butt', '6649 N Blue Gum St', 'New Orleans', 'Orleans', '504-845-1427', 264816896, '1968-10-10'), ('Josephine', 'Darakjy', '4 B Blue Ridge Blvd', 'Brighton', 'Livingston', '810-374-9840', 240471168, '1975-11-01'), ('Art', 'Venere', '8 W Cerritos Ave #54', 'Bridgeport', 'Gloucester', '605-264-4130', 285200976, '1982-11-13'), ('Lenna', 'Paprocki', '639 Main St', 'Anchorage', 'Anchorage', '907-921-2010', 309323096, '1978-08-09'), ('Donette', 'Foller', '34 Center St', 'Hamilton', 'Butler', '513-549-4561', 272610795, '1990-06-11'), ('Simona', 'Morasca', '3 Mcauley Dr', 'Ashland', 'Ashland', '419-800-6759', 250951162, '1994-08-15'), ('Mitsue', 'Tollner', '7 Eads St', 'Chicago', 'Cook', '773-924-8565', 272913578, '1984-07-04'), ('Leota', 'Dilliard', '7 W Jackson Blvd', 'San Jose', 'Santa Clara', '408-813-1105', 268682534, '1991-05-09'), ('Sage', 'Wieser', '5 Boston Ave #88', 'Sioux Falls', 'Minnehaha', '605-794-4895', 310908858, '1982-02-25'), ('Kris', 'Marrier', '228 Runamuck Pl #2808', 'Baltimore', 'Baltimore City', '410-804-4694', 322273872, '1956-04-04'), ('Minna', 'Amigon', '2371 Jerrold Ave', 'Kulpsville', 'Montgomery', '215-422-8694', 256558303, '1995-09-09'), ('Abel', 'Maclead', '37275 St Rt 17m M', 'Middle IslAND', 'Suffolk', '631-677-3675', 302548590, '1960-11-05'), ('Kiley', 'Caldarera', '25 E 75th St #69', 'Los Angeles', 'Los Angeles', '310-254-3084', 284965676, '1981-05-09'), ('Graciela', 'Ruta', '98 Connecticut Ave Nw', 'Chagrin Falls', 'Geauga', '440-579-7763', 277292710, '1982-02-25'), ('Cammy', 'Albares', '56 E Morehead St', 'Laredo', 'Webb', '956-841-7216', 331160133, '1956-04-04'), ('Mattie', 'Poquette', '73 State Road 434 E', 'Phoenix', 'Maricopa', '605-953-6360', 331293204, '1995-09-09'), ('Meaghan', 'Garufi', '69734 E Carrillo St', 'Mc Minnville', 'Warren', '931-235-7959', 290123298, '1960-11-02'), ('Gladys', 'Rim', '322 New Horizon Blvd', 'Milwaukee', 'Milwaukee', '414-377-2880', 286411536, '1991-05-09'), ('Yuki', 'Whobrey', '1 State Route 27', 'Taylor', 'Wayne', '313-341-4470', 294860856, '1985-02-25'), ('Fletcher', 'Flosi', '394 Manchester Blvd', 'Rockford', 'Winnebago', '815-426-5657', 317434088, '1961-04-04'), ('Emily', 'Parker', '1234 Elm Street', 'Los Angeles', 'Los Angeles', '213-555-7890', 814654987, '1985-05-15'), ('Michael', 'Smith', '5678 Oak Avenue', 'Chicago', 'Cook', '312-555-1234', 987654321, '1973-09-20'), ('Sarah', 'Johnson', '4321 Maple Lane', 'New York', 'New York', '212-555-5678', 345986511, '1990-03-25'), ('David', 'Willson', '7890 Birch Road', 'Houston', 'Harris', '713-555-4567', 565110925, '1982-11-12'), ('Jennifer', 'David', '2468 Pine Street', 'San Francisco', 'San Francisco', '415-555-2345', 667025599, '1997-02-05'), ('Mathew', 'Alison', '1357 Cedar Avenue', 'Miami', 'Dade', '305-555-7890', 343114946, '1993-03-01'), ('Laura', 'Martin', '6543 Aspen Court', 'Denver', 'Denver', '650-212-0099', 911247766, '1995-07-06'), ('John', 'Thomson', '8765 Redwood Drive', 'Phoenix', 'Maricopa', '214-323-7529', 717822387, '1990-09-09'), ('Jessica', 'Anderson', '908 Cooper St', 'Arlington', 'Tarrant', '914-21-0909', 676823082, '1993-02-11'); INSERT INTO Trains (Train_Number, Train_Name, Pfare, Gfare, Source, Destination, Days) VALUES (1, 'Orient Express', 800, 600, 'Paris', 'Istanbul', 'Monday,Tuesday,Wednesday,Thursday,Friday'), (2, 'Flying Scotsman', 4000, 3500, 'Edinburgh', 'London', 'Friday,Saturday,Sunday'), (3, 'Golden Arrow', 980, 860, 'Victoria', 'Dover', 'Monday,Tuesday,Wednesday'), (4, 'Golden Chariot', 4300, 3800, 'Bangalore', 'Goa', 'Satursday,Sunday'), (5, 'Maharaja Express', 5980, 4510, 'Delhi', 'Mumbai', 'Wednesday,Thursday,Friday'); INSERT INTO Train_Status (Train_Day, Train, Pseats_Ava, Gseats_Ava, Pseats_Occ, Gseats_Occ) VALUES ('Friday', 'Orient Express', 10, 10, 0, 0), ('Sunday', 'Flying Scotsman', 8, 0, 2, 4), ('Tuesday', 'Golden Arrow', 0, 1, 3, 4), ('Saturday', 'Golden Chariot', 0, 0, 3, 3); -- Query 1: Given a passenger’s last name AND first name AND retrieve all trains they are booked on. SELECT Fname First_Name, Lname Last_Name, Train_Name FROM Bookings B, Passengers P, Trains T WHERE P.SSN = B.SSN AND B.Train_Number = T.Train_Number ORDER BY Last_Name, First_Name, Train_Name; -- Query 2: Given a day list the passengers traveling on that day with confirmed tickets. SELECT Fname First_Name, Lname Last_Name, Train_Day FROM Bookings B, Passengers P, Trains T, Train_Status TS WHERE P.SSN = B.SSN AND B.Train_Number = T.Train_Number AND B.Status = 'Booked' ORDER BY Train_Day, Last_Name, First_Name; -- Query 3: Display the train information (Train Number, Train Name, Source AND Destination) AND passenger information (Name, Address, Category, ticket status) of passengers who are between the ages of 50 to 60. SELECT T.Train_Number, Train_Name, Source, Destination, Fname First_Name, Lname Last_Name, Address, Ticket_Type, Status, Bdate FROM Passengers P, Bookings B, Trains T WHERE P.SSN = B.SSN AND B.Train_Number = T.Train_Number AND Bdate <= DATEADD(YEAR, -50, GETDATE()) AND Bdate >= DATEADD(YEAR, -60, GETDATE()) ORDER BY Train_Name, Last_Name, First_Name; -- Query 4: List train name, day AND number of passengers on that train. SELECT Train_Name, Train_Day, Pseats_Occ + Gseats_Occ Passengers FROM Trains T, Train_Status TS WHERE Train_Name = Train ORDER BY Train_Name, Train_Day; -- Query 5: Enter a train name AND retrieve all the passengers with confirmed status traveling on that train. SELECT Train_Name, Fname First_Name, Lname Last_Name, Status FROM Bookings B, Passengers P, Trains T WHERE B.SSN = P.SSN AND B.Train_Number = T.Train_Number AND Status = 'Booked' ORDER BY Train_Name, Last_Name, First_Name; -- Query 6: List passengers that are waitlisted including the name of the train. SELECT Fname First_Name, Lname Last_Name, Status, Train_Name FROM Passengers P, Bookings B, Trains T WHERE B.SSN = P.SSN AND B.Train_Number = T.Train_Number AND Status = 'WaitL' ORDER BY Last_Name, First_Name, Train_Name; -- Query 7: List passenger names in descending order that have '605' phone area code. SELECT Fname First_Name, Lname Last_Name, Phone FROM Passengers P WHERE Phone LIKE '605%' ORDER BY Last_Name desc, First_Name desc, Phone desc; -- Query 8: List name of passengers that are traveling on Thursdays in ascending order. SELECT Fname First_Name, Lname Last_Name, Train_Day Day FROM Passengers P, Train_Status TS, Bookings B WHERE B.SSN = P.SSN AND Train_Day = 'Thursday' ORDER BY Last_Name, First_Name;