Vous êtes sur la page 1sur 32

ITE1003 – DATABASE MANAGEMENT SYSTEMS

ASSESSMENT-01
Registration number-17BIT0308 Name-Kushagra Garg slot-L23+L24
:
Railway Reservation System -(Redesigning IRCTC database)
Train(train Number, name, source, destination,start_time, reach_time, traveltime, distance,
class,
days, type)
Ticket( PNRNo,Transactionid, from_station, To_station, date_of_journey, class
date_of_booking, total_ticket_fare,train number)
Passenger(PNR No, Serial no, Name, Age, Reservation_status)
Train_Route(Train_No, route_no, station_code, name, arrival_time, depart_time, distance,day)
Train_Ticket_fare(Train_No, class, base_fare, reservation_charge, superfast_charge,
other_charge, tatkal_charge, service_tax)

Q1) 1. Create all the tables specified above. Make underlined columns as primary key.(use number,

number(m,n), varchar(n), date, time, timestamp datatypes appropriately) (Low Level)

Insert atleast 5 rows to each table. (Check www.irctc.co.in website for actual data)

1. Use Interactive insertion for inserting rows to the table.


2. Use ADT(varray) for class and days column in Train table.

Input code with output

SQL> CREATE Or REPLACE TYPE class_type AS VARRAY(1) OF VARCHAR2(30);

2 /

Type created.

SQL> CREATE Or REPLACE TYPE day_type AS VARRAY(7) OF VARCHAR2(30);

2 /

SQL> create table Train(

2 train_number number(20) constraint Train_train_number_Pk PRIMARY KEY,name varchar(30),source


varchar(30),destination varchar(30),start_time varchar(7),reach_time varchar(7),traveltime_hours
number(10),distance_km number(10),class class_type,days day_type,type varchar(30));
Table created.

SQL> create table Ticket(

PNRNO number(10) constraint Ticket_PNRNO_Pk PRIMARY KEY,Transactionid varchar(30),from_station


varchar(30),to_station varchar(30),date_of_journey varchar(30),class varchar(30),date_of_booking
varchar(30),total_ticket_fare number(30),train_number number(20) constraint Ticket_train_number_Fk
REFERENCES Train(train_number));

Table created.

SQL> create table Passenger(

PNRNO number(30),serialno number(30),name varchar(30),Age number(3),reservation_status


varchar(10),constraint Passenger_PNRNO_Fk FOREIGN KEY(PNRNO) references
Ticket(PNRNO),constraint Passenger_Pk primary key(PNRNO,serialno));

Table created.

SQL> create table Train_Route(

train_number number(20),route_no number(20),station_code varchar(20),name


varchar(30),arrival_time varchar(10),depart_time varchar(10),distance_km number(10),day number(3),
constraint Train_Route_Pk PRIMARY KEY(train_number,route_no), constraint
Train_Route_train_number FOREIGN KEY(train_number) REFERENCES Train(train_number));

Table created.

create table Train_Ticket_fare(

train_number number(20),class varchar(30),base_fare number(10),reservation_charge


number(10),superfast_charge number(10),other_charge number(10),tatkal_charge
number(10),service_tax number(10),constraint Train_Ticket_fare_Pk primary
key(train_number,class),constraint Train_Ticket_fare_train_number foreign key(train_number)
references Train(train_number));

Table created.
a) Use Interactive insertion for inserting rows to the table.

Input code with output

SQL> insert into Train Values(

2
&train_number,&name,&source,&destination,&start_time,&reach_time,&traveltime_hours,&distance_
km,&class,&days,&type);

Enter value for train_number: 12461

Enter value for name: 'MANDOR EXPRESS'

Enter value for source: 'DELHI'

Enter value for destination: 'JODHPUR JN'

Enter value for start_time: '21:15'

Enter value for reach_time: '8:00'

Enter value for traveltime_hours: 5.33

Enter value for distance_km: 620

Enter value for class: class_type(‘sleeper')

Enter value for days:


day_type('MONDAY','TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY')

Enter value for type: 'superfast'

old 2:
&train_number,&name,&source,&destination,&start_time,&reach_time,&traveltime_hours,&distance_
km,&class,&days,&type)

new 2: 12461,'MANDOR EXPRESS','DELHI','JODHPUR JN','21:15','8:00',5.33,620,class_type('MANDOR


EXPRESS'),day_type('MONDAY','TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY'),'s
uperfast')

1 row created.

SQL> insert into Train Values(


2
&train_number,&name,&source,&destination,&start_time,&reach_time,&traveltime_hours,&distance_
km,&class,&days,&type);

Enter value for train_number: 12616

Enter value for name: 'G T EXPRESS'

Enter value for source: 'NEW DELHI'

Enter value for destination: 'CHENNAI CENTRAL'

Enter value for start_time: '18:40'

Enter value for reach_time: '06:20'

Enter value for traveltime_hours: 35.66

Enter value for distance_km: 2181

Enter value for class: class_type('sleeper')

Enter value for days:


day_type('MONDAY','TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY')

Enter value for type: 'superfast'

old 2:
&train_number,&name,&source,&destination,&start_time,&reach_time,&traveltime_hours,&distance_
km,&class,&days,&type)

new 2: 12616,'G T EXPRESS','NEW DELHI','CHENNAI


CENTRAL','18:40','06:20',35.66,2181,class_type('sleeper'),day_type('MONDAY','TUESDAY','WEDNESDAY',
'THURSDAY','FRIDAY','SATURDAY','SUNDAY'),'superfast')

1 row created.

SQL> insert into Train Values(

2
&train_number,&name,&source,&destination,&start_time,&reach_time,&traveltime_hours,&distance_
km,&class,&days,&type);

Enter value for train_number: 12015


Enter value for name: 'AJMER SHTBDI'

Enter value for source: 'NEW DELHI'

Enter value for destination: 'DAURAI'

Enter value for start_time: '06:05'

Enter value for reach_time: '13:10'

Enter value for traveltime_hours: 4.58

Enter value for distance_km: 450

Enter value for class: class_type('AC CHAIR CAR')

Enter value for days:


day_type('MONDAY','TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY')

Enter value for type: 'shatabdi'

old 2:
&train_number,&name,&source,&destination,&start_time,&reach_time,&traveltime_hours,&distance_
km,&class,&days,&type)

new 2: 12015,'AJMER SHTBDI','NEW DELHI','DAURAI','06:05','13:10',4.58,450,class_type('AC CHAIR


CAR'),day_type('MONDAY','TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY'),'shata
bdi')

1 row created.

SQL> insert into Train VALUES(

2
&train_number,&name,&source,&destination,&start_time,&reach_time,&traveltime_hours,&distance_
km,&class,&days,&type);

Enter value for train_number: 12621

Enter value for name: 'TAMIL NADU EXPRESS'

Enter value for source: 'NEW DELHI'

Enter value for destination: 'CHENNAI'

Enter value for start_time: '22:30'


Enter value for reach_time: '07:10'

Enter value for traveltime_hours: 32.66

Enter value for distance_km: 2182

Enter value for class: class_type('SLEEPER')

Enter value for days:


day_type('MONDAY,'TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY')

Enter value for type: 'superfast'

old 2:
&train_number,&name,&source,&destination,&start_time,&reach_time,&traveltime_hours,&distance_
km,&class,&days,&type)

new 2: 12621,'TAMIL NADU EXPRESS','NEW


DELHI','CHENNAI','22:30','07:10',32.66,2182,class_type('SLEEPER'),day_type('MONDAY,'TUESDAY','WED
NESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY'),'superfast')

1 row created.

SQL> insert into Train VALUES(

2
&train_number,&name,&source,&destination,&start_time,&reach_time,&traveltime_hours,&distance_
km,&class,&days,&type);

Enter value for train_number: 12050

Enter value for name: 'GATIMAAN EXPRESS'

Enter value for source: 'H NIZAMUDDIN'

Enter value for destination: 'AGRA CANTT'

Enter value for start_time: '08:10'

Enter value for reach_time: '09:50'

Enter value for traveltime_hours: 1.66

Enter value for distance_km: 403

Enter value for class: class_type('AC CHAIR CAR')

Enter value for days: day_type('MONDAY','TUESDAY','WEDNESDAY','THURSDAY','SATURDAY','SUNDAY')


Enter value for type: 'shatabdi'

old 2:
&train_number,&name,&source,&destination,&start_time,&reach_time,&traveltime_hours,&distance_
km,&class,&days,&type)

new 2: 12050,'GATIMAAN EXPRESS','H NIZAMUDDIN','AGRA


CANTT','08:10','09:50',1.66,403,class_type('AC CHAIR
CAR'),day_type('MONDAY','TUESDAY','WEDNESDAY','THURSDAY','SATURDAY','SUNDAY'),'shatabdi')

1 row created.

SQL> insert into Ticket values(

2
&PNRNO,&Transactionid,&from_station,&to_station,&date_of_journey,&class,&date_of_booking,&tota
l_ticket_fare,&train_number);

Enter value for pnrno: 2334567891

Enter value for transactionid: 'VADE0B248931'

Enter value for from_station: 'NEW DELHI'

Enter value for to_station: 'CHENNAI CENTRAL'

Enter value for date_of_journey: '06/08/2018'

Enter value for class: 'sleeper'

Enter value for date_of_booking: '04/08/2018'

Enter value for total_ticket_fare: 780

Enter value for train_number: 12621

old 2:
&PNRNO,&Transactionid,&from_station,&to_station,&date_of_journey,&class,&date_of_booking,&tota
l_ticket_fare,&train_number)

new 2: 2334567891, 'VADE0B248931','NEW DELHI','CHENNAI


CENTRAL','06/08/2018','sleeper','04/08/2018',780,12621)
1 row created.

SQL> insert into Ticket values(

2
&PNRNO,&Transactionid,&from_station,&to_station,&date_of_journey,&class,&date_of_booking,&tota
l_ticket_fare,&train_number);

Enter value for pnrno: 2334567892

Enter value for transactionid: 'VADE0B248910'

Enter value for from_station: 'NEW DELHI'

Enter value for to_station: 'CHENNAI CENTRAL'

Enter value for date_of_journey: '06/08/2018'

Enter value for class: 'sleeper'

Enter value for date_of_booking: '04/08/2018'

Enter value for total_ticket_fare: 780

Enter value for train_number: 12616

old 2:
&PNRNO,&Transactionid,&from_station,&to_station,&date_of_journey,&class,&date_of_booking,&tota
l_ticket_fare,&train_number)

new 2: 2334567892, 'VADE0B248910','NEW DELHI','CHENNAI


CENTRAL','06/08/2018','sleeper','04/08/2018',780,12616)

1 row created.

SQL> insert into Ticket values(

2
&PNRNO,&Transactionid,&from_station,&to_station,&date_of_journey,&class,&date_of_booking,&tota
l_ticket_fare,&train_number);

Enter value for pnrno: 2334567880

Enter value for transactionid: 'VADE0B248920'

Enter value for from_station: 'H NIZAMUDDIN'


Enter value for to_station: 'AGRA CANTT'

Enter value for date_of_journey: '10/08/2018'

Enter value for class: 'AC CHAIR CAR'

Enter value for date_of_booking: '03/08/2018'

Enter value for total_ticket_fare: 665

Enter value for train_number: 12050

old 2:
&PNRNO,&Transactionid,&from_station,&to_station,&date_of_journey,&class,&date_of_booking,&tota
l_ticket_fare,&train_number)

new 2: 2334567880, 'VADE0B248920','H NIZAMUDDIN','AGRA CANTT','10/08/2018','AC CHAIR


CAR','03/08/2018',665,12050)

1 row created.

SQL> insert into Ticket values(

2
&PNRNO,&Transactionid,&from_station,&to_station,&date_of_journey,&class,&date_of_booking,&tota
l_ticket_fare,&train_number);

Enter value for pnrno: 2334567850

Enter value for transactionid: 'VADE0B248910'

Enter value for from_station: 'DELHI'

Enter value for to_station: 'JODHPUR JN'

Enter value for date_of_journey: '11/08/2018'

Enter value for class: 'sleeper'

Enter value for date_of_booking: '03/08/2018'

Enter value for total_ticket_fare: 370

Enter value for train_number: 12461


old 2:
&PNRNO,&Transactionid,&from_station,&to_station,&date_of_journey,&class,&date_of_booking,&tota
l_ticket_fare,&train_number)

new 2: 2334567850, 'VADE0B248910','DELHI','JODHPUR


JN','11/08/2018','sleeper','03/08/2018',370,12461)

1 row created.

SQL> insert into Ticket values(

2
&PNRNO,&Transactionid,&from_station,&to_station,&date_of_journey,&class,&date_of_booking,&tota
l_ticket_fare,&train_number);

Enter value for pnrno: 2334567890

Enter value for transactionid: 'VADE0B248930'

Enter value for from_station: 'NEW DELHI'

Enter value for to_station: 'DAURAI'

Enter value for date_of_journey: '09/08/2018'

Enter value for class: 'AC CHAIR CAR'

Enter value for date_of_booking: '04/08/2018'

Enter value for total_ticket_fare: 700

Enter value for train_number: 12015

old 2:
&PNRNO,&Transactionid,&from_station,&to_station,&date_of_journey,&class,&date_of_booking,&tota
l_ticket_fare,&train_number)

new 2: 2334567890,'VADE0B248930','NEW DELHI','DAURAI','09/08/2018','AC CHAIR


CAR','04/08/2018',700,12015)

1 row created.
SQL> insert into Passenger_details VALUES(

2 &PNRNO,&serialno,&name,&Age,&reservation_status);

Enter value for pnrno: 2334567850

Enter value for serialno: 1

Enter value for name: 'KUSHAGRA GARG'

Enter value for age: 18

Enter value for reservation_status: 'CONFIRM'

old 2: &PNRNO,&serialno,&name,&Age,&reservation_status)

new 2: 2334567850,1,'KUSHAGRA GARG',18,'CONFIRM')

1 row created.

SQL> insert into Passenger_details VALUES(

2 &PNRNO,&serialno,&name,&Age,&reservation_status);

Enter value for pnrno: 2334567880

Enter value for serialno: 2

Enter value for name: 'KAMAL GUPTA'

Enter value for age: 20

Enter value for reservation_status: 'WAITING'

old 2: &PNRNO,&serialno,&name,&Age,&reservation_status)

new 2: 2334567880,2,'KAMAL GUPTA',20,'WAITING')

1 row created.

SQL> insert into Passenger_details VALUES(


2 &PNRNO,&serialno,&name,&Age,&reservation_status);

Enter value for pnrno: 2334567890

Enter value for serialno: 3

Enter value for name: 'MANUL GUPTA'

Enter value for age: 21

Enter value for reservation_status: 'CONFIRM'

old 2: &PNRNO,&serialno,&name,&Age,&reservation_status)

new 2: 2334567890,3,'MANUL GUPTA',21,'CONFIRM')

1 row created.

SQL> insert into Passenger_details VALUES(

2 &PNRNO,&serialno,&name,&Age,&reservation_status);

Enter value for pnrno: 2334567891

Enter value for serialno: 4

Enter value for name: 'KAMAL GUPTA'

Enter value for age: 25

Enter value for reservation_status: 'WAITING'

old 2: &PNRNO,&serialno,&name,&Age,&reservation_status)

new 2: 2334567891,4,'KAMAL GUPTA',25,'WAITING')

1 row created.

SQL> insert into Passenger_details VALUES(

2 &PNRNO,&serialno,&name,&Age,&reservation_status);
Enter value for pnrno: 2334567892

Enter value for serialno: 5

Enter value for name: 'AKSHAY GUPTA'

Enter value for age: 26

Enter value for reservation_status: 'CONFIRM'

old 2: &PNRNO,&serialno,&name,&Age,&reservation_status)

new 2: 2334567892,5,'AKSHAY GUPTA',26,'CONFIRM')

1 row created.

SQL> insert into Train_Route values(

2 &Train_No,&route_no,&station_code,&name,&arrival_time,&depart_time,&distance,&day);

Enter value for train_no: 12461

Enter value for route_no: 5

Enter value for station_code: 'JP'

Enter value for name: 'JAIPUR'

Enter value for arrival_time: '02:35'

Enter value for depart_time: '02:45'

Enter value for distance: 308

Enter value for day: 2

old 2: &Train_No,&route_no,&station_code,&name,&arrival_time,&depart_time,&distance,&day)

new 2: 12461,5,'JP','JAIPUR','02:35','02:45',308,2)

1 row created.
SQL> insert into Train_Route values(

2 &Train_No,&route_no,&station_code,&name,&arrival_time,&depart_time,&distance,&day);

Enter value for train_no: 12015

Enter value for route_no: 4

Enter value for station_code: 'DEC'

Enter value for name: 'DELHI CANTT'

Enter value for arrival_time: '06:33'

Enter value for depart_time: '06:35'

Enter value for distance: 16

Enter value for day: 1

old 2: &Train_No,&route_no,&station_code,&name,&arrival_time,&depart_time,&distance,&day)

new 2: 12015,4,'DEC','DELHI CANTT','06:33','06:35',16,1)

1 row created.

SQL> insert into Train_Route values(

2 &Train_No,&route_no,&station_code,&name,&arrival_time,&depart_time,&distance,&day);

Enter value for train_no: 12461

Enter value for route_no: 5

Enter value for station_code: 'JP'

Enter value for name: 'JAIPUR'

Enter value for arrival_time: '02:35'

Enter value for depart_time: '02:45'


Enter value for distance: 308

Enter value for day: 2

old 2: &Train_No,&route_no,&station_code,&name,&arrival_time,&depart_time,&distance,&day)

new 2: 12461,5,'JP','JAIPUR','02:35','02:45',308,2)

1 row created.

SQL> insert into Train_Route values(

2 &Train_No,&route_no,&station_code,&name,&arrival_time,&depart_time,&distance,&day);

Enter value for train_no: 12015

Enter value for route_no: 4

Enter value for station_code: 'DEC'

Enter value for name: 'DELHI CANTT'

Enter value for arrival_time: '06:33'

Enter value for depart_time: '06:35'

Enter value for distance: 16

Enter value for day: 1

old 2: &Train_No,&route_no,&station_code,&name,&arrival_time,&depart_time,&distance,&day)

new 2: 12015,4,'DEC','DELHI CANTT','06:33','06:35',16,1)

1 row created.

SQL> insert into Train_Ticket_fare Values(

2
&train_number,&class,&base_fare,&reservation_charge,&superfast_charge,&other_charge,&tatkal_cha
rge,&service_tax);
Enter value for train_number: 12050

Enter value for class: 'AC CHAIR CAR'

Enter value for base_fare: 462

Enter value for reservation_charge: 40

Enter value for superfast_charge: 45

Enter value for other_charge: 175

Enter value for tatkal_charge: 146

Enter value for service_tax: 27

old 2:
&train_number,&class,&base_fare,&reservation_charge,&superfast_charge,&other_charge,&tatkal_cha
rge,&service_tax)

new 2: 12050,'AC CHAIR CAR',462,40,45,175,146,27)

1 row created.

SQL> insert into Train_Ticket_fare Values(

2
&train_number,&class,&base_fare,&reservation_charge,&superfast_charge,&other_charge,&tatkal_cha
rge,&service_tax);

Enter value for train_number: 12461

Enter value for class: 'sleeper'

Enter value for base_fare: 320

Enter value for reservation_charge: 20

Enter value for superfast_charge: 30

Enter value for other_charge: NULL

Enter value for tatkal_charge: 101

Enter value for service_tax: NULL


old 2:
&train_number,&class,&base_fare,&reservation_charge,&superfast_charge,&other_charge,&tatkal_cha
rge,&service_tax)

new 2: 12461,'sleeper',320,20,30,NULL,101,NULL)

1 row created.

SQL>

SQL> insert into Train_Ticket_fare Values(

2
&train_number,&class,&base_fare,&reservation_charge,&superfast_charge,&other_charge,&tatkal_cha
rge,&service_tax);

Enter value for train_number: 12616

Enter value for class: 'sleeper'

Enter value for base_fare: 730

Enter value for reservation_charge: 20

Enter value for superfast_charge: 30

Enter value for other_charge: NULL

Enter value for tatkal_charge: 230

Enter value for service_tax: NULL

old 2:
&train_number,&class,&base_fare,&reservation_charge,&superfast_charge,&other_charge,&tatkal_cha
rge,&service_tax)

new 2: 12616,'sleeper',730,20,30,NULL,230,NULL)

1 row created.

SQL> insert into Train_Ticket_fare Values(


2
&train_number,&class,&base_fare,&reservation_charge,&superfast_charge,&other_charge,&tatkal_cha
rge,&service_tax);

Enter value for train_number: 12621

Enter value for class: 'sleeper'

Enter value for base_fare: 730

Enter value for reservation_charge: 20

Enter value for superfast_charge: 30

Enter value for other_charge: NULL

Enter value for tatkal_charge: 230

Enter value for service_tax: NULL

old 2:
&train_number,&class,&base_fare,&reservation_charge,&superfast_charge,&other_charge,&tatkal_cha
rge,&service_tax)

new 2: 12621,'sleeper',730,20,30,NULL,230,NULL)

1 row created.

SQL> insert into Train_Ticket_fare Values(

2
&train_number,&class,&base_fare,&reservation_charge,&superfast_charge,&other_charge,&tatkal_cha
rge,&service_tax);

Enter value for train_number: 12015

Enter value for class: 'AC CHAIR CAR'

Enter value for base_fare: 582

Enter value for reservation_charge: 40

Enter value for superfast_charge: 45

Enter value for other_charge: 80


Enter value for tatkal_charge: 184

Enter value for service_tax: NULL

old 2:
&train_number,&class,&base_fare,&reservation_charge,&superfast_charge,&other_charge,&tatkal_cha
rge,&service_tax)

new 2: 12015,'AC CHAIR CAR',582,40,45,80,184,NULL)

1 row created.

2. Write simple DDL/DML Queries to (Low Level)

1. Remove all the rows from Passenger table permanently.

SQL> DELETE FROM Passenger;

5 rows deleted.

2. Change the name of the Passenger table to Passenger_Details.


SQL> RENAME Passenger to Passenger_details;

Table renamed.
3. List all train details.
SQL>select *from Train;
TRAIN_NUMBER NAME SOURCE
------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------
12050 GATIMAAN EXPRESS H NIZAMUDDIN
AGRA CANTT 08:10 09:50 2 403
CLASS_TYPE('AC CHAIR CAR')

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------
DAY_TYPE('MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'SATURDAY',
'SUNDAY')
shatabdi

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------
12621 TAMIL NADU EXPRESS NEW DELHI
CHENNAI CENTRAL 18:40 06:20 36 2181
CLASS_TYPE('sleeper')

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------
DAY_TYPE('MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY',
'SATURDAY', 'SU
NDAY')
superfast

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------

12616 G T EXPRESS NEW DELHI


CHENNAI CENTRAL 18:40 06:20 36 2181

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------
CLASS_TYPE('sleeper')
DAY_TYPE('MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY',
'SATURDAY', 'SU
NDAY')

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------
superfast

12015 AJMER SHTBDI NEW DELHI

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------
DAURAI 06:05 13:10 5 450
CLASS_TYPE('AC CHAIR CAR')
DAY_TYPE('MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY',
'SATURDAY', 'SU

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------
NDAY')
shatabdi

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------
12461 MANDOR EXPRESS DELHI
JODHPUR JN 21:15 8:00 5 620
CLASS_TYPE('sleeper')

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------
DAY_TYPE('MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY',
'SATURDAY', 'SU
NDAY')
superfast

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------

4. List all passenger details.

PNRNO SERIALNO NAME AGE RESERVATIO


---------- ---------- ------------------------------ ---------- ----------
2334567850 1 KUSHAGRA GARG 18 CONFIRM
2334567880 2 KAMAL GUPTA 20 WAITING
2334567890 3 MANUL GUPTA 21 CONFIRM
2334567891 4 KAMAL GUPTA 25 WAITING
2334567892 5 AKSHAY GUPTA 26 CONFIRM
5. Give a list of trains in ascending order of number.
SQL> select train_number,name from Train ORDER BY Train_number ASC;

TRAIN_NUMBER NAME
------------ ------------------------------
12015 AJMER SHTBDI
12050 GATIMAAN EXPRESS
12461 MANDOR EXPRESS
12616 G T EXPRESS
12621 TAMIL NADU EXPRESS
6. List the senior citizen passengers details.
SQL> select *from Passenger_details where AGE>=60;

no rows selected
7. List the station names where code starts with 'M'.
SQL> select name from Train_Route where station_code='M*';

no rows selected
8. List the trains details within a range of numbers.
SQL> select *from Train where Train_number>=12000 and Train_number<=12500;
TRAIN_NUMBER NAME SOURCE
------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------
12050 GATIMAAN EXPRESS H NIZAMUDDIN
AGRA CANTT 08:10 09:50 2 403
CLASS_TYPE('AC CHAIR CAR')

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------
DAY_TYPE('MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'SATURDAY',
'SUNDAY')
shatabdi

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------
12015 AJMER SHTBDI NEW DELHI
DAURAI 06:05 13:10 5 450
CLASS_TYPE('AC CHAIR CAR')

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------
DAY_TYPE('MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY',
'SATURDAY', 'SU
NDAY')
shatabdi

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------

12461 MANDOR EXPRESS DELHI


JODHPUR JN 21:15 8:00 5 620

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------
CLASS_TYPE('sleeper')
DAY_TYPE('MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY',
'SATURDAY', 'SU
NDAY')

TRAIN_NUMBER NAME SOURCE


------------ ------------------------------ ------------------------------
DESTINATION START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM
------------------------------ ------- ------- ---------------- -----------
CLASS
--------------------------------------------------------------------------------
DAYS
--------------------------------------------------------------------------------
TYPE
------------------------------
superfast

9. Change the super fast charge value in train fare as zero , if it is null.
SQL> update Train_Ticket_fare set superfast_charge=0 where superfast_charge IS NULL;

0 rows updated.
10. List the passenger names whose tickets are not confirmed.
SQL> select *from Passenger_details where Reservation_status!='CONFIRM';

PNRNO SERIALNO NAME AGE RESERVATIO


---------- ---------- ------------------------------ ---------- ----------
2334567880 2 KAMAL GUPTA 20 WAITING
2334567891 4 KAMAL GUPTA 25 WAITING
11. List the base_fare of all AC coaches available in each train.
SQL> select BASE_FARE from Train_Ticket_fare where CLASS='AC CHAIR CAR';

BASE_FARE
----------
582
462
Find the ticket details where transaction id is not known.
SQL> select *from Ticket where Transactionid='NULL';

no rows selected
1. Use Interactive updation for updating the serial no for particular PNR NO.
SQL> update Passenger_details set serialno=&serialno where pnrno=&pnrno;
Enter value for serialno: 6
Enter value for pnrno: 2334567850
old 1: update Passenger_details set serialno=&serialno where pnrno=&pnrno
new 1: update Passenger_details set serialno=6 where pnrno=2334567850

1 row updated.

2. Find the train names that are from Chennai to Mumbai, but do not have the source or
destination in its name.
SQL> select name from Train where SOURCE='CHENNAI' AND DESTINATION='MUMBAI'
AND NAME!='*CHENNAI*MUMBAI*' AND NAME!='*MUMBAI*CHENNAI*';
no rows selected
3 Find the train details that are on Thursday(Use the ADT column created).

Day is of data type varray.

3. Create (Alter table to add constraint) the necessary foreign keys by identifying the
relationships in the table. (Middle Level)
1. Add a suitable constraint to train table to always have train no in the range 10001 to
99999.

SQL> alter table Train ADD constraint Train_Train_number_check check(TRAIN_NUMBER


BETWEEN 10001 AND 99999);

Table altered.

2. Add a suitable constraint for the column of station name, so that does not take
duplicates.
SQL> alter table Train_Route add constraint Train_Route_name_unique unique(name);

Table altered.

3. Change the data type of arrival time, depart time (date -> timestamp or timestamp to
date),
and do the necessary process for updating the table with new values.
SQL> alter table Train drop column start_time;

Table altered.

SQL> alter table train drop column reach_time;

Table altered.

SQL> alter table Train add start_time timestamp(0);

Table altered.

SQL> alter table Train add reach_time timestamp(0);

Table altered.

SQL> update Train set start_time=to_timestamp('08-08-2018 18:40:00','dd-mm-yyyy


HH24:MI:SS'),reach_time=to_timestamp('10-08-2018 06:20:00','dd-mm-yyyy HH24:MI:SS')
where train_number=12616;

1 row updated.
SQL> update Train set start_time=to_timestamp('08-08-2018 06:05:00','dd-mm-yyyy
HH24:MI:SS'),reach_time=to_timestamp('08-08-2018 13:10:00','dd-mm-yyyy HH24:MI:SS')
where train_number=12015;

1 row updated.

SQL> update Train set start_time=to_timestamp('08-08-2018 22:30:00','dd-mm-yyyy


HH24:MI:SS'),reach_time=to_timestamp('10-08-2018 07:10:00','dd-mm-yyyy HH24:MI:SS')
where train_number=12621;

1 row updated.

SQL> update Train set start_time=to_timestamp('08-08-2018 08:10:00','dd-mm-yyyy


HH24:MI:SS'),reach_time=to_timestamp('08-08-2018 09:50:00','dd-mm-yyyy HH24:MI:SS')
where train_number=12050;

1 row updated.

SQL> update Train set start_time=to_timestamp('08-08-2018 21:15:00','dd-mm-yyyy


HH24:MI:SS'),reach_time=to_timestamp('09-08-2018 8:00:00','dd-mm-yyyy HH24:MI:SS')
where train_number=12461;

1 row updated.

4. Add a suitable constraint for the class column that it should take values only as 1A, 2A,
3A, SL, C.
Class is of constraint varray
5. Add a not null constraint for the column distance in train_route.

SQL> alter table Train_route modify distance_km number constraint


2 train_route_distance_notnull NOT NULL;

Table altered.

4. Use SQL PLUS functions to. (Low Level)


1. Find the passengers whose date of journey is one month from today.
SQL> select PNRNO from Ticket where
to_date(date_of_journey,'dd/mm/yyyy')=add_months('08-AUG-2018',1);

no rows selected
2 Print the train names in upper case.
SQL> select upper(name) from Train;
UPPER(NAME)
------------------------------
GATIMAAN EXPRESS
TAMIL NADU EXPRESS
G T EXPRESS
AJMER SHTBDI
MANDOR EXPRESS
3 Print the passenger names with left padding character.
SQL> select lpad(name,20,'@') from Passenger_details;

LPAD(NAME,20,'@')
--------------------
@@@@@@@KUSHAGRA GARG
@@@@@@@@@KAMAL GUPTA
@@@@@@@@@MANUL GUPTA
@@@@@@@@@KAMAL GUPTA
@@@@@@@@AKSHAY GUPTA
4 Print the station codes replacing K with M.
SQL> select replace(station_code,'K','M') from Train_Route;

REPLACE(STATION_CODE
--------------------
JP
DEC
AGC
GWL
BPL
5. Translate all the LC in class column (Train_fare) to POT and display.
SQL> select translate(class,'LC','POT') from Train_ticket_fare;

TRANSLATE(CLASS,'LC','POT')
------------------------------
AO OHAIR OAR
AO OHAIR OAR
sleeper
sleeper
sleeper
6. Display the fare details of all trains, if any value is ZERO, print as NULL value.
SQL> select *from Train_Ticket_fare;

TRAIN_NUMBER CLASS BASE_FARE RESERVATION_CHARGE


------------ ------------------------------ ---------- ------------------
SUPERFAST_CHARGE OTHER_CHARGE TATKAL_CHARGE SERVICE_TAX
---------------- ------------ ------------- -----------
12621 sleeper 730 20
30 230

12015 AC CHAIR CAR 582 40


45 80 184

12050 AC CHAIR CAR 462 40


45 175 146 27

TRAIN_NUMBER CLASS BASE_FARE RESERVATION_CHARGE


------------ ------------------------------ ---------- ------------------
SUPERFAST_CHARGE OTHER_CHARGE TATKAL_CHARGE SERVICE_TAX
---------------- ------------ ------------- -----------
12461 sleeper 320 20
30 101

12616 sleeper 730 20


30 230
7. Display the pnrno and transaction id, if transaction id is null, print 'not generated'.
SQL> select pnrno,nvl(transactionid,'not generated') from ticket;

PNRNO NVL(TRANSACTIONID,'NOTGENERATE
---------- ------------------------------
2334567890 VADE0B248930
2334567880 VADE0B248920
2334567850 VADE0B248910
2334567892 VADE0B248910
2334567891 VADE0B248931
8. Print the date_of_journey in the format '27th November 2010'.
SQL> select to_char(to_date(date_of_journey,'DD/mm/yyyy'),'ddth month yyyy') from Ticket;

TO_CHAR(TO_DATE(DAT
-------------------
09th august 2018
10th august 2018
11th august 2018
06th august 2018
06th august 2018
9. Find the maximum fare (total fare).
SQL> select max(TOTAL_TICKET_FARE) from ticket;

MAX(TOTAL_TICKET_FARE)
----------------------
780
10. Find the average age of passengers in one ticket.
SQL> select avg(age) from Passenger_details;
AVG(AGE)
----------
22
11. Find the maximum length of station name available in the database.
SQL> select max(length(name)) from Train_route;

MAX(LENGTH(NAME))
-----------------
11
12. Print the fare amount of the passengers as rounded value.
SQL> select round(total_ticket_fare) from ticket;

ROUND(TOTAL_TICKET_FARE)
------------------------
700
665
370
780
780
13. Add the column halt time to train route.
SQL> alter table Train_route add Halt_time_min number(3);

Table altered.
14. Update values to it from arrival time and depart time.
SQL> update Train_route set Halt_time_min=10 where train_number=12461;

1 row updated.

SQL> update Train_route set Halt_time_min=2 where train_number=12015;

1 row updated.

SQL> update Train_route set Halt_time_min=3 where train_number=12621;

1 row updated.

SQL> update Train_route set Halt_time_min=2 where train_number=12050;

1 row updated.

SQL> update Train_route set Halt_time_min=5 where train_number=12616;

1 row updated.
High Level:
15. Update values to arrival time and depart time using conversion functions.
16. Display the arrival time, depart time in the format HH:MI (24 hours and minutes).

SQL> select arrival_time,depart_time from Train_route;

ARRIVAL_TI DEPART_TIM

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

02:35 02:45

06:33 06:35

01:00 01:03

11:16 11:18

05:20 05:25