SET – 5
HOSTEL (HNO, HNAME, HADDR, TOTAL_CAPACITY,
WARDEN)
create table
hostel
(
hnonumber(10)
primary key,
hname
varchar2(20) NOT NULL,
haddr
varchar2(20) NOT NULL,
total_capacitynumber(10),
warden
varchar2(20)
);
HNO
|
HNAME
|
HADDR
|
TOTAL_CAPACITY
|
WARDEN
|
1
|
Tejash Patel
|
navsari
|
500
|
vidhi
|
2
|
Shashi Patel
|
surat
|
100
|
vidhi
|
3
|
Dhaval Shah
|
surat
|
500
|
kamini
|
4
|
Raju
|
bombay
|
500
|
pooja
|
5
|
viren
|
bombay
|
100
|
pooja
|
ROOM (HNO, RNO, RTYPE, LOCATION,
NO_OF_STUDENTS, STATUS)
create table
room
(
hnonumber(10)
references hostel(hno),
rnonumber(10)
not null,
rtype
varchar2(10) not null,
location varchar2(10) not null,
no_of_studentsnumber(5),
status varchar2(20),
primary key(hno,rno)
);
HNO
|
RNO
|
RTYPE
|
LOCATION
|
NO_OF_STUDENTS
|
STATUS
|
1
|
1
|
s
|
haj
|
500
|
vacant
|
2
|
1
|
f
|
haj
|
500
|
vacant
|
2
|
3
|
s
|
haj
|
500
|
vacant
|
2
|
2
|
t
|
haj
|
500
|
vacant
|
2
|
4
|
f
|
haj
|
500
|
vacant
|
CHARGES (HNO, RTYPE, CHARGES)
create table
charges
(
hnonumber(10)
references hostel(hno),
rtype
varchar2(10) not null,
charges number(10),
primary key(hno,rtype)
);
HNO
|
RTYPE
|
CHARGES
|
1
|
d
|
5000
|
2
|
s
|
5000
|
3
|
s
|
5000
|
STUDENT (SID, SNAME, MOBILE-NO, GENDER,
FACULTY, DEPT, CLASS, HNO, RNO)
create table
student
(
sidnumber(10)
primary key,
sname
varchar2(20),
saddr
varchar2(20),
faculty varchar2(20),
dept varchar2(10),
class varchar2(10),
hnonumber(10)
references hostel(hno),
rnonumber(10)
);
SID
|
SNAME
|
SADDR
|
FACULTY
|
DEPT
|
CLASS
|
HNO
|
RNO
|
1
|
meet
|
city light
|
Tejash sir
|
1
|
mca2
|
1
|
2
|
2
|
karan
|
Undhana road
|
Shashi sir
|
2
|
mca2
|
2
|
2
|
3
|
jay
|
city light
|
neha mam
|
3
|
mca2
|
3
|
2
|
4
|
sami
|
Undhana road
|
khusbhoo mam
|
2
|
mca2
|
4
|
2
|
5
|
kunal
|
city light
|
Tejash sir
|
3
|
mca2
|
5
|
2
|
FEES (SID, FDATE, FAMOUNT)
create table fees
(
sidnumber(10),
fdate date,
famount number(10),
primary key(sid,fdate)
);
(
sidnumber(10),
fdate date,
famount number(10),
primary key(sid,fdate)
);
SID
|
FDATE
|
FAMOUNT
|
1
|
02-OCT-18
|
500
|
2
|
08-OCT-18
|
500
|
3
|
12-OCT-18
|
500
|
4
|
22-OCT-18
|
500
|
5
|
27-OCT-18
|
500
|
Do as directed:
1.
Display the total number of rooms that are
presently vacant.
select count(rno) from room where status =
'vacant';
COUNT(RNO)
|
5
|
2.
Display number of students of each faculty
and department wise staying in each hostel.
select count(sid),faculty from student
group by faculty;
COUNT(SID)
|
FACULTY
|
1
|
Shashi sir
|
2
|
Tejash sir
|
1
|
neha mam
|
1
|
khusbhoo mam
|
3.
Display hostels, which have at least one
single-seated room.
select a.* from hostel a, room b
where b.hno = a.hno and b.rtype = 's';
HNO
|
HNAME
|
HADDR
|
TOTAL_CAPACITY
|
WARDEN
|
1
|
Tejash Patel
|
navsari
|
500
|
vidhi
|
2
|
Shashi Patel
|
surat
|
100
|
vidhi
|
4.
Display the warden name and hostel address
of students of Computer Science department.
select warden, haddr from hostel a,
student b
where b.hno = a.hno and b.dept = 3;
WARDEN
|
HADDR
|
kamini
|
surat
|
pooja
|
bombay
|
5.
Display those hostel details where single
seated or double-seated rooms are vacant.
select * from hostel
where hno in (
select b.hno from hostel a, room b
where a.hno = b.hno and b.rtype in(
's','f') and status = 'vacant' group by b.hno
);
HNO
|
HNAME
|
HADDR
|
TOTAL_CAPACITY
|
WARDEN
|
1
|
Tejash Patel
|
navsari
|
500
|
vidhi
|
2
|
Shashi Patel
|
surat
|
100
|
vidhi
|
6.
Display details of hostels occupied by
medical students.
select a.* from hostel a, room b
where b.hno = a.hno and b.status =
'occupied by medical';
HNO
|
HNAME
|
HADDR
|
TOTAL_CAPACITY
|
WARDEN
|
1
|
Tejash Patel
|
navsari
|
500
|
vidhi
|
7.
Display hostels, which are totally
occupied to its fullest capacity.
select a.* from hostel a, room b
where b.hno = a.hno and b.status =
'occupied';
HNO
|
HNAME
|
HADDR
|
TOTAL_CAPACITY
|
WARDEN
|
1
|
Tejash Patel
|
navsari
|
500
|
vidhi
|
8. List details about students who are staying in the
double-seated rooms of Chanakya Hostel.
select * from student where hnoin(
select a.hno from hostel a, room b
where b.hno = a.hno and a.hname = 'Shashi
Patel' and rtype = 'f'
);
SID
|
SNAME
|
SADDR
|
FACULTY
|
DEPT
|
CLASS
|
HNO
|
RNO
|
2
|
karan
|
Undhana road
|
Shashi sir
|
2
|
mca2
|
2
|
2
|
9.
Display the total number of students
staying in each room type of each hostel.
select sum(no_of_students), rtype from
room
group by rtype;
SUM(NO_OF_STUDENTS)
|
RTYPE
|
1000
|
s
|
500
|
t
|
2000
|
f
|
10. Display details about students who have paid fees in
the month of Nov. 2017.
select * from student where sidin(
select sid from fees where to_char(fdate,
'mon') = 'nov'
);
SID
|
SNAME
|
SADDR
|
FACULTY
|
DEPT
|
CLASS
|
HNO
|
RNO
|
5
|
kunal
|
city light
|
Tejash sir
|
3
|
mca2
|
5
|
2
|
11. For those hostels where total capacity is more than
300, display details of students studying in Science faculty.
select a.*, b.* from student a, hostel b
where a.hno = b.hno and a.faculty =
'Tejash sir' and b.TOTAL_CAPACITY> 300
SID
|
SNAME
|
SADDR
|
FACULTY
|
DEPT
|
CLASS
|
HNO
|
RNO
|
HNO
|
HNAME
|
HADDR
|
TOTAL_CAPACITY
|
WARDEN
|
1
|
meet
|
city light
|
Tejashsir
|
1
|
mca2
|
1
|
2
|
1
|
Tejash Patel
|
navsari
|
500
|
vidhi
|
12. Display hostel details where there are at least 10
vacant rooms.
select a.*, b.rtype from hostel a, room b
where a.hno = b.hno and b.status =
'vacant' and b.no_of_students>10;
HNO
|
HNAME
|
HADDR
|
TOTAL_CAPACITY
|
WARDEN
|
RTYPE
|
1
|
Tejash Patel
|
navsari
|
500
|
vidhi
|
s
|
2
|
Shashi Patel
|
surat
|
100
|
vidhi
|
f
|
2
|
Shashi Patel
|
surat
|
100
|
vidhi
|
s
|
2
|
Shashi Patel
|
surat
|
100
|
vidhi
|
t
|
2
|
Shashi Patel
|
surat
|
100
|
vidhi
|
f
|
13. Display details of students who have still not paid
fees.
select * from student
where sid not in (
select sid from fees where to_char(fdate,
'mon') = 'nov'
);
SID
|
SNAME
|
SADDR
|
FACULTY
|
DEPT
|
CLASS
|
HNO
|
RNO
|
1
|
meet
|
city light
|
Tejash sir
|
1
|
mca2
|
1
|
2
|
2
|
karan
|
Undhana road
|
Shashi sir
|
2
|
mca2
|
2
|
2
|
3
|
jay
|
city light
|
neha mam
|
3
|
mca2
|
3
|
2
|
4
|
sami
|
Undhana road
|
khusbhoo mam
|
2
|
mca2
|
4
|
2
|
14. Display those hostels where single-seated room is the
costliest.
select a.* from hostel a, charges b
where a.hno = b.hno and rtype = 's' and charges = (
select max(charges) from charges
);
HNO
|
HNAME
|
HADDR
|
TOTAL_CAPACITY
|
WARDEN
|
2
|
Shashi Patel
|
surat
|
100
|
vidhi
|
3
|
Dhaval Shah
|
surat
|
500
|
kamini
|
15. Write a trigger which do not allow to insert or update
student record if mobile_no length is less than 10 digits.
16. Write a PL/SQL block which will count total number of
student’s gender wise.
Male Students: 999 students
Female
Students: 999 students
No comments:
Post a Comment