Download - DBMS Lab Record_Sandeep

Transcript
Page 1: DBMS Lab Record_Sandeep

E - R DIAGRAMS

BUS : Bus no, Source, Destination, Class

PASSENGER : Pnr_No, Ticket_No, Name, Age, Sex, Ppno

RESERVATION : Pnr_No, Journey_Date, No_Of_Seats, Address, Contact_No, Status

BUS

Destination

PASSENGER

Pnr_No Ticket_No Name

PpnoSexAge

RESERVATION

Pnr_No Journey_Date

No_Of_Seats

Address Contact_No

Status

SourceBusno

Class

Page 2: DBMS Lab Record_Sandeep

CANCELLATION : Pnr_No, Journey_Date, No_Of_Seats, Address, Contact_No, Status

TICKET : Ticket_No, Journey_Date, Age, Sex, Source, Destination, Dep_Time

CANCELLATION

Pnr_No Journey_Date

No_Of_Seats

Address Contact_No

Status

Ticket_No Journey_Date

Age

Sex

Source

Dep_Time

Destination

TICKET

Page 3: DBMS Lab Record_Sandeep

CREATION OF BUS TABLE

SQL> CREATE TABLE BUS (BUSNO NUMBER(5) PRIMARY KEY,SOURCE VARCHAR2(15),DESTINATION VARCHAR2(15),CLASS VARCHAR(8));

Table created.

SQL> DESC BUS Name Null? Type -------------------------- -------------- ------------------- BUSNO NOT NULL NUMBER(5) SOURCE VARCHAR2(15) DESTINATION VARCHAR2(15)CLASS VARCHAR2(8)

SQL> INSERT INTO BUS VALUES(7202,'Secunderabad','Guntur', 'NON-AC');

1 row created.

SQL> INSERT INTO BUS VALUES(2704,'Secunderabad','Howrah', 'AC');

1 row created.

SQL> INSERT INTO BUS VALUES(2714,'Secunderabad','Vijayawada', 'AC');

1 row created.

SQL> INSERT INTO BUS VALUES(2728,'Hyderabad','Visakhapatnam', 'NON-AC');

1 row created.

SQL> INSERT INTO BUS VALUES(2738,'Secunderabad','Kakinada', 'AC');

1 row created.

SQL> INSERT INTO BUS VALUES(2702,'Hyderabad','Mumbai', 'NON-AC');

1 row created.

SQL> SELECT * FROM BUS;

BUSNO SOURCE DESTINATION CLASS ---------- -------------------- -------------------- ----------- 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

6 rows selected.

SQL> commit;

Commit complete.

Page 4: DBMS Lab Record_Sandeep

CREATION OF PASSENGER TABLE

SQL> CREATE TABLE PASSENGER(PNR_NO NUMBER(10)PRIMARY KEY,TICKET_NO NUMBER(10),NAME VARCHAR2(15),AGE NUMBER(3),SEX CHAR(6),PPNO VARCHAR(15));

Table created.

SQL> DESC PASSENGER Name Null? Type ------------------------------- -------------- ------------------ PNR_NO NOT NULL NUMBER(10) TICKET_NO NUMBER(10) NAME VARCHAR2(15) AGE NUMBER(3) SEX CHAR(6) PPNO VARCHAR2(15)

SQL> INSERT INTO PASSENGER VALUES(1234,4321,'Bharath',23,'Male','A1234');

1 row created.

SQL> INSERT INTO PASSENGER VALUES(2345,5432,'Sandeep',21,'Male','B2345');

1 row created.

SQL> INSERT INTO PASSENGER VALUES(3456,6543,'Bhagya',21,'Female','C3456');

1 row created.

SQL> INSERT INTO PASSENGER VALUES(4567,7654,'Akash',40,'Male','D4567');

1 row created.

SQL> INSERT INTO PASSENGER VALUES(5678,8765,'Shireesha',31,'Female','E5678');

1 row created.

SQL> INSERT INTO PASSENGER VALUES(6789,9876,'Anil',35,'Male','F6789');

1 row created.

SQL> INSERT INTO PASSENGER VALUES(7890,0987,'Shiva',25,'Male','G7890');

1 row created.

SQL> SELECT * FROM PASSENGER;

PNR_NO TICKET_NO NAME AGE SEX PPNO ------------- ------------------ --------------- ---------- -------- ---------- 1234 4321 Bharath 23 Male A1234 2345 5432 Sandeep 21 Male B2345 3456 6543 Bhagya 21 Female C3456 4567 7654 Akash 40 Male D4567 5678 8765 Shireesha 31 Female E5678 6789 9876 Anil 35 Male F6789 7890 987 Shiva 25 Male G78907 rows selected.

SQL> commit;

Commit complete.

Page 5: DBMS Lab Record_Sandeep

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.

SQL> DESC RESERVATION Name Null? Type ---------------------------- --------- ------------ PNR_NO NUMBER(10) JOURNEY_DATE DATE NO_OF_SEATS NUMBER(5) ADDRESS VARCHAR2(50) CONTACT_NO NUMBER(11) STATUS CHAR(5)

SQL> INSERT INTO RESERVATION VALUES(1234,'15-Dec-2010',4,'Hyderabad',8801255245,'Yes');

1 row created.

SQL> INSERT INTO RESERVATION VALUES(2345,'01-Jan-2011',2,'Hyderabad',8099341624,'No');

1 row created.

SQL> INSERT INTO RESERVATION VALUES(3456,'06-Jun-2011',6,'Secunderabad',8143879126,'Yes');

1 row created.

SQL> INSERT INTO RESERVATION VALUES(4567,'20-Dec-2010',1,'Chennai',9966335543,'Yes');

1 row created.

SQL> INSERT INTO RESERVATION VALUES(5678,'14-Jan-2011',3,'Karimnagar',9908109596,'Yes');

1 row created.

SQL> INSERT INTO RESERVATION VALUES(6789,'31-Dec-2010',2,'Warangal',9885554321,'No');

1 row created.

SQL> INSERT INTO RESERVATION VALUES(7890,'11-Dec-2010',5,'Ongole',9908109595,'No');

1 row created.

SQL> SELECT * FROM RESERVATION;

PNR_NO JOURNEY_D NO_OF_SEATS ADDRESS CONTACT_NO STATUS ------------- ------------------- ----------------------- --------------- ---------------------- ------------ 1234 15-DEC-10 4 Hyderabad 8801255245 Yes 2345 01-JAN-11 2 Hyderabad 8099341624 No 3456 05-JUN-11 6 Secunderabad 8143879126 Yes 4567 20-DEC-10 1 Chennai 9966335543 Yes 5678 14-JAN-11 3 Karimnagar 9908109596 Yes 6789 31-DEC-10 2 Warangal 9885554321 No 7890 11-DEC-10 5 Ongole 9908109595 No7 rows selected.

SQL> COMMIT;

Commit complete.

Page 6: DBMS Lab Record_Sandeep

CREATION OF CANCELLATION TABLE

SQL> CREATE TABLE CANCELLATION(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.

SQL> DESC CANCELLATION Name Null? Type ------------------------- --------- ------------------ PNR_NO NUMBER(10) JOURNEY_DATE DATE NO_OF_SEATS NUMBER(5) ADDRESS VARCHAR2(50) CONTACT_NO NUMBER(11) STATUS CHAR(5)

SQL> INSERT INTO CANCELLATION VALUES(6789,'31-Dec-2010',2,'Warangal',9885554321,'No');

1 row created.

SQL> INSERT INTO CANCELLATION VALUES(7890,'11-Dec-2010',5,'Ongole',9908109595,'No');

1 row created.

SQL> SELECT * FROM CANCELLATION;

PNR_NO JOURNEY_D NO_OF_SEATS ADDRESS CONTACT_NO STATUS ------------- ------------------- ----------------------- --------------- ---------------------- ------------ 6789 31-DEC-10 2 Warangal 9885554321 No 7890 11-DEC-10 5 Ongole 9908109595 No

SQL> COMMIT;

Commit complete.

Page 7: DBMS Lab Record_Sandeep

CREATION OF TICKET TABLE

SQL> CREATE TABLE TICKET(TICKET_NO NUMBER(10)PRIMARY KEY,JOURNEY_DATE DATE,AGE NUMBER(3),SEX CHAR(6),SOURCE VARCHAR2(15),DESTINATION VARCHAR2(15),DEP_TIME VARCHAR(10));

Table created.

SQL> DESC TICKET Name Null? Type --------------------------- ----------------- ------------------- TICKET_NO NOT NULL NUMBER(10) JOURNEY_DATE DATE AGE NUMBER(3) SEX CHAR(6) SOURCE VARCHAR2(15) DESTINATION VARCHAR2(15) DEP_TIME VARCHAR2(10)

SQL> INSERT INTO TICKET VALUES(4321,'15-Dec-2010',23,'Male','Secunderabad','Vijayawada','10:00 AM');

1 row created.

SQL> INSERT INTO TICKET VALUES(5432, 01-JAN-11',21,'Male','Secunderabad','Kakinada','08:00 PM');

1 row created.

SQL> INSERT INTO TICKET VALUES(6543,'05-Jun-2011',21,'Female','Hyderabad','Visakhapatnam','09:00 PM');

1 row created.

SQL> INSERT INTO TICKET VALUES(7654,'20-Dec-2010',40,'Male','Hyderabad','Mumbai','03:00 PM');

1 row created.

SQL> INSERT INTO TICKET VALUES(8765,'14-Jan-2011',21,'Female','Secunderabad','Guntur','07:00 AM');

1 row created.

SQL> INSERT INTO TICKET VALUES(9876,'31-Dec-2010',35,'Male','Secunderabad','Howrah','03:00 PM');

1 row created.

SQL> INSERT INTO TICKET VALUES(0987,'11-DEC-10',25,'Male','Secunderabad',' Vijayawada ','10:00 AM');

1 row created.

SQL> SELECT * FROM TICKET;

TICKET_NO JOURNEY_D AGE SEX SOURCE DESTINATION DEP_TIME------------------ -------------------- -------- ------- -------------------- ----------------------- ----------------- 4321 15-DEC-10 23 Male Secunderabad Vijayawada 10:00 AM 5432 01-JAN-11 21 Male Secunderabad Kakinada 08:00 PM 6543 05-JUN-11 21 Female Hyderabad Visakhapatnam 09:00 PM 7654 20-DEC-10 40 Male Hyderabad Mumbai 03:00 PM 8765 14-JAN-11 21 Female Secunderabad Guntur 07:00 AM 9876 31-DEC-10 35 Male Secunderabad Howrah 03:00 PM 987 11-DEC-10 25 Male Secunderabad Vijayawada 10:00 AM7 rows selected.

SQL> COMMIT;

Commit complete.

Page 8: DBMS Lab Record_Sandeep

QUERIES

1. Display unique PNR_no of all passengers.

SQL> SELECT UNIQUE PNR_NO FROM PASSENGER;

PNR_NO ------------

1234 2345 3456 4567 5678 6789 78907 rows selected.

2. Display all the names of male passengers.

SQL> SELECT NAME FROM PASSENGER WHERE SEX='Male';

NAME------------BharathSandeepAkashAnilShiva

3. Display the ticket numbers and names of all the passengers.

SQL> SELECT TICKET_NO,NAME FROM PASSENGER;

TICKET_NO NAME----------------- ----------- 4321 Bharath 5432 Sandeep 6543 Bhagya 7654 Akash 8765 Shireesha 9876 Anil 987 Shiva7 rows selected.

4. Display the source and destination having journey time more than 10 hours.

5. Find the ticket numbers of the passengers whose name start with ‘A’ and ends with ‘H’.

SQL> SELECT NAME,TICKET_NO FROM PASSENGER WHERE NAME LIKE 'A%h';

NAME TICKET_NO---------- -----------------Akash 7654

Page 9: DBMS Lab Record_Sandeep

6. Find the names of passengers whose age is between 30 and 45.

SQL> SELECT NAME,AGE FROM PASSENGER WHERE AGE BETWEEN 30 AND 45;

NAME AGE---------- -----------Akash 40Shireesha 31Anil 35

7. Display all the passengers names beginning with ‘A’

SQL> SELECT NAME FROM PASSENGER WHERE NAME LIKE 'A%';

NAME ------------AkashAnil

8. Display the sorted list of passengers names

SQL> SELECT NAME FROM PASSENGER ORDER BY NAME;

NAME-------------AkashAnilBhagyaBharathSandeepShireeshaShiva7 rows selected.

9. Display the Bus numbers that travel on Sunday and Wednesday

SQL> SELECT BUSNO FROM BUS B,TICKET T WHERE B.SOURCE=T.SOURCE AND B.DESTINATION=T.DESTINATION AND (TO_CHAR(T.JOURNEY_DATE,'DY')='SUN' OR TO_CHAR(T.JOURNEY_DATE,'DY')='WED');

BUSNO -----------

2728 2714

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

10. Display the details of passengers who are traveling either in AC or NON_AC(Using only IN operator)

Page 10: DBMS Lab Record_Sandeep

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.

SQL> SELECT UNIQUE CLASS FROM BUS;

CLASS--------ACNON-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.

15. Find the distinct PNR numbers that are present.

SQL> SELECT DISTINCT PNR_NO FROM PASSENGER;

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.

17. Find the total number of cancelled seats.

SQL> SELECT SUM(NO_OF_SEATS) AS "TOTAL CANCELLED SEATS" FROM CANCELLATION;

TOTAL CANCELLED SEATS--------------------------------------- 7

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.

SQL> SELECT COUNT(TICKET_NO),JOURNEY_DATE FROM TICKET GROUP BY(JOURNEY_DATE) HAVING JOURNEY_DATE>'14-Mar-2011';

COUNT(TICKET_NO) JOURNEY_D------------------------------ ------------------- 1 05-JUN-11

Page 11: DBMS Lab Record_Sandeep

VIEWSTO CREATE A VIEW FOR PASSENGER TABLESQL> CREATE VIEW PASSENGER_VIEW(PNR_NO,TICKET_NO,NAME) AS SELECT PNR_NO,TICKET_NO,NAME FROM PASSENGER;

View created.

SQL> SELECT * FROM PASSENGER_VIEW;

PNR_NO TICKET_NO NAME ------------- ----------------- ----------- 1234 4321 Bharath 2345 5432 Sandeep 3456 6543 Bhagya 4567 7654 Akash 5678 8765 Shireesha 6789 9876 Anil 7890 987 Shiva

7 rows selected.

SQL> COMMIT;

Commit complete.

TO CREATE A VIEW FOR RESERVATION TABLESQL> CREATE VIEW RESERVATION_VIEW(PNR_NO, JOURNEY_DATE,STATUS) AS SELECT PNR_NO, JOURNEY_DATE,STATUS FROM RESERVATION WHERE STATUS='Yes';

View created.

SQL> SELECT * FROM RESERVATION_VIEW;

PNR_NO JOURNEY_D STATU ------------ ------------------ ----------- 1234 15-DEC-10 Yes 3456 05-JUN-11 Yes 4567 20-DEC-10 Yes 5678 14-JAN-11 Yes

SQL> COMMIT;

Commit complete.

TO CREATE A VIEW FOR TICKET TABLESQL> CREATE VIEW TICKET_VIEW(TICKET_NO,JOURNEY_DATE,SOURCE,DESTINATION) AS SELECT TICKET_NO,T.JOURNEY_DATE,SOURCE,DESTINATION FROM TICKET T,RESERVATION_VIEW R WHERE T.JOURNEY_DATE=R.JOURNEY_DATE;

View created.

SQL> SELECT * FROM TICKET_VIEW;

TICKET_NO JOURNEY_D SOURCE DESTINATION----------------- ------------------ ------------- --------------------- 4321 15-DEC-10 Secunderabad Vijayawada 7654 20-DEC-10 Hyderabad Mumbai 8765 14-JAN-11 Secunderabad Guntur 6543 05-JUN-11 Hyderabad Visakhapatnam

SQL> COMMIT;

Commit complete.

Page 12: DBMS Lab Record_Sandeep

PL/SQL PROCEDURE

1. Write a PL/SQL procedure to find the factors of a given number.

SQL>set serveroutput onSQL>create or replace procedure factors as2 n number :=&n;3 i number;4 begin5 dbms_output.put_line('The factors of '||n||' are');6 for i in 1..n loop7 if(mod(n,i)=0) then8 dbms_output.put_line(i);9 end if;10 end loop;11 end;12 /

Enter value for n: 10old 2: n number :=&n;new 2: n number :=10;

Procedure created.

SQL> execute factorsThe factors of 10 are12510

PL/SQL procedure successfully completed.

Page 13: DBMS Lab Record_Sandeep

2. Write a PL/SQL procedure to check whether the given number is Prime or not.

SQL> set serveroutput onSQL>create or replace procedure prime as2 n number :=&n;3 c number:=0;4 i number;5 begin6 for i in 1..n loop7 if(mod(n,i)=0) then8 c:=c+1;9 end if;10 end loop;11 if(c=2) then12 dbms_output.put_line(n||' is prime number.');13 else14 dbms_output.put_line(n||' is not a prime number.');15 end if;16 end;17 /

Enter value for n: 5old 2: n number :=&n;new 2: n number :=5;

Procedure created.

SQL> execute prime5 is prime number.

PL/SQL procedure successfully completed.

Page 14: DBMS Lab Record_Sandeep

3. Write a PL/SQL procedure to display prime numbers up to n.

SQL> set serveroutput onSQL>create or replace procedure primeseries as2 n number;3 c number;4 i number;5 j number;6 begin7 n:=&n;8 for i in 1..n loop9 c:=0;10 for j in 1..i loop11 if(mod(i,j)=0) then12 c:=c+1;13 end if;14 end loop;15 if(c=2) then16 dbms_output.put_line(i||' ');17 end if;18 end loop;19 end;20 /

Enter value for n: 25old 7: n:=&n;new 7: n:=25;

Procedure created.

SQL> execute primeseries23571113171923

PL/SQL procedure successfully completed.

Page 15: DBMS Lab Record_Sandeep

4. Write a PL/SQL procedure to display n Prime numbers.

SQL> set serveroutput onSQL>create or replace procedure primenumbers as2 n number;3 c number;4 i number;5 j number;6 a number:=1;7 begin8 n:=&n;9 i:=1;10 loop11 c:=0;12 for j in 1..i loop13 if(mod(i,j)=0) then14 c:=c+1;15 end if;16 end loop;17 if(c=2) then18 dbms_output.put_line(i||' ');19 a:=a+1;20 end if;21 i:=i+1;22 exit when(a>n);23 end loop;24 end;25 /

Enter value for n: 10old 8: n:=&n;new 8: n:=10;

Procedure created.

SQL> execute primenumbers2357111317192329

PL/SQL procedure successfully completed.

Page 16: DBMS Lab Record_Sandeep

5. Write a PL/SQL procedure to check whether the given number is Armstrong or not.

SQL> set serveroutput onSQL>create or replace procedure armstrong as2 n number;3 r number;4 s number:=0;5 m number;6 begin7 n:=&n;8 m:=n;9 while(n>0) 10 loop11 r:=mod(n,10);12 s:=s+power(r,3);13 n:=trunc(n/10);14 end loop;15 if(s=m) then16 dbms_output.put_line(m||' is an armstrong');17 else18 dbms_output.put_line(m||' is not an armstrong');19 end if;20 end;21 /

Enter value for n: 153old 7: n:=&n;new 7: n:=153;

Procedure created.

SQL> execute armstrong153 is an armstrong

PL/SQL procedure successfully completed.

Page 17: DBMS Lab Record_Sandeep

6. Write a PL/SQL procedure to find the reverse of a given number.

SQL> set serveroutput onSQL>create or replace procedure reverse as2 n number;3 r number;4 s number:=0;5 m number;6 begin7 n:=&n;8 m:=n;9 while(n>0) 10 loop11 r:=mod(n,10);12 s:=s*10+r;13 n:=trunc(n/10);14 end loop;15 dbms_output.put_line('The reverse of '||m||' is '||s);16 end;17 /

Enter value for n: 801old 7: n:=&n;new 7: n:=801;

Procedure created.

SQL> execute reverseThe reverse of 801 is 108

PL/SQL procedure successfully completed.

Page 18: DBMS Lab Record_Sandeep

7. Write a PL/SQL procedure to find the given number is Palindrome or not.

SQL> set serveroutput onSQL>create or replace procedure numberpalindrome as2 n number;3 r number;4 s number:=0;5 m number;6 begin7 n:=&n;8 m:=n;9 while(n>0) 10 loop11 r:=mod(n,10);12 s:=s*10+r;13 n:=trunc(n/10);14 end loop;15 if(s=m) then16 dbms_output.put_line(m||' is a Palindrome');17 else18 dbms_output.put_line(m||' is not a Palindrome');19 end if;20 end;21 /

Enter value for n: 242old 7: n:=&n;new 7: n:=242;

Procedure created.

SQL> execute numberpalindrome242 is a Palindrome

PL/SQL procedure successfully completed.

Page 19: DBMS Lab Record_Sandeep

1. PROCEDURE TO GET THE BUS SCHEDULE DETAILS BY PASSING BUSNO

SQL> SET SERVEROUTPUT ONSQL>CREATE OR REPLACE PROCEDURE BUSINFO(BUSNUMBER NUMBER)2 AS3 BUSNO BUS.BUSNO%TYPE;4 SOURCE BUS.SOURCE%TYPE;5 DESTINATION BUS.DESTINATION%TYPE;6 CLASS BUS.CLASS%TYPE;7 BEGIN8 SELECT BUSNO, SOURCE, DESTINATION, CLASS9 INTO BUSNO, SOURCE, DESTINATION, CLASS10 FROM BUS WHERE BUSNO=BUSNUMBER;11 DBMS_OUTPUT.PUT_LINE( 'BUSNO: '||BUSNO||', SOURCE: '|| SOURCE||', DESTINATION: '|| 12 DESTINATION||', CLASS: '|| CLASS);13 END;14 /

Procedure created.

SQL> EXECUTE BUSINFO(2738)BUSNO: 2738, SOURCE: Secunderabad, DESTINATION: Kakinada, CLASS: AC

PL/SQL procedure successfully completed.

Page 20: DBMS Lab Record_Sandeep

2. Procedure for DML operations (INSERT UPDATE DELETE)

SQL> SET SERVEROUTPUT ONSQL> CREATE OR REPLACE PROCEDURE DMLOp(dml number)2 AS3 BEGIN4 IF dml=1 then5 INSERT INTO BUS values(1002,'HYDERABAD','PUNE','AC');6 elsif dml = 2 then7 UPDATE BUS set destination = 'MUMBAI' where busno=1002;8 elsif dml = 3 then9 DELETE from bus where busno = 1002;10 end if;11 end;12 /

Procedure created.

SQL> EXECUTE DMLOP(1)

PL/SQL procedure successfully completed.

SQL> SELECT * FROM BUS;

BUSNO SOURCE DESTINATION CLASS ----------- ------------------- ---------------------- ------------- 1002 HYDERABAD PUNE AC 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

7 rows selected.

SQL> EXECUTE DMLOP(2)

PL/SQL procedure successfully completed.

SQL> SELECT * FROM BUS;

BUSNO SOURCE DESTINATION CLASS ------------ ------------------ --------------------- ---------------- 1002 HYD MUMBAI AC 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

7 rows selected.

Page 21: DBMS Lab Record_Sandeep

SQL> EXECUTE DMLOP(3)

PL/SQL procedure successfully completed.

SQL> SELECT * FROM BUS;

BUSNO SOURCE DESTINATION CLASS ----------- --------------- ---------------------- ---------- 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

6 rows selected.

Page 22: DBMS Lab Record_Sandeep

3. Passenger grades according to age(Junior <9,Adult <40,Senior>=40)

SQL> SET SERVEROUTPUT ONSQL> CREATE OR REPLACE PROCEDURE AGEGROUP(age number)2 AS3 BEGIN4 if age<=9 then5 dbms_output.put_line('Passenger is Junior');6 elsif age between 9 and 39 then7 dbms_output.put_line('Passenger is Adult');8 elsif age >=40 then9 dbms_output.put_line('Passenger is Senior'); 10 end if;11 end;12 /

Procedure created.

SQL> EXECUTE AGEGROUP(21)Passenger is Adult

PL/SQL procedure successfully completed.

Page 23: DBMS Lab Record_Sandeep

CURSOR

1. Basic CURSOR to display first row stored in the cursor from passenger table

SQL> SET SERVEROUTPUT ONSQL> DECLARE 2 pass_rec Passenger%rowtype;3 CURSOR pass_cur IS 4 SELECT *5 FROM6 PASSENGER;7 BEGIN 8 OPEN pass_cur; 9 FETCH pass_cur INTO pass_rec; 10 dbms_output.put_line ('PNR_NO :'||pass_rec.pnr_no ||' TICKET_NO :' || pass_rec.ticket_no ||' NAME :' ||

pass_rec.name ||' AGE :' || pass_rec.age); 11 CLOSE pass_cur; 12 END; 13 /

PNR_NO :1234 TICKET_NO :4321 NAME :Bharath AGE :23

PL/SQL procedure successfully completed.

Page 24: DBMS Lab Record_Sandeep

2. Basic CURSOR to display first row stored in the cursor from ticket table

SQL> SET SERVEROUTPUT ONSQL>DECLARE 2 tick_rec TICKET%rowtype;3 CURSOR tick_cur IS 4 SELECT *5 FROM6 TICKET;7 BEGIN 8 OPEN tick_cur; 9 FETCH tick_cur INTO tick_rec; 10 dbms_output.put_line ('TICKETNUMBER: ' || tick_rec.ticket_no || ' ' || 'JOURNEYDATE: ' ||

tick_rec.journey_date || ' ' || 'AGE: '|| tick_rec.age); 11 CLOSE tick_cur; 12 END; 13 /

TICKETNUMBER: 4321 JOURNEYDATE: 15-DEC-10 AGE: 23

PL/SQL procedure successfully completed.

Page 25: DBMS Lab Record_Sandeep

3. TO FETCH ALL THE BUS DETAILS ONE ROW AT A TIME

SQL> SET SERVEROUTPUT ONSQL> Declare 2 CURSOR c_bus IS 3 select busno, source, destination,class from bus; 4 v_busno bus.busno%type; 5 v_source bus.source%type; 6 v_destination bus.destination%type; 7 v_class bus.class%type; 8 Begin 9 OPEN c_bus; 10 Dbms_output.put_line('BUSNO SOURCE DESTINATION CLASS'); 11 Dbms_output.put_line('----------- ------------- --------------------- ----------'); 12 Loop 13 FETCH c_bus into v_busno,v_source,v_destination,v_class; 14 Exit when c_bus%NOTFOUND; 15 Dbms_output.put_line(v_busno|| ' ' || v_source|| ' ' || v_destination|| ' ' || v_class ); 16 End loop; 17 CLOSE c_bus; 18 End; 19 /

BUSNO SOURCE DESTINATION CLASS----------- ------------------- ---------------------- ------------------7202 Secunderabad Guntur NON-AC2704 Secunderabad Howrah AC2714 Secunderabad Vijayawada AC2728 Hyderabad Visakhapatnam NON-AC2738 Secunderabad Kakinada AC2702 Hyderabad Mumbai NON-AC

PL/SQL procedure successfully completed.

Page 26: DBMS Lab Record_Sandeep

4.TO FETCH ALL THE BUS DETAILS ONE COLUMN AT A TIME

SQL> SET SERVEROUTPUT ONSQL>Declare 2 CURSOR c_bus IS 3 select busno, source, destination,class from bus; 4 v_busno bus.busno%type; 5 v_source bus.source%type; 6 v_destination bus.destination%type; 7 v_class bus.class%type; 8 Begin 9 OPEN c_bus; 10 Loop 11 FETCH c_bus into v_busno,v_source,v_destination,v_class; 12 Exit when c_bus%NOTFOUND; 13 Dbms_output.put_line('------------------'); 14 Dbms_output.put_line(v_busno); 15 Dbms_output.put_line(v_source); 16 Dbms_output.put_line(v_destination); 17 Dbms_output.put_line(v_class); 18 End loop; 19 CLOSE c_bus; 20 End; 21 /

------------------7202SecunderabadGunturNON-AC------------------2704SecunderabadHowrahAC------------------2714SecunderabadVijayawadaAC------------------2728HyderabadVisakhapatnamNON-AC------------------2738SecunderabadKakinadaAC------------------2702HyderabadMumbaiNON-AC

PL/SQL procedure successfully completed.

Page 27: DBMS Lab Record_Sandeep

5. TO DISPLAY THE ENTIRE PASSENGER DETAILS OF THE CANCELLED TICKETS.

SQL>SET SEVEROUTPUT ONSQL>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: 9885554321NAME: Shiva, AGE: 25, SEX: Male, ADDRESS: Ongole, CONTACT: 9908109595

PL/SQL procedure successfully completed.