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

Railway Reservation

The document describes SQL commands to create tables to manage train reservations and seat bookings. It creates tables for train details, reservations, and a waiting list. It then demonstrates inserting train and reservation data, reserving and cancelling seats, and moving customers from the waiting list to reservations.

Uploaded by

palak rathore
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)
118 views

Railway Reservation

The document describes SQL commands to create tables to manage train reservations and seat bookings. It creates tables for train details, reservations, and a waiting list. It then demonstrates inserting train and reservation data, reserving and cancelling seats, and moving customers from the waiting list to reservations.

Uploaded by

palak rathore
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/ 7

>>>>>>>>>>>>>>>>>>>>CREATE TABLE<<<<<<<<<<<<<<<<<<<<

create table train_details(train_name char(15) primary key,total_seats


number(3),reserved_seats number(3));

create table reservation_status(train_name char(15) references


train_details(train_name),seat_id number(3),reserved char(2) check (reserved
in('y','n')),customer_name char(15));

create table waiting_list(slno number(3),customer_name char(15) primary


key,train_name char(15) references train_details(train_name));

>>>>>>>>>>>>>>>>>>>>ENTER TRAIN DETAILS<<<<<<<<<<<<<<<<<<<<

SQL> declare

tname char(15);

tot number(3);

resv number(3);

cursor cur is select * from train_details;

begin

insert into train_details values('&train_name',&total_seats,0);

open cur;

loop

fetch cur into tname,tot,resv;

if cur%found then

for i in 1..tot

loop

insert into reservation_status values(tname,i,'n',null);

end loop;

else

exit;

end if;

end loop;

commit;

close cur;

end;

/
Enter value for train_name: AA

Enter value for total_seats: 3

old 7: insert into train_details values('&train_name',&total_seats,0);

new 7: insert into train_details values('AA',3,0);

PL/SQL procedure successfully completed.

SQL> /

Enter value for train_name: BB

Enter value for total_seats: 2

old 7: insert into train_details values('&train_name',&total_seats,0);

new 7: insert into train_details values('BB',2,0);

PL/SQL procedure successfully completed.

SQL> select * from train_details;

TRAIN_NAME TOTAL_SEATS RESERVED_SEATS

---------------------------------------------

AA 3 0

BB 2 0

SQL> select * from reservation_status;

TRAIN_NAME SEAT_ID RE CUSTOMER_NAME

--------------------------------------------------------

AA 1 n

AA 2 n

AA 3 n

BB 1 n

BB 2 n

5 rows selected.

>>>>>>>>>>>>>>>>>>>>RESERVE A SEAT<<<<<<<<<<<<<<<<<<<<

declare

cname char(15);

tname char(15);
tot number(3);

resv number(3);

sid number(3);

sno number(3);

sl number(3);

begin

cname:=&cname;

tname:=&tname;

select total_seats into tot from train_details where train_name=tname;

select reserved_seats into resv from train_details where train_name=tname;

if tot>resv then

select MIN(seat_id) into sid from reservation_status where train_name=tname and


reserved='n';

update reservation_status set reserved='y' where train_name=tname and seat_id=sid;

update reservation_status set customer_name=cname where train_name=tname and


seat_id=sid;

update train_details set reserved_seats=reserved_seats+1 where train_name=tname;

else

select MAX(slno) into sno from waiting_list;

if sno is null then

sl:=1;

else

sl:=sno+1;

end if;

insert into waiting_list values(sl,cname,tname);

end if;

end;

SQL> /

Enter value for cname: 'Tintumon'

old 10: cname:=&cname;

new 10: cname:='Tintumon';


Enter value for tname: 'AA'

old 11: tname:=&tname;

new 11: tname:='AA';

PL/SQL procedure successfully completed.

SQL> /

Enter value for cname: 'Kuttoos'

old 10: cname:=&cname;

new 10: cname:='Kuttoos';

Enter value for tname: 'BB'

old 11: tname:=&tname;

new 11: tname:='BB';

PL/SQL procedure successfully completed.

SQL> /

Enter value for cname: 'Appu'

old 10: cname:=&cname;

new 10: cname:='Appu';

Enter value for tname: 'BB'

old 11: tname:=&tname;

new 11: tname:='BB';

PL/SQL procedure successfully completed.

SQL> /

Enter value for cname: 'Tuttu'

old 10: cname:=&cname;

new 10: cname:='Tuttu';

Enter value for tname: 'BB'

old 11: tname:=&tname;

new 11: tname:='BB';

PL/SQL procedure successfully completed.

SQL> select * from reservation_status;


TRAIN_NAME SEAT_ID RE CUSTOMER_NAME

---------------------------------------------

AA 1 y Tintumon

AA 2 n

AA 3 n

BB 1 y Kuttoos

BB 2 y Appu

5 rows selected.

SQL> select * from waiting_list;

SLNO CUSTOMER_NAME TRAIN_NAME

--------------------------------------

1 Tuttu BB

>>>>>>>>>>>>>>>>>>>>CANCEL A RESERVATION<<<<<<<<<<<<<<<<<<<<

declare

cname char(15);

tname char(15);

sid number(3);

sno number(3);

sl number(3);

begin

cname:=&cname;

tname:=&tname;

select seat_id into sid from reservation_status where train_name=tname and


customer_name=cname;

select MIN(slno) into sno from waiting_list where train_name=tname;

if sno is not null then

select customer_name into cname from waiting_list where train_name=tname and


slno=sno;

update reservation_status set customer_name=cname where train_name=tname and


seat_id=sid;

delete from waiting_list where train_name=tname and slno=sno;


else

update reservation_status set reserved='n' where train_name=tname and seat_id=sid;

update reservation_status set customer_name=null where train_name=tname and


seat_id=sid;

update train_details set reserved_seats=reserved_seats-1 where train_name=tname;

end if;

end;

Enter value for cname: 'Appu'

old 8: cname:=&cname;

new 8: cname:='Appu';

Enter value for tname: 'BB'

old 9: tname:=&tname;

new 9: tname:='BB';

PL/SQL procedure successfully completed.

SQL> select * from reservation_status;

TRAIN_NAME SEAT_ID RE CUSTOMER_NAME

--------------------------------------------

AA 1 y Tintumon

AA 2 n

AA 3 n

BB 1 y Kuttoos

BB 2 y Tuttu

5 rows selected.

SQL> select * from waiting_list;

SLNO CUSTOMER_NAME TRAIN_NAME

---------------------------------------

SQL> select * from train_details;

TRAIN_NAME TOTAL_SEATS RESERVED_SEATS

---------------------------------------------
AA 3 1

BB 2 2

You might also like