DBMS Lab Record - Sandeep
DBMS Lab Record - Sandeep
Busno Source
BUS
Destinatio
Class
n
PASSENGER
RESERVATION
CANCELLATION
TICKET
Sex Dep_Time
Source Destination
CREATION OF BUS TABLE
Table created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
6 rows selected.
SQL> commit;
Commit complete.
CREATION OF PASSENGER TABLE
Table created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
SQL> commit;
Commit complete.
CREATION OF RESERVATION TABLE
SQL> CREATE TABLE RESERVATION(PNR_NO NUMBER(10)REFERENCES
PASSENGER(PNR_NO),JOURNEY_DATE DATE,NO_OF_SEATS NUMBER(5),ADDRESS
VARCHAR2(50),CONTACT_NO NUMBER(11),STATUS CHAR(5));
Table created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
SQL> COMMIT;
Commit complete.
CREATION OF CANCELLATION TABLE
Table created.
1 row created.
1 row created.
SQL> COMMIT;
Commit complete.
CREATION OF TICKET TABLE
Table created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
SQL> COMMIT;
Commit complete.
1 QUERIES
2
3 1. Display unique PNR_no of all passengers.
49 SQL> SELECT NAME,AGE FROM PASSENGER WHERE AGE BETWEEN 30 AND 45;
50
51 NAME AGE
52 ---------- -----------
53 Akash 40
54 Shireesha 31
55 Anil 35
56
57 7. Display all the passengers names beginning with ‘A’
OR
SQL> SELECT BUSNO,TO_CHAR(JOURNEY_DATE,'DAY') AS DAY FROM BUS B,TICKET T WHERE
B.SOURCE=T.SOURCE AND B.DESTINATION=T.DESTINATION AND (TO_CHAR(JOURNEY_DATE,'DY')='SUN'
OR TO_CHAR(JOURNEY_DATE,'DY')='WED');
BUSNO DAY
----------- -------------------
2728 SUNDAY
2714 WEDNESDAY
83
84 10. Display the details of passengers who are traveling either in AC or NON_AC(Using only IN operator)
11. Write a Query to display the Information present in the Passenger and cancellation tables. Hint: Use UNION Operator.
12. Write a Query to display different travelling options available in British Airways.
CLASS
--------
AC
NON-AC
13. Display the number of days in a week on which the 9W01 bus is available.
14. Find number of tickets booked for each PNR_no using GROUP BY CLAUSE. Hint: Use GROUP BY on PNR_No.
PNR_NO
-------------
1234
2345
3456
4567
5678
6789
7890
7 rows selected.
16. Find the number of tickets booked in each class where the number of seats is greater than 1. Hint: Use GROUP BY,
WHERE and HAVING CLAUSES.
18. Write a Query to count the number of tickets for the buses, which travelled after the date '14/3/2009'. Hint: Use
HAVING CLAUSES.
COUNT(TICKET_NO) JOURNEY_D
------------------------------ -------------------
1 05-JUN-11
VIEWS
TO CREATE A VIEW FOR PASSENGER TABLE
SQL> CREATE VIEW PASSENGER_VIEW(PNR_NO,TICKET_NO,NAME) AS SELECT
PNR_NO,TICKET_NO,NAME FROM PASSENGER;
View created.
7 rows selected.
SQL> COMMIT;
Commit complete.
View created.
SQL> COMMIT;
Commit complete.
View created.
SQL> COMMIT;
Commit complete.
PL/SQL PROCEDURE
SQL>set serveroutput on
SQL>create or replace procedure factors as
2 n number :=&n;
3 i number;
4 begin
5 dbms_output.put_line('The factors of '||n||' are');
6 for i in 1..n loop
7 if(mod(n,i)=0) then
8 dbms_output.put_line(i);
9 end if;
10 end loop;
11 end;
12 /
Procedure created.
Procedure created.
Procedure created.
Procedure created.
Procedure created.
Procedure created.
Procedure created.
Procedure created.
Procedure created.
7 rows selected.
7 rows selected.
SQL> EXECUTE DMLOP(3)
6 rows selected.
3. Passenger grades according to age(Junior <9,Adult <40,Senior>=40)
Procedure created.
------------------
7202
Secunderabad
Guntur
NON-AC
------------------
2704
Secunderabad
Howrah
AC
------------------
2714
Secunderabad
Vijayawada
AC
------------------
2728
Hyderabad
Visakhapatnam
NON-AC
------------------
2738
Secunderabad
Kakinada
AC
------------------
2702
Hyderabad
Mumbai
NON-AC
SQL>SET SEVEROUTPUT ON
SQL>Declare
2 CURSOR C_CANCELLATION IS
3 SELECT P.NAME, P.AGE, P.SEX, C.ADDRESS, C.CONTACT_NO
4 FROM PASSENGER P,
5 CANCELLATION C
6 WHERE P.PNR_NO=C.PNR_NO;
7 NAME PASSENGER.NAME%TYPE;
8 AGE PASSENGER.AGE%TYPE;
9 SEX PASSENGER.SEX%TYPE;
10 ADDRESS CANCELLATION.ADDRESS%TYPE;
11 CONTACT CANCELLATION.CONTACT_NO%TYPE;
12 Begin
13 OPEN C_CANCELLATION;
14 Loop
15 FETCH C_CANCELLATION into NAME,AGE,SEX,ADDRESS,CONTACT;
16 Exit when C_CANCELLATION%NOTFOUND;
17 DBMS_OUTPUT.PUT_LINE('NAME: '||NAME||', AGE: '|| AGE||', SEX: '|| SEX||', ADDRESS: '||
ADDRESS||', CONTACT: '|| CONTACT);
18 End loop;
19 CLOSE C_CANCELLATION;
20 End;
21 /
NAME: Anil, AGE: 35, SEX: Male, ADDRESS: Warangal, CONTACT: 9885554321
NAME: Shiva, AGE: 25, SEX: Male, ADDRESS: Ongole, CONTACT: 9908109595