Assgm-01-DBMS_Lab
Assgm-01-DBMS_Lab
SQL
1 -- Creating the DRIVER table
2 ⌄ CREATE TABLE DRIVER (
3 DRIVER_ID INT PRIMARY KEY,
4 DRIVER_NAME VARCHAR(50),
5 BUS_ID INT,
6 FOREIGN KEY (BUS_ID) REFERENCES BUS(BUS_ID)
7 );
8
9 -- Creating the BUS table
10 ⌄ CREATE TABLE BUS (
11 BUS_ID INT PRIMARY KEY,
12 BUS_NO INT,
13 BUS_TYPE VARCHAR(50),
14 BUS_SEATS INT,
15 DRIVER_ID INT,
16 FOREIGN KEY (DRIVER_ID) REFERENCES DRIVER(DRIVER_ID)
17 );
18
19 -- Creating the PASSENGER table
20 ⌄ CREATE TABLE PASSENGER (
21 PASSENGER_ID INT PRIMARY KEY,
22 FNAME VARCHAR(50),
23 LNAME VARCHAR(50),
24 GENDER VARCHAR(10),
25 AGE INT,
26 CONTACT_NO VARCHAR(15)
27 );
28
29 -- Creating the PAYMENTS table
30 ⌄ CREATE TABLE PAYMENTS (
31 PAYMENT_ID INT PRIMARY KEY,
32 PASSENGER_ID INT,
33 RESERVATION_ID VARCHAR(50),
34 PAYMENT_DATE DATE,
35 FOREIGN KEY (PASSENGER_ID) REFERENCES PASSENGER(PASSENGER_ID),
36 FOREIGN KEY (RESERVATION_ID) REFERENCES RESERVATION(RESERVATION_ID)
37 );
38
39 -- Creating the RESERVATION table
40 ⌄ CREATE TABLE RESERVATION (
41 RESERVATION_ID VARCHAR(50) PRIMARY KEY,
42 PASSENGER_ID INT,
43 BUS_ID INT,
44 DEPARTURE_TIME DATETIME,
45 DESTINATION VARCHAR(100),
46 RESERVATION_DATE DATE,
47 FOREIGN KEY (PASSENGER_ID) REFERENCES PASSENGER(PASSENGER_ID),
48 FOREIGN KEY (BUS_ID) REFERENCES BUS(BUS_ID)
49 );
50
51 -- Creating the TRANSACTION_REPORT table
52 ⌄ CREATE TABLE TRANSACTION_REPORT (
53 REPORT_ID INT PRIMARY KEY,
54 PASSENGER_ID INT,
55 RESERVATION_ID VARCHAR(50),
56 PAYMENT_ID INT,
57 REPORT_DATE DATE,
58 FOREIGN KEY (PASSENGER_ID) REFERENCES PASSENGER(PASSENGER_ID),
59 FOREIGN KEY (RESERVATION_ID) REFERENCES RESERVATION(RESERVATION_ID),
60 FOREIGN KEY (PAYMENT_ID) REFERENCES PAYMENTS(PAYMENT_ID)
61 );
SQL
1 -- DRIVER table data
2 INSERT INTO DRIVER VALUES (1, 'Ramesh', 101);
3 INSERT INTO DRIVER VALUES (2, 'Suresh', 102);
4 INSERT INTO DRIVER VALUES (3, 'Rajesh', 103);
5 INSERT INTO DRIVER VALUES (4, 'Mukesh', 104);
6 INSERT INTO DRIVER VALUES (5, 'Naresh', 105);
7
8 -- BUS table data
9 INSERT INTO BUS VALUES (101, 5001, 'AC', 35, 1);
10 INSERT INTO BUS VALUES (102, 5002, 'Non-AC', 40, 2);
11 INSERT INTO BUS VALUES (103, 5003, 'AC', 35, 3);
12 INSERT INTO BUS VALUES (104, 5004, 'Non-AC', 50, 4);
13 INSERT INTO BUS VALUES (105, 5005, 'AC', 45, 5);
14
15 -- PASSENGER table data
16 INSERT INTO PASSENGER VALUES (1, 'Amit', 'Sharma', 'Male', 25, '9876543210');
17 INSERT INTO PASSENGER VALUES (2, 'Sunita', 'Verma', 'Female', 30, '8765432109');
18 INSERT INTO PASSENGER VALUES (3, 'Ravi', 'Kumar', 'Male', 35, '7654321098');
19 INSERT INTO PASSENGER VALUES (4, 'Anita', 'Singh', 'Female', 28, '6543210987');
20 INSERT INTO PASSENGER VALUES (5, 'Rohan', 'Joshi', 'Male', 22, '5432109876');
21
22 -- PAYMENTS table data
23 INSERT INTO PAYMENTS VALUES (1, 1, 'R001', '2025-01-10');
24 INSERT INTO PAYMENTS VALUES (2, 2, 'R002', '2025-01-11');
25 INSERT INTO PAYMENTS VALUES (3, 3, 'R003', '2025-01-12');
26 INSERT INTO PAYMENTS VALUES (4, 4, 'R004', '2025-01-13');
27 INSERT INTO PAYMENTS VALUES (5, 5, 'R005', '2025-01-14');
28
29 -- RESERVATION table data
30 INSERT INTO RESERVATION VALUES ('R001', 1, 101, '2025-01-15 08:00:00', 'Mumbai', '2025-01-10');
31 INSERT INTO RESERVATION VALUES ('R002', 2, 102, '2025-01-15 09:00:00', 'Delhi', '2025-01-11');
32 INSERT INTO RESERVATION VALUES ('R003', 3, 103, '2025-01-15 10:00:00', 'Mumbai', '2025-01-12');
33 INSERT INTO RESERVATION VALUES ('R004', 4, 104, '2025-01-15 11:00:00', 'Pune', '2025-01-13');
34 INSERT INTO RESERVATION VALUES ('R005', 5, 105, '2025-01-15 12:00:00', 'Mumbai', '2025-01-14');
35
36 -- TRANSACTION_REPORT table data
37 INSERT INTO TRANSACTION_REPORT VALUES (1, 1, 'R001', 1, '2025-01-15');
38 INSERT INTO TRANSACTION_REPORT VALUES (2, 2, 'R002', 2, '2025-01-15');
39 INSERT INTO TRANSACTION_REPORT VALUES (3, 3, 'R003', 3, '2025-01-15');
40 INSERT INTO TRANSACTION_REPORT VALUES (4, 4, 'R004', 4, '2025-01-15');
41 INSERT INTO TRANSACTION_REPORT VALUES (5, 5, 'R005', 5, '2025-01-15');
Questions
SQL
1 -- 1. Display all the tables individually
2 SELECT * FROM DRIVER;
3 SELECT * FROM BUS;
4 SELECT * FROM PASSENGER;
5 SELECT * FROM PAYMENTS;
6 SELECT * FROM RESERVATION;
7 SELECT * FROM TRANSACTION_REPORT;
8
9 -- 2. Display the details of the passengers travelling to Mumbai
⌄
10 SELECT * FROM PASSENGER P
11 JOIN RESERVATION R ON P.PASSENGER_ID = R.PASSENGER_ID
12 WHERE R.DESTINATION = 'Mumbai';
13
14 -- 3. Add at least five records in all the tables (done above)
15
16 -- 4. Display unique reservation IDs of all passengers
17 SELECT DISTINCT RESERVATION_ID FROM RESERVATION;
18
19 -- 5. Display all the names of male passengers
20 SELECT FNAME, LNAME FROM PASSENGER WHERE GENDER = 'Male';
21
22 -- 6. Display all the names of female passengers
23 SELECT FNAME, LNAME FROM PASSENGER WHERE GENDER = 'Female';
24
25 -- 7. Display WHOLE DATA of the DRIVERS starting from LETTER R.
26 SELECT * FROM DRIVER WHERE DRIVER_NAME LIKE 'R%';
27
28 -- 8. Display reservation ID and names of all passengers
⌄
29 SELECT R.RESERVATION_ID, P.FNAME, P.LNAME FROM RESERVATION R
30 JOIN PASSENGER P ON R.PASSENGER_ID = P.PASSENGER_ID;
31
32 -- 9. Find the reservation ID number of passenger whose name starts with 'S'
⌄
33 SELECT R.RESERVATION_ID FROM RESERVATION R
34 JOIN PASSENGER P ON R.PASSENGER_ID = P.PASSENGER_ID
35 WHERE P.FNAME LIKE 'S%';
36
37 -- 10. Find the reservation ID of passenger whose name ends with 'h'
⌄
38 SELECT R.RESERVATION_ID FROM RESERVATION R
39 JOIN PASSENGER P ON R.PASSENGER_ID = P.PASSENGER_ID
40 WHERE P.FNAME LIKE '%h';
41
42 -- 11. Find the names of the passenger whose age is between 20 and 40
43 SELECT FNAME, LNAME FROM PASSENGER WHERE AGE BETWEEN 20 AND 40;
44
45 -- 12. Display the sorted list of passenger names
46 SELECT FNAME, LNAME FROM PASSENGER ORDER BY FNAME, LNAME;
47
48 -- 13. Count the total number of buses having AC bus type
49 SELECT COUNT(*) AS Total_AC_Buses FROM BUS WHERE BUS_TYPE = 'AC';
50
51 -- 14. Display the buses having seats 35
52 SELECT * FROM BUS WHERE BUS_SEATS = 35;
53
54 -- 15. Count the total number of buses having Non-AC bus type
55 SELECT COUNT(*) AS Total_Non_AC_Buses FROM BUS WHERE BUS_TYPE = 'Non-AC';
56
57 -- 16. Display first 5 passengers' details
58 SELECT * FROM PASSENGER LIMIT 5;
59
60 -- 17. Display passenger's details in ascending order
61 SELECT * FROM PASSENGER ORDER BY FNAME, LNAME;
62
63 -- 18. Change the datatype of contact_no from INT to VARCHAR
64 ALTER TABLE PASSENGER MODIFY CONTACT_NO VARCHAR(15);
65
66 -- 19. Display details of passenger having age less than or equal to 30
67 SELECT * FROM PASSENGER WHERE AGE <= 30;
68
69 -- 20. Display the payment ID of first 5 passengers
70 SELECT PAYMENT_ID FROM PAYMENTS LIMIT 5;