You are on page 1of 34

Colleges (cname, city, address, phone, afdate)

Staffs (sid, sname, saddress, contacts)


StaffJoins (sid, sname, dept, DOJ, post, salary)
Teachings (sid, class, papered, fsession, tsession)
Subjects (papered, subject, paperno, papername)
(a)Create the table with given specifications and constraints.
(b)Insert about 10 rows as are appropriate to solve th following
queries.

SQL> create table Colleges( cname varchar2(20),city


varchar2(15),address varchar2(30),phone number(12),afdate date);

Table created.

SQL> Insert into Colleges


values('&cname','&city','&address',&phone,'&afdate');
Enter value for cname: CHRIST
Enter value for city: Jagdalpur
Enter value for address: Geedam Road,Jagdalpur
Enter value for phone: 226727
Enter value for afdate: 3-jan-1980
old 1: insert into Colleges
values('&cname','&city','&address',&phone,'&afdate')
new 1: insert into Colleges values('CHRIST','Jagdalpur','Geedam
Road,Jagdalpur',226727,'3-

1 row created.

SQL> SELECT * FROM COLLEGES;

CNAME CITY ADDRESS


PHONE AFDATE
-------------------- --------------- ------------------------------
--------- ---------
CHRIST Jagdalpur Geedam Road,jagdalpur
226727 03-JAN-80
P.G.COLLEGE Jagdalpur Dharampura, Jagdalpur
227633 02-FEB-49
ST.THOMAS Raipur Kalibadi chowk, Raipur
234534 12-JUL-66
SHANKARA Bhilai Gandhi road, Bhilai
234344 23-SEP-33
ENGINEERING Jagdalpur Dharampura, Jagdalpur
232333 23-DEC-88
SURYA Jagdalpur Geedam raod,Jagdalpur
232323 15-AUG-47
HANSRAJ Delhi Nehru Marg,Delhi
343443 30-OCT-33
J.C.COLLEGE Banglore Chandani chowk,Banglore
343439 19-MAR-89
POLYTECHNIQUE Jagdalpur Dharampura no.3,jagdalpur
232312 22-JAN-99
NARAYANA Haidarabad 1682,Naj sarak,Haidarabad
544254 28-FEB-78

10 rows selected.

SQL> create table Staffs(sid number(10),sname varchar2(15),saddress


varchar2(30),contacts number(12));

SQL> Insert into Staffs values(&sid,'&sname','&saddress',&contacts);


Enter value for sid: 100
Enter value for sname: Sushil Sahu
Enter value for saddress: Geedam Road,Jagdalpur
Enter value for contacts: 229334
old 1: Insert into Staffs
values(&sid,'&sname','&saddress',&contacts)
new 1: Insert into Staffs values(100,'Sushil Sahu','Geedam
Road,Jagdalpur',229334)

1 row created.

SQL> select * from staffs;

SID SNAME SADDRESS CONTACTS


--------- --------------- ------------------------------ ---------
100 Sushil Sahu Geedam Road,Jagdalpur 229334
101 Seiji Justice Vrindavan colony,Jagdalpur 123421
102 Asim Sarkar Sun City,Jagdalpur 324540
103 Giriraj Sahu Police Line,Jagdalpur 342521
104 Pushpendra Lal Bag,Jagdalpur 345456
105 Deepak Yadav Rajendra Nagar,Jagadalpur 454559
106 Nasir Ansari Hat Kachora,Jagdalpur 856909
107 Roshan Das Brahman Para,Jagdalpur 354609
108 Vijay Singh anand lodge,Jagdalpur 642649
109 Manisha Lal Bag,Jagdalpur 345243

10 rows selected.

SQL> Create table StaffJoins(sid number(5),cname varchar2(15),dept


varchar2(20),DOJ date,post varcharr2(20),salary number(6));

Table created.

SQL> insert into staffjoins


values(&sid,'&cname','&dept','&Doj','&post',&salary);
Enter value for sid: 101
Enter value for cname: P.G.COLLEGE
Enter value for dept: computer
Enter value for doj: 13-july-2001
Enter value for post: teacher
Enter value for salary: 20000
old 1: insert into staffjoins
values(&sid,'&cname','&dept','&Doj','&post',&salary)
new 1: insert into staffjoins values(101,'PG
college','computer','13-july-2001','teacher',20000)

1 row created.
SQL> select * from staffjoins;

SID CNAME DEPT DOJ POST


SALARY
--------- --------------- -------------------- ---------
-------------------- ---------
100 CHRIST computer 12-JUN-00 HOD
18000
101 P.G.COLLEGE computer 13-JUL-01 teacher
20000
100 CHRIST commerce 23-AUG-90 PRINCIPAL
12000
103 POLYTECHNIQUE managment 23-SEP-80 lecturer
5000
103 ST.THOMAS commerce 31-JUL-98 lecturer
25000
105 SHANKARA management 23-DEC-99 Hod
20000
106 ENGINEERING management 21-MAY-03 teacher
2111
107 NARAYANA commerce 11-MAR-01 lecturer
20001
108 HANSRAJ science 12-JAN-04 Hod
2343
109 SURYA science 22-FEB-09 PRINCIPAL
30021

10 rows selected.

SQL> create table Teachings(sid number(5),class varchar2(10),paperid


varchar2(8),fsession varchar2(3),tsession varchar2(30));

Table created.
SQL> Insert into Teachings
values(&sid,'&class','&paperid','&fsession','&tsession');
Enter value for sid: 100
Enter value for class: BCA
Enter value for paperid: 201
Enter value for fsession: yes
Enter value for tsession: no
old 1: Insert into Teachings
values(&sid,'&class','&paperid','&fsession','&tsession')
new 1: Insert into Teachings values(100,'BCA',' 201','yes','no')

1 row created.
SQL> select * from teachings;

SID CLASS PAPERID FSESSION TSESSION


--------- ---------- -------- ---------- ----------
100 BCA-1 201 yes no
101 BCA-1 202 no yes
103 B.Com 301 no yes
106 BBA 302 yes yes
105 B.COM-1 302 yes no
105 BBA-1 401 no yes
106 BCA-2 203 yes yes
107 B.TEC 501 yes no
103 B.TEC 502 yes no
109 B.COM-2 303 yes yes

10 rows selected.

SQL> create table Subjects(paperid varchar2(8),subject(10),paperno


number(2),papername varchar2(10));

Table created.

SQL> Insert into Subjects


values(&paperid,'&subjects',&paperno,'&papername');
Enter value for paperid: 502
Enter value for subjects: English
Enter value for paperno: 8
Enter value for papername: BCA-2
old 1: insert into Subjects
values(&paperid,'&subjects',&paperno,'&papername')
new 1: insert into Subjects values(502,'English',8,'BCA-2')

1 row created.
SQL> SELECT * FROM SUBJECTS;

PAPERID SUBJECTS PAPERNO PAPERNAME


-------- ---------- --------- --------
201 VB 1 BCA-1
202 DISCRETE 2 BCA-1
301 POM 3 B.COM-1
302 ENGLISH 4 B.COM-1
401 GRAPH 2 BBA-1
501 CHEMISTRY 5 B.TEC
502 ENGLISH 6 B.TEC
402 CALCULUS 7 BCA-2
203 ENGLISH 8 BCA-2
303 LINUX 5 B.COM-2

10 rows selected.
(c)List the names of the teachers teaching computer subjects.

SQL> select sname,dept from staffs,staffjoins where


staffjoins.DEPT='computer' AND
2 staffs.sid=staffjoins.sid;

SNAME DEPT
--------------- --------------------
Sushil Sahu computer
Seiji Justice computer

(d)List the names and cities of all staffs working in your college.

SQL> SELECT SNAME, SADDRESS,CNAME FROM STAFFS,STAFFJOINS WHERE


STAFFJOINS.CNAME='CHRIST'
2 AND STAFFS.SID=STAFFJOINS.SID;

SNAME SADDRESS CNAME


--------------- ------------------------------ ---------------
Sushil Sahu Geedam Road,Jagdalpur CHRIST
Asim Sarkar Sun City,Jagdalpur CHRIST

(e)List the names of all staffs working in your college who earn more
than 15,000.

SQL> SELECT SNAME, SADDRESS,SALARY FROM STAFFS,STAFFJOINS WHERE


STAFFJOINS.CNAME='CHRIST'
2 AND STAFFS.SID=STAFFJOINS.SID AND STAFFJOINS.SALARY>15000;

SNAME SADDRESS SALARY


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

Sushil Sahu Geedam Road,Jagdalpur 18000


(f)Find the staffs whose names starts with'M' or 'R' and ends with'A'
and/or 7 characters
long.
SQL> select * from staffs where (sname like 'M%' or sname like'R%')
AND sname like '%A'
2 or length(sname) in(7);

SID SNAME SADDRESS CONTACTS


--------- --------------- ------------------------------ ---------
109 Manisha Lal Bag,Jagdalpur 345243

(g)Find the staffs whose date of joining is 2005.

SQL> select * from staffjoins where substr((Doj),8,2)='05';

SID CNAME DEPT DOJ POST


SALARY
--------- --------------- -------------------- ---------
-------------------- ---------
105 SHANKARA management 12-JAN-05 Hod
20000
108 HANSRAJ science 31-DEC-05 Hod
2343

(h)Modify the database so that staff N1 now works in C2 college.

SQL> UPDATE STAFFJOINS SET CNAME='SURYA' WHERE SID IN(106,103);

3 rows updated.

SQL> SELECT * FROM STAFFJOINS;

SID CNAME DEPT DOJ POST


SALARY
--------- --------------- -------------------- ---------
-------------------- ---------
100 CHRIST computer 12-JUN-00 HOD
18000
101 P.G.COLLEGE computer 13-JUL-01 teacher
20000
100 CHRIST commerce 23-AUG-90 PRINCIPAL
12000
103 SURYA managment 23-SEP-80 HOD
5000
103 SURYA commerce 31-JUL-98 lecturer
25000
105 SHANKARA management 12-JAN-05 Hod
20000
106 SURYA management 21-MAY-03 teacher
2111
107 NARAYANA commerce 11-MAR-01 lecturer
20001
108 HANSRAJ science 31-DEC-05 Hod
2343
109 SURYA science 22-FEB-09 PRINCIPAL
30021

10 rows selected.

(i)List the names of subjects,which T1 teaches in this session or all


session.

SQL> select subjects from teachings,subjects where (fsession='yes' or


tsession='yes')and
2 teachings.paperid=subjects.paperid and sid=103;

SUBJECTS
----------
POM
ENGLISH
(j)Find the classes that T1 do not teach at present session.
SQL> select class from teachings where tsession='no' and sid=103;

CLASS
----------
B.TEC

(j)(a)Find the colleges who have most number of staffs.

SQL>select cname,count(*)"No of staff" from staffjoins group by cname


having count(*)=
2 (select max(count(*)) from staffjoins group by cname);

CNAME No of staff
--------------- -----------
SURYA 4

(j)(b)Find the staffs that earn a higher salary who earn greater than
average salary of
their colleges.

SQL> select sname from staffs where sid in(select staffjoins.sid from
staffjoins,(select
2 sid from staffjoins)t1 where salary>(select avg(salary) from
staffjoins where
3 t1.sid=staffjoins.sid)and t1.sid=staffjoins.sid and
staffs.sid=t1.sid);

SNAME
---------------
Sushil Sahu
Giriraj Sahu
Manisha

(j)(c)Find the colleges whose average salary is more than average


salary of c2.

SQL> select cname,AVG(salary) from staffjoins GROUP BY cname Having


AVG(salary)>(select
2 avg(salary) from staffjoins where cname='SURYA');

CNAME AVG(SALARY)
--------------- -----------
NARAYANA 20001
P.G.COLLEGE 20000
SHANKARA 20000

(j)(d)Find the college that has the smallest payroll.

SQL> select cname,min(salary)"salary" from staffjoins group by cname


having min(salary)=
2 (select min(min(salary)) from staffjoins group by cname);

CNAME salary
--------------- ---------
SURYA 2111

(j)(e)Find the colleges where the total salary is greater than average
salary of all
colleges.
SQL> select cname,sum(salary) from staffjoins group by cname having
sum(salary)>(select
2 avg(salary) from staffjoins);

CNAME SUM(SALARY)
--------------- -----------
CHRIST 30000
NARAYANA 20001
P.G.COLLEGE 20000
SHANKARA 20000
SURYA 62132

(f)List maximum,average,minimum salary of each college.

SQL> select cname,min(salary)"Min salary",Max(salary)"Max


salary",avg(salary)"Avg
2 salary" from staffjoins group by cname;

CNAME Min salary Max salary Avg salary


--------------- ---------- ---------- ----------
CHRIST 12000 18000 15000
HANSRAJ 2343 2343 2343
NARAYANA 20001 20001 20001
P.G.COLLEGE 20000 20000 20000
SHANKARA 20000 20000 20000
SURYA 2111 30021 15533

6 rows selected.

(f)(a)List the names of the teachers,departments teachings in more


than one department.

SQL> select t1.sname,t2.dept from staffs t1,staffjoins t2,(select


sid,count(*)"sum"
2 from staffjoins group by sid)t3 where t1.sid=t3.sid and
t1.sid=t2.sid and "sum">1;

SNAME DEPT
--------------- --------------------
Sushil Sahu computer
Sushil Sahu commerce
Giriraj Sahu management
Giriraj Sahu commerce

(f)(b)Acquire details of staffs by name in a college or each college.

SQL> select distinct


staffs.sid,sname,staffjoins.cname,saddress,contacts,dept,doj,post,
2 doj,post,salary,class,teachings .paperid,fsession,tsession,
subjects,papername from
3 staffjoins,staffs,subjects,colleges,teachings where
staffs.sid=staffjoins.sid and
4 staffs.sid=teachings.sid and teachings.paperid=subjects.paperid;
SID SNAME CNAME SADDRESS
CONTACTS
--------- --------------- ---------------
------------------------------ ---------
DEPT DOJ POST SALARY CLASS
PAPERID FSESSION
-------------------- --------- -------------------- ---------
---------- -------- ----------
TSESSION SUBJECTS PAPERNAME
------------------------------ ---------- ----------
100 Sushil Sahu CHRIST Geedam Road,Jagdalpur
229334
commerce 23-AUG-90 PRINCIPAL 13860 BCA-1
201 yes
no VB BCA-1

100 Sushil Sahu CHRIST Geedam Road,Jagdalpur


229334
computer 12-JUN-00 HOD 18000 BCA-1
201 yes
no VB BCA-1

101 Seiji Justice P.G.COLLEGE Vrindavan colony,Jagdalpur


123421
computer 13-JUL-01 teacher 20000 BCA-1
202 no
yes DISCRETE BCA=1

105 Deepak Yadav SHANKARA Rajendra Nagar,Jagadalpur


454559
management 12-JAN-05 Hod 20000 BBA-1
401 no
yes GRAPH BBA-1

106 Nasir Ansari SURYA Hat Kachora,Jagdalpur


856909

SID SNAME CNAME SADDRESS


CONTACTS
--------- --------------- ---------------
------------------------------ ---------
DEPT DOJ POST SALARY CLASS
PAPERID FSESSION
-------------------- --------- -------------------- ---------
---------- -------- ----------
TSESSION SUBJECTS PAPERNAME
------------------------------ ---------- ----------
management 21-MAY-03 teacher 2111 BBA
302 yes
yes ENGLISH B.COM-1

106 Nasir Ansari SURYA Hat Kachora,Jagdalpur


354609
management 21-MAY-03 teacher 2111 BCA-2
203 yes
yes ENGLISH BCA-2

107 Roshan Das NARAYANA Brahman Para,Jagdalpur


642649
commerce 11-MAR-01 lecturer 20001 B.TEC
501 yes
no CHEMISTRY B.TEC

109 Manisha SURYA Lal Bag,Jagdalpur


345243
science 22-FEB-09 PRINCIPAL 30021 B.COM-2
303 yes
yes LINUX B.COM-2

8 rows selected.

(f)(c)Find the names of staffs that earn more than each staff of C2
college.

SQL> SELECT DISTINCT SNAME FROM STAFFS,STAFFJOINS WHERE STAFFS.SID


IN(SELECT SID FROM
2 STAFFJOINS WHERE SALARY>(SELECT MAX(SALARY) FROM STAFFJOINS WHERE
CNAME='CHRIST'));

SNAME
---------------
Deepak Yadav
Giriraj Sahu
Manisha
Roshan Das
Seiji Justice

(f)(d)Give all principals a 10% rise in salary unless their salary


becomes greater than 20,000 in such case give 5% rise.

SQL> update staffjoins set salary=salary+0.1*salary where post like


'PRINCIPAL' and
2 salary<20000;

1 row updated.

SQL> select * from staffjoins;

SID CNAME DEPT DOJ POST


SALARY
--------- --------------- -------------------- ---------
-------------------- ---------
100 CHRIST computer 12-JUN-00 HOD
18000
101 P.G.COLLEGE computer 13-JUL-01 teacher
20000
100 CHRIST commerce 23-AUG-90 PRINCIPAL
13200
103 SURYA management 23-SEP-80 lecturer
5000
103 SURYA commerce 31-JUL-98 lecturer
25000
105 SHANKARA management 12-JAN-05 Hod
20000
106 SURYA management 21-MAY-03 teacher
2111
107 NARAYANA commerce 11-MAR-01 lecturer
20001
108 HANSRAJ science 31-DEC-05 Hod
2343
109 SURYA science 22-FEB-09 PRINCIPAL
30021
10 rows selected.

SQL> update staffjoins set salary=salary+0.05*salary where post like


'PRINCIPAL' and
2 salary<20000;

1 row updated.

SQL> select * from staffjoins;

SID CNAME DEPT DOJ POST


SALARY
--------- --------------- -------------------- ---------
-------------------- ---------
100 CHRIST computer 12-JUN-00 HOD
18000
101 P.G.COLLEGE computer 13-JUL-01 teacher
20000
100 CHRIST commerce 23-AUG-90 PRINCIPAL
13860
103 SURYA management 23-SEP-80 lecturer
5000
103 SURYA commerce 31-JUL-98 lecturer
25000
105 SHANKARA management 12-JAN-05 Hod
20000
106 SURYA management 21-MAY-03 teacher
2111
107 NARAYANA commerce 11-MAR-01 lecturer
20001
108 HANSRAJ science 31-DEC-05 Hod
2343
109 SURYA science 22-FEB-09 PRINCIPAL
30021

10 rows selected.

(f)(e)Find all staff that do not work in same cities as the colleges
they work.
SQL> select staffjoins.sid,colleges.cname,city,sname,saddress from
staffs,colleges,
2 staffjoins where staffjoins.sid=staffs.sid and
staffjoins.cname=colleges.cname
3 and colleges.city!='Jagdalpur' and staffs.saddress
like'%Jagdalpur';

SID CNAME CITY SNAME


SADDRESS
--------- -------------------- --------------- ---------------
-----------------------------
105 SHANKARA Bhilai Deepak Yadav
Rajendra Nagar,Jagadalpur
107 NARAYANA Haidarabad Roshan Das Brahman
Para,Jagdalpur
108 HANSRAJ Delhi Vijay Singh anand
lodge,Jagdalpur

(f)(f)List names of employees in ascending order according to salary


who are working in your college or all colleges.

SQL> select sname,salary from staffs,staffjoins where


staffs.sid=staffjoins.sid order by
2 salary;

SNAME SALARY
--------------- ---------
Nasir Ansari 2111
Vijay Singh 2343
Giriraj Sahu 5000
Sushil Sahu 13860
Sushil Sahu 18000
Seiji Justice 20000
Deepak Yadav 20000
Roshan Das 20001
Giriraj Sahu 25000
Manisha 30021

10 rows selected.

(f)(f)(a)Create a view having fields sname, cname, dept, DOJ , and


post.

SQL> Create view faculty AS select sname,cname,dept,DOJ,post from


staffs,staffjoins
2 where staffs.sid=staffjoins.sid;

View created.

SQL> select * from faculty;

SNAME CNAME DEPT DOJ POST


--------------- --------------- -------------------- ---------
--------------------
Sushil Sahu CHRIST computer 12-JUN-00 HOD
Sushil Sahu CHRIST commerce 23-AUG-90
PRINCIPAL
Seiji Justice P.G.COLLEGE computer 13-JUL-01 teacher
Giriraj Sahu SURYA managment 23-SEP-80
lecturer
Giriraj Sahu SURYA commerce 31-JUL-98
lecturer
Deepak Yadav SHANKARA management 12-JAN-05 Hod
Nasir Ansari SURYA management 21-MAY-03 teacher
Roshan Das NARAYANA commerce 11-MAR-01
lecturer
Vijay Singh HANSRAJ science 31-DEC-05 Hod
Manisha SURYA science 22-FEB-09
PRINCIPAL

10 rows selected.

(f)(f)(b)Create a view consisting of cname, average salary and total


salary of all staffs in that college.

SQL> create view Data (cname,average_salary,total_salary) as select


cname,avg(salary),
2 sum(salary)from staffjoins group by cname;

View created.

SQL> select * from data;


CNAME AVERAGE_SALARY TOTAL_SALARY
--------------- -------------- ------------
CHRIST 15930 31860
HANSRAJ 2343 2343
NARAYANA 20001 20001
P.G.COLLEGE 20000 20000
SHANKARA 20000 20000
SURYA 15533 62132

6 rows selected.

(f)(f)(c)Select the colleges having highest and lowest average salary


using above views.

SQL> select cname,average_salary from Data where


average_salary=(select
2 Max(average_salary) from data) or average_salary=(select
Min(average_salary) from
Data);

CNAME AVERAGE_SALARY
--------------- --------------
HANSRAJ 2343
NARAYANA 20001

(f)(f)(d)List the staff names of a department using above views.

SQL> select sname,dept from Faculty where dept='computer';

SNAME DEPT
--------------- --------------------
Sushil Sahu computer
Seiji Justice computer

Enrollment (enrollno, name, gender, DOB, address, phone)


Admission (admno, enrollno, course, yearsem, adate, cname)
Colleges (cname, city, address, phone, afdate)
Feestructure (course, yearsem, fee)
Payment (billno, admno, amount, pdate, purpose)
(a)Create the above tables with given specifications and constraints.
(b)Insert about 10 rows as are appropriate to solve the following
queries.

SQL> create table Enrollment(enrollno number(8),name


varchar2(20),gender varchar2(7),dob
2 date,address
2 varchar2(30),phone number(10));

Table created.

SQL> insert into enrollment


values(&enrollno,'&name','&gender','&dob','&address',&phone);
Enter value for enrollno: 1111
Enter value for name: Amir Khan
Enter value for gender: Male
Enter value for dob: 17-january-1993
Enter value for address: Dharampura,Jagdalpur
Enter value for phone: 226543
old 1: insert into enrollment
values(&enrollno,'&name','&gender','&dob','&address',&phone)
new 1: insert into enrollment values(1111,'Amir Khan','Male','17-
january-1993','Dharampura,Jagdalpur',226543

1 row created.

SQL> select * from enrollment;

ENROLLNO NAME GENDER DOB ADDRESS


PHONE
--------- -------------------- ------- ---------
------------------------------ ----------
1111 Amir Khan Male 17-JAN-93 Dharampura,Jagdalpur
226543
1112 Sachin Male 23-JUN-90 Geedam Road,Jadalpur
226727
1113 Sania Female 19-DEC-86 Kalibadi,Jagdalpur
232331
1114 Ronaldo Male 22-AUG-82 Chandani
Chowk,Jagdalpur 323428
1115 Katrina Female 29-JUL-88 Hat Kachora,Jagdalpur
238190
1116 Bill Gates Male 09-SEP-95 Nayapara,Jagdalpur
231756
1117 Pratibha Patil Female 11-OCT-91 Brahman
Para,Jagdalpur 233333
1118 Hussain Male 17-FEB-88 Lal Bag,Jagdalpur
223184
1119 Sonu Nigam Male 11-MAR-92 Adawal,Jagdalpur
293010
1120 Himesh Male 17-FEB-88 Palace Road,Jagdalpur
230001

10 rows selected.

SQL> create table Admission(admno number(6),enrollno number(9),course


varchar2(10),
2 yearsem varchar2(8),Adate date,cname varchar2(15));

Table created.

SQL> insert into admission


values(&admno,&enrollno,'&course','&yearsem','&Adate','&cname');
Enter value for admno: 1011
Enter value for enrollno: 1111
Enter value for course: BSc
Enter value for yearsem: III
Enter value for adate: 12-JULY-2008
Enter value for cname: CHRIST
old 1: insert into admission
values(&admno,&enrollno,'&course','&yearsem','&Adate','&cname')
new 1: insert into admission values(1011,1111,'BSc','III','12-JULY-
2008','CHRIST')

1 row created.

SQL> SELECT * FROM ADMISSION;

ADMNO ENROLLNO COURSE YEARSEM ADATE CNAME


--------- --------- ---------- -------- --------- --------
1011 1111 BSc III 12-JUL-08 CHRIST
1012 1112 BCA I 01-JUL-08 P.G.COLLEGE
1013 1113 BBA II 09-JAN-07 SHANKARA
1014 1114 MCA II 23-JUL-07 SURYA
1015 1115 MCM I 02-JUN-08 POLYTECHNIQUE
1016 1116 BEd IV 31-JUL-07 HANSRAJ
1017 1117 DEd I 11-JAN-07 NARAYANA
1018 1118 MBA V 22-JAN-08 CHRIST
1019 1119 BCom II 12-JUL-08 J.C.COLLEGE
1020 1120 BBA I 10-JUL-08 CHRIST

10 rows selected.

SQL> create table Colleges( cname varchar2(20),city


varchar2(15),address varchar2(30), phone number(12),afdate date);

Table created.

SQL> Insert into Colleges


values('&cname','&city','&address',&phone,'&afdate');
Enter value for cname: CHRIST
Enter value for city: Jagdalpur
Enter value for address: Geedam Road,Jagdalpur
Enter value for phone: 226727
Enter value for afdate: 3-jan-1980
old 1: insert into Colleges
values('&cname','&city','&address',&phone,'&afdate')
new 1: insert into Colleges values('CHRIST','Jagdalpur','Geedam
Road,Jagdalpur',226727,'3-

1 row created.

SQL> SELECT * FROM COLLEGES;

CNAME CITY ADDRESS


PHONE AFDATE
-------------------- --------------- ------------------------------
--------- ---------
CHRIST Jagdalpur Geedam Road,jagdalpur
226727 03-JAN-80
P.G.COLLEGE Jagdalpur Dharampura, Jagdalpur
227633 02-FEB-49
ST.THOMAS Raipur Kalibadi chowk, Raipur
234534 12-JUL-66
SHANKARA Bhilai Gandhi road, Bhilai
234344 23-SEP-33
ENGINEERING Jagdalpur Dharampura, Jagdalpur
232333 23-DEC-88
SURYA Jagdalpur Geedam raod,Jagdalpur
232323 15-AUG-47
HANSRAJ Delhi Nehru Marg,Delhi
343443 30-OCT-33
J.C.COLLEGE Banglore Chandani chowk,Banglore
343439 19-MAR-89
POLYTECHNIQUE Jagdalpur Dharampura no.3,jagdalpur
232312 22-JAN-99
NARAYANA Haidarabad 1682,Naj sarak,Haidarabad
544254 28-FEB-78

10 rows selected.

SQL> create table FeeStructure(course varchar2(10),yearsem


varchar2(7),fee number(5));

Table created.

SQL> INSERT INTO feestructure VALUES('&COURSE','&YEARSEM',&FEE);


Enter value for course: BCA
Enter value for yearsem: I
Enter value for fee: 17000
old 1: INSERT INTO feestructure VALUES('&COURSE','&YEARSEM',&FEE)
new 1: INSERT INTO feestructure VALUES('BCA','I',17000)

1 row created.

SQL> SELECT * FROM FEESTRUCTURE;


COURSE YEARSEM FEE
---------- ------- ---------
BCA I 17000
BSc III 15000
BBA II 12000
MCA II 20000
BEd IV 14000
DEd I 16888
BCom II 22000
MBA V 25000
MCM I 15000
BBA I 13700

10 rows selected.

SQL> create table Payment(billno number(6),admno number(5),amount


number(6),pdate date,purpose varchar2(10));

Table created.

SQL> INSERT INTO PAYMENT


VALUES(&BILLNO,&ADMNO,&AMOUNT,'&PDATE','&PURPOSE');
Enter value for billno: 111
Enter value for admno: 1011
Enter value for amount: 12000
Enter value for pdate: 12-AUGUST-08
Enter value for purpose: FEE
old 1: INSERT INTO PAYMENT
VALUES(&BILLNO,&ADMNO,&AMOUNT,'&PDATE','&PURPOSE')
new 1: INSERT INTO PAYMENT VALUES(111,1011,12000,'12-AUGUST-
08','FEE')

1 row created.

SQL> SELECT * FROM PAYMENT;

BILLNO ADMNO AMOUNT PDATE PURPOSE


--------- --------- --------- --------- -------
111 1011 12000 12-AUG-08 FEE
112 1012 15000 23-SEP-08 FEE
113 1013 12000 12-FEB-07 FEE
114 1014 20000 23-JUL-07 FEE
115 1015 10000 23-JUL-08 FEE
116 1016 14000 12-AUG-07 FEE
117 1017 15000 23-FEB-07 FEE
118 1018 25000 23-JUL-08 FEE
119 1019 22000 23-JUL-08 FEE
120 1020 13700 23-JUL-08 FEE

10 rows selected.

(C)Get full details of all students who took admission this year class
wise.

SQL> SELECT
ADMNO,ENROLLMENT.ENROLLNO,NAME,GENDER,DOB,CNAME,ADDRESS,PHONE,COURSE,
2 YEARSEM,ADATE FROM ENROLLMENT,ADMISSION WHERE ADMISSION.ADATE
LIKE'%08' AND
3 ENROLLMENT.ENROLLNO=ADMISSION.ENROLLNO ORDER BY COURSE;

ADMNO ENROLLNO NAME GENDER DOB CNAME


--------- --------- -------------------- ------- ---------
---------------
ADDRESS PHONE COURSE YEARSEM ADATE
------------------------------ --------- ---------- -------- ---------
1020 1120 Himesh Male 17-FEB-88 CHRIST
Palace Road,Jagdalpur 230001 BBA I 10-JUL-08

1012 1112 Sachin Male 23-JUN-90 P.G.COLLEGE


Geedam Road,Jagdalpur 226727 BCA I 01-JUL-08

1019 1119 Sonu Nigam Male 11-MAR-92 J.C.COLLEGE


Adawal,Jagdalpur 293010 BCom II 12-JUL-08

1011 1111 Amir Khan Male 17-JAN-93 CHRIST


Dharampura,Jagdalpur 226543 BSc III 12-JUL-08

1018 1118 Hussain Male 17-FEB-88 CHRIST


Lal Bag,Jagdalpur 223184 MBA V 22-JAN-08

1015 1115 Katrina Female 29-JUL-88


POLYTECHNIQUE
Hat Kachora,Jagdalpur 23819 MCM I 02-JUN-08

6 rows selected.

(D)Get details of students who took admission in Bhilai colleges.

SQL> SELECT
ADMNO,ENROLLMENT.ENROLLNO,NAME,GENDER,DOB,ADMISSION.CNAME,COLLEGES.CIT
Y,
2 ENROLLMENT.ADDRESS,ENROLLMENT.PHONE,COURSE,YEARSEM,ADATE FROM
3 ENROLLMENT,ADMISSION,COLLEGES
4 WHERE COLLEGES.CITY='Bhilai' AND ADMISSION.CNAME=COLLEGES.CNAME
AND
5 ENROLLMENT.ENROLLNO=ADMISSION.ENROLLNO;

ADMNO ENROLLNO NAME GENDER DOB CNAME


CITY
--------- --------- -------------------- ------- ---------
--------------- ---------------
ADDRESS PHONE COURSE YEARSEM ADATE
------------------------------ --------- ---------- -------- ---------
1013 1113 Sania Female 19-DEC-86 SHANKARA
Bhilai
Kalibadi,Jagdalpur 232331 BBA II 09-JAN-07

(e)Calculate the total amount of fees collected in this session

(i)By your college.

SQL>select cname,sum(fee) from admission,feestructure,(select


course,yearsem from
2 admission where cname='CHRIST' and adate like '%08')t1 where
3 admission.COURSE=t1.COURSE and feestructure.COURSE=t1.COURSE and
4 admission.YEARSEM=t1.YEARSEM and feestructure.YEARSEM=t1.YEARSEM
group by cname;

CNAME SUM(FEE)
--------------- ---------
CHRIST 53700
(ii) By each college.

SQL> select cname,sum(fee) from admission,feestructure,(select


course,yearsem from
2 admission where adate like'%08')t1 where
admission.COURSE=t1.COURSE and
3 feestructure.COURSE=t1.COURSE and admission.YEARSEM=t1.YEARSEM
and
4 feestructure.YEARSEM=t1.YEARSEM group by cname;

CNAME SUM(FEE)
--------------- ---------
CHRIST 53700
J.C.COLLEGE 22000
P.G.COLLEGE 17000
POLYTECHNIQUE 15000

(iii)by all colleges.

SQL> select sum(sum(fee))"Total fees" from admission,feestructure,


(select
2 course,yearsem fromadmission where adate like'%08')t1 where
3 admission.COURSE=t1.COURSE and feestructure.COURSE=t1.COURSE and
4 admission.YEARSEM=t1.YEARSEM and feestructure.YEARSEM=t1.YEARSEM
group by cname;

Total fees
----------
107700

(e)(a) List the students who have not payed full fee

(i)in your college.

SQL> SQL> select


name,cname,admission.course,admission.yearsem,fee,amount from
2 enrollment,admission,payment,feestructure where
3 enrollment.enrollno=admission.enrollno and
feestructure.course=admission.course
4 and feestructure.yearsem=admission.yearsem and payment.amount!
=feestructure.
5 fee and admission.admno=payment.admno and
admission.cname='CHRIST';

NAME CNAME COURSE YEARSEM FEE


AMOUNT
-------------------- --------------- ---------- -------- ---------
---------
Amir Khan CHRIST BSc III 15000
12000

(ii)in all college.

SQL> select name,cname,admission.course,admission.yearsem,fee,amount


from
2 enrollment,admission, payment,feestructure where
3 enrollment.enrollno=admission.enrollno and
feestructure.course=admission.course
4 and feestructure.yearsem=admission.yearsem and payment.amount!
=feestructure.
5 fee and admission.admno=payment.admno;

NAME CNAME COURSE YEARSEM FEE


AMOUNT
-------------------- --------------- ---------- -------- ---------
---------
Amir Khan CHRIST BSc III 15000
12000
Sachin P.G.COLLEGE BCA I 17000
15000
Katrina POLYTECHNIQUE MCM I 15000
10000
Pratibha Patil NARAYANA DEd I 16888
15000

(e)(b)List the number of admissions in your class in every year.


SQL> select * from admission where course='BCA' order by adate;

ADMNO ENROLLNO COURSE YEARSEM ADATE CNAME


--------- --------- ---------- -------- --------- -------------
1012 1112 BCA I 01-JUL-08 P.G.COLLEGE

(e)(c)List the students in the session who are not in the colleges in
the same city they live in.

SQL> SELECT NAME,ENROLLMENT.ADDRESS,COLLEGES.CNAME,CITY FROM


COLLEGES,ENROLLMENT,
2 ADMISSION WHERE ADMISSION.CNAME=COLLEGES.CNAME AND
3 ENROLLMENT.ENROLLNO=ADMISSION.ENROLLNO AND COLLEGES.CITY!
='Jagdalpur';

NAME ADDRESS CNAME


CITY
-------------------- ------------------------------
-------------------- ---------------
Bill Gates Nayapara,Jagdalpur HANSRAJ
Delhi
Sonu Nigam Adawal,Jagdalpur J.C.COLLEGE
Banglore
Pratibha Patil Brahman Para,Jagdalpur NARAYANA
Haidarabad
Sania Kalibadi,Jagdalpur SHANKARA
Bhilai

(e)(d)List the students in colleges in your city and also live in your
city.
SQL> SELECT NAME,ENROLLMENT.ADDRESS,COLLEGES.CNAME,CITY FROM
COLLEGES,ENROLLMENT,
2 ADMISSION WHERE ADMISSION.CNAME=COLLEGES.CNAME AND
3 ENROLLMENT.ENROLLNO=ADMISSION.ENROLLNO
4 AND COLLEGES.CITY='Jagdalpur' AND ENROLLMENT.ADDRESS LIKE
'%Jagdalpur';

NAME ADDRESS CNAME


CITY
-------------------- ------------------------------
-------------------- ---------------
Amir Khan Dharampura,Jagdalpur CHRIST
Jagdalpur
Hussain Lal Bag,Jagdalpur CHRIST
Jagdalpur
Himesh Palace Road,Jagdalpur CHRIST
Jagdalpur
Sachin Geedam Road,Jagdalpur P.G.COLLEGE
Jagdalpur
Katrina Hat Kachora,Jagdalpur POLYTECHNIQUE
Jagdalpur
Ronaldo Chandani Chowk,Jagdalpur SURYA
Jagdalpur

6 rows selected.

Q(1)WAP to find out the factorial of a given number.


SQL> set serveroutput on
SQL> Declare
2 n number(5);
3 fact number(10);
4 Begin
5 n:=&Enter_no;
6 fact:=1;
7 for i in 1..n
8 loop
9 fact:=fact*i;
10 end loop;
11 dbms_output.put_line('Factorial of given no='||fact);
12 end;
13 /
Enter value for enter_no: 5
old 5: n:=&Enter_no;
new 5: n:=5;
Factorial of given no=120

PL/SQL procedure successfully completed.

Q(2)WAP to find out the fibnocii series.


SQL> Declare
2 n number(5);
3 a number(1);
4 b number(1);
5 c number;
6 Begin
7 a:=0;
8 b:=1;
9 n:=&Enter_no;
10 dbms_output.put_line('Fibnocii Series=');
11 dbms_output.put(a||b);
12 for i in 2..n
13 loop
14 c:=a+b;
15 dbms_output.put(c);
16 a:=b;
17 b:=c;
18 end loop;
19 dbms_output.put_line('');
20 end;
21 /
Enter value for enter_no: 5
old 9: n:=&Enter_no;
new 9: n:=5;
Fibnocii Series=
011235

PL/SQL procedure successfully completed.

Q(3)WAP to find whether a no is Prime or not.

SQL> Declare
2 n number;
3 k number;
4 j number;
5 Begin
6 n:=&Enter_no;
7 for i in 2..n
8 loop
9 k:=mod(n,i);
10 if k=0 then
11 j:=i;
12 exit;
13 end if;
14 end loop;
15 if n=j then
16 dbms_output.put_line('Number is Prime');
17 else
18 dbms_output.put_line('Number is not Prime');
19 end if;
20 end;
21 /
Enter value for enter_no: 8
old 6: n:=&Enter_no;
new 6: n:=8;
Number is not Prime

PL/SQL procedure successfully completed.

Q(4)Print name of employee with manager using cursor.

SQL> Declare
2 cursor Name is
3 select * from emp;
4 i emp% rowtype;
5 Begin
6 open Name;
7 dbms_output.put_line('EmpName'||' '||'Manager');
8 loop
9 fetch Name into i;
10 exit when name%notfound;
11 dbms_output.put_line(i.ename||' '||'manager');
12 end loop;
13 close Name;
14 end;
15 /
EmpName Manager
SMITH manager
ALLEN manager
WARD manager
JONES manager
MARTIN manager
BLAKE manager
CLARK manager
SCOTT manager
KING manager
TURNER manager
ADAMS manager
JAMES manager
FORD manager
MILLER manager

PL/SQL procedure successfully completed.

Q(5)Update salary of employee by 25% if the salary is greater than


3000 else update the salary 3000.

SQL> Declare
2 cursor employee is
3 select * from emp;
4 i emp% rowtype;
5 Begin
6 open employee;
7 loop
8 fetch employee into i;
9 exit when employee% notfound;
10 if i.sal>3000 then
11 update emp set sal=i.sal+i.sal*0.25
12 where sal>3000;
13 elsif i.sal<3000 then
14 update emp set sal=3000 where sal<3000;
15 dbms_output.put_line('EmpName'||' '||'Salary');
16 dbms_output.put_line(i.ename||' '||i.sal);
17 end if;
18 end loop;
19 close employee;
20 end;
21 /

PL/SQL procedure successfully completed.

SQL> select * from emp;

EMPNO ENAME JOB MGR HIREDATE SAL COMM


DEPTNO
--------- ---------- --------- --------- --------- --------- ---------
---------
7369 SMITH CLERK 7902 17-DEC-80 3000
20
7499 ALLEN SALESMAN 7698 20-FEB-81 3000 300
30
7521 WARD SALESMAN 7698 22-FEB-81 3000 500
30
7566 JONES MANAGER 7839 02-APR-81 3000
20
7654 MARTIN SALESMAN 7698 28-SEP-81 3000 1400
30
7698 BLAKE MANAGER 7839 01-MAY-81 3000
30
7782 CLARK MANAGER 7839 09-JUN-81 3000
10
7788 SCOTT ANALYST 7566 19-APR-87 3000
20
7839 KING PRESIDENT 17-NOV-81 7812.5
10
7844 TURNER SALESMAN 7698 08-SEP-81 3000 0
30
7876 ADAMS CLERK 7788 23-MAY-87 3000
20
7900 JAMES CLERK 7698 03-DEC-81 3000
30
7902 FORD ANALYST 7566 03-DEC-81 3000
20
7934 MILLER CLERK 7782 23-JAN-82 3000
10

14 rows selected.

You might also like