Sei sulla pagina 1di 32

ITE1003 DATABASE MANAGEMENT SYSTEMS

ASSESSMENT-01

Registration number-17BIT0308

:

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)

Name-Kushagra Garg

slot-L23+L24

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

&train_number,&name,&source,&destination,&start_time,&reach_time,&traveltime_hours,&distance_

km,&class,&days,&type)

2:

new

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

uperfast')

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

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

&train_number,&name,&source,&destination,&start_time,&reach_time,&traveltime_hours,&distance_

km,&class,&days,&type)

2:

new

CENTRAL','18:40','06:20',35.66,2181,class_type('sleeper'),day_type('MONDAY','TUESDAY','WEDNESDAY',

'THURSDAY','FRIDAY','SATURDAY','SUNDAY'),'superfast')

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

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

&train_number,&name,&source,&destination,&start_time,&reach_time,&traveltime_hours,&distance_

km,&class,&days,&type)

2:

new

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

bdi')

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

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

&train_number,&name,&source,&destination,&start_time,&reach_time,&traveltime_hours,&distance_

km,&class,&days,&type)

2:

new

DELHI','CHENNAI','22:30','07:10',32.66,2182,class_type('SLEEPER'),day_type('MONDAY,'TUESDAY','WED

NESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY'),'superfast')

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

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

&train_number,&name,&source,&destination,&start_time,&reach_time,&traveltime_hours,&distance_

km,&class,&days,&type)

2:

new

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

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

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

&PNRNO,&Transactionid,&from_station,&to_station,&date_of_journey,&class,&date_of_booking,&tota

l_ticket_fare,&train_number)

2:

new

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

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

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

&PNRNO,&Transactionid,&from_station,&to_station,&date_of_journey,&class,&date_of_booking,&tota

l_ticket_fare,&train_number)

2:

new

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

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

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

&PNRNO,&Transactionid,&from_station,&to_station,&date_of_journey,&class,&date_of_booking,&tota

l_ticket_fare,&train_number)

2:

new

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

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

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

&PNRNO,&Transactionid,&from_station,&to_station,&date_of_journey,&class,&date_of_booking,&tota

l_ticket_fare,&train_number)

2:

new

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

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

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

&PNRNO,&Transactionid,&from_station,&to_station,&date_of_journey,&class,&date_of_booking,&tota

l_ticket_fare,&train_number)

2:

new

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

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

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

new

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

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

new

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

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

&train_number,&class,&base_fare,&reservation_charge,&superfast_charge,&other_charge,&tatkal_cha

rge,&service_tax)

2:

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

&train_number,&class,&base_fare,&reservation_charge,&superfast_charge,&other_charge,&tatkal_cha

rge,&service_tax)

2:

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

&train_number,&class,&base_fare,&reservation_charge,&superfast_charge,&other_charge,&tatkal_cha

rge,&service_tax)

2:

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

&train_number,&class,&base_fare,&reservation_charge,&superfast_charge,&other_charge,&tatkal_cha

rge,&service_tax)

2:

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

&train_number,&class,&base_fare,&reservation_charge,&superfast_charge,&other_charge,&tatkal_cha

rge,&service_tax)

2:

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

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

DESTINATION

------------------------------ ------- ------- ---------------- ----------- CLASS

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

DAYS

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

TYPE

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

SOURCE

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

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

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

DESTINATION

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

CLASS

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

DAYS

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

TYPE

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

SOURCE

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

12621 TAMIL NADU EXPRESS

CHENNAI CENTRAL CLASS_TYPE('sleeper')

18:40

NEW DELHI

06:20

36

2181

TRAIN_NUMBER NAME

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

DESTINATION

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

CLASS

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

DAYS

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

TYPE

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

DAY_TYPE('MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY',

'SATURDAY', 'SU NDAY') superfast

SOURCE

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

TRAIN_NUMBER NAME

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

DESTINATION

------------------------------ ------- ------- ---------------- ----------- CLASS

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

SOURCE

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

DAYS

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

TYPE

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

12616 G T EXPRESS

NEW DELHI

CHENNAI CENTRAL

18:40

06:20

36

2181

TRAIN_NUMBER NAME

SOURCE

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

DESTINATION

------------------------------ ------- ------- ---------------- ----------- CLASS

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

DAYS

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

TYPE

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

CLASS_TYPE('sleeper') DAY_TYPE('MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SU NDAY')

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

TRAIN_NUMBER NAME

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

DESTINATION

------------------------------ ------- ------- ---------------- ----------- CLASS

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

DAYS

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

TYPE

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

superfast

SOURCE

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

12015

AJMER SHTBDI

NEW DELHI

TRAIN_NUMBER NAME

SOURCE

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

DESTINATION

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

CLASS

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

DAYS

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

TYPE

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

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

DAURAI

CLASS_TYPE('AC CHAIR CAR') DAY_TYPE('MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SU

06:05

13:10

5

450

TRAIN_NUMBER NAME

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

DESTINATION

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

CLASS

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

DAYS

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

TYPE

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

NDAY')

shatabdi

SOURCE

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

TRAIN_NUMBER NAME

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

DESTINATION

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

CLASS

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

DAYS

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

TYPE

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

SOURCE

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

12461 MANDOR EXPRESS

JODHPUR JN CLASS_TYPE('sleeper')

21:15

8:00

DELHI

5

620

TRAIN_NUMBER NAME

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

DESTINATION

------------------------------ ------- ------- ---------------- ----------- CLASS

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

DAYS

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

TYPE

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

DAY_TYPE('MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SU

SOURCE

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

NDAY')

superfast

TRAIN_NUMBER NAME

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

DESTINATION

------------------------------ ------- ------- ---------------- ----------- CLASS

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

DAYS

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

TYPE

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

SOURCE

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

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

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

DESTINATION

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

CLASS

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

DAYS

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

TYPE

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

SOURCE

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

12050 GATIMAAN EXPRESS

H NIZAMUDDIN

AGRA CANTT

08:10

09:50

2

403

CLASS_TYPE('AC CHAIR CAR')

 

TRAIN_NUMBER NAME

SOURCE

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

DESTINATION

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

CLASS

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

DAYS

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

TYPE

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

DAY_TYPE('MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'SATURDAY', 'SUNDAY') shatabdi

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

TRAIN_NUMBER NAME

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

DESTINATION

------------------------------ ------- ------- ---------------- ----------- CLASS

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

DAYS

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

TYPE

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

SOURCE

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

12015

AJMER SHTBDI

NEW DELHI

DAURAI

06:05

13:10

5

450

CLASS_TYPE('AC CHAIR CAR')

TRAIN_NUMBER NAME

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

SOURCE

DESTINATION

------------------------------ ------- ------- ---------------- ----------- CLASS

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

DAYS

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

TYPE

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

DAY_TYPE('MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SU

NDAY')

shatabdi

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

TRAIN_NUMBER NAME

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

DESTINATION

------------------------------ ------- ------- ---------------- ----------- CLASS

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

DAYS

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

TYPE

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

SOURCE

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

12461 MANDOR EXPRESS

JODHPUR JN

21:15

8:00

DELHI

5

620

TRAIN_NUMBER NAME

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

DESTINATION

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

CLASS

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

DAYS

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

TYPE

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

CLASS_TYPE('sleeper') DAY_TYPE('MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SU NDAY')

SOURCE

START_T REACH_T TRAVELTIME_HOURS DISTANCE_KM

TRAIN_NUMBER NAME

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

DESTINATION

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

SOURCE

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

------------ ------------------------------ ---------- ------------------ SUPERFAST_CHARGE OTHER_CHARGE TATKAL_CHARGE SERVICE_TAX ---------------- ------------ ------------- -----------

BASE_FARE RESERVATION_CHARGE

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

------------ ------------------------------ ---------- ------------------ SUPERFAST_CHARGE OTHER_CHARGE TATKAL_CHARGE SERVICE_TAX ---------------- ------------ ------------- -----------

BASE_FARE RESERVATION_CHARGE

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