DBMSR1
DBMSR1
Table created.
SQL> desc department;
Name Null? Type
----------------------------------------- -------- ----------------------------
DEPT_NAME NOT NULL VARCHAR2(20)
LOCATION VARCHAR2(10)
B) Instructor - with attributes IID varchar – Primary key, Name varchar ,Dept_name varchar– Refer the
Department table, Salary number
SQL> create table instructor(iid varchar(10) primary key,name varchar(20),salary
numeric(5,2),Dept_name varchar(20) references department(Dept_name));
Table created.
SQL> desc Instructor;
Name Null? Type
----------------------------------------- -------- ----------------------------
IID NOT NULL VARCHAR2(10)
NAME VARCHAR2(20)
SALARY NUMBER(5,2)
DEPT_NAME VARCHAR2(20)
C) Student - with attributes SID varchar – Primary key, Name varchar, Dept_name varchar– Refer the
Department table, Total_credit number
SQL> create table student(SID varchar(20) primary key,Name varchar(25),Dept_name
varchar(20),Total_credit numeric(5,4),foreign key(Dept_name) references department);
Table created.
SQL> desc student;
Name Null? Type
----------------------------------------- -------- ----------------------------
SID NOT NULL VARCHAR2(20)
NAME VARCHAR2(25)
DEPT_NAME VARCHAR2(20)
TOTAL_CREDIT NUMBER(5,4)
D) Course - with attributes CID varchar Primary key, Title varchar, Dept_name varchar– Refer the
Department table ,Credit number
SQL> create table course(CID varchar(20) primary key,Title varchar(12),Dept_name varchar(25)
references Department(Dept_name),Credit numeric(26));
Table created.
SQL> desc course;
Name Null? Type
----------------------------------------- -------- ----------------------------
CID NOT NULL VARCHAR2(5)
TITLE VARCHAR2(12)
DEPT_NAME VARCHAR2(25)
CREDIT NUMBER(26)
E) Study - with attributes SID varchar - Refer Student table CID varchar – Refer Course table, Sem
varchar, Year number, Credit number Primary key(CID,SID,Sem,Year)
SQL> create table study(SID varchar(8),CID varchar(15),Sem varchar(34),Year number(20),Credit
number(29),foreign key(SID) references student,foreign key(CID) references course,primary
key(CID,SID,Sem,Year));
Table created.
SQL> desc study
Name Null? Type
F)
SQL> create table club(Club_name varchar(29) primary Key,SID varchar(17) references
student(SID),Activity varchar(7));
Table created.
SQL> desc club;
Name Null? Type
----------------------------------------- -------- ----------------------------
CLUB_NAME NOT NULL VARCHAR2(29)
SID VARCHAR2(17)
ACTIVITY VARCHAR2(7)
2)ADD PHONE NUMBER COLUMN TO DEPARTMENT TABLE.
Alter table department add phonenumber numeric(10);
Table altered.
SQL> desc department;
Name Null? Type
----------------------------------------- -------- ----------------------------
DEPT_NAME NOT NULL VARCHAR2(20)
LOCATION VARCHAR2(10)
PHONENUMBER NUMBER(10)
3)INCREASE THE SIZE OF NAME COLUMN IN STUDENT TABLE.
alter table student modify Name varchar(21);
Table altered.
SQL> desc student;
Name Null? Type
----------------------------------------- -------- ----------------------------
SID NOT NULL VARCHAR2(20)
NAME VARCHAR2(21)
DEPT_NAME VARCHAR2(20)
TOTAL_CREDIT NUMBER(5,4)
5)INSERT 5 RECORDS IN ALL THE TABLES
A)SQL> insert into department values('&Dept_name','&Location',&phonenumber);
Enter value for dept_name: CSE
Enter value for location: HYDERABAD
Enter value for phonenumber: 9848209558
old 1: insert into department values('&Dept_name','&Location',&phonenumber)
new 1: insert into department values('CSE','HYDERABAD',9848209558)
1 row created.
SQL> /
Enter value for dept_name: IT
Enter value for location: GOA
Enter value for phone_number: 9652784040
1 row created.
SQL> /
Enter value for dept_name: EEE
Enter value for location: DUBAI
Enter value for phone_number: 7787872891
old 1: insert into department values('&Dept_name','&Location',&phonenumber)
new 1: insert into department values('EEE','DUBAI',7787872891)
1 row created.
SQL> /
Enter value for dept_name: ECE
Enter value for location: KARIMNAGAR
Enter value for phone_number: 95656558791
old 1: insert into department values('&Dept_name','&Location',&phonenumber)
new 1: insert into department values('ECE','KARIMNAGAR',9565658791)
1 row created.
SQL> /
Enter value for dept_name: ETM
Enter value for location: RAJASTHAN
Enter value for phone_number: 7016788861
old 1: insert into department values('&Dept_name','&Location',&phonenumber)
1 row created.
SQL> select *from department;
DEPT_NAME LOCATION PHONENUMBER
-------------------- ---------- -----------
CSE HYDERABAD 9848209558
IT GOA 9652784040
EEE DUBAI 7787872891
ECE KARIMNAGAR 9565658791
ETM RAJASTHAN 7016788861
B)
1 row created.
SQL> /
Enter value for iid: 1202
Enter value for name: SONY
Enter value for salary: 234.91
Enter value for dept_name: CSE
1 row created.
SQL> /
Enter value for iid: 1203
Enter value for name: RANI
Enter value for salary: 146.15
Enter value for dept_name: EEE
old 1: insert into instructor values('&IID','&Name',&Salary,'&Dept_name')
new 1: insert into instructor values('1203','RANI',146.15,'EEE')
1 row created.
SQL> /
Enter value for iid: 1204
Enter value for name: SAHANA
Enter value for salary: 190.6
Enter value for dept_name: EEE
old 1: insert into instructor values('&IID','&Name',&Salary,'&Dept_name')
new 1: insert into instructor values('1202','SAHANA',190.6,'EEE')
1 row created.
SQL> /
Enter value for iid: 1205
Enter value for name: RAJ
Enter value for salary: 566.92
1 row created.
SQL> select * from instructor;
IID NAME SALARY DEPT_NAME
---------- -------------------- ---------- --------------------
1201 RAM 535.18 IT
1202 SONY 234.91 CSE
1203 RANI 146.15 EEE
1204 SAHANA 190.6 EEE
1205 RAJ 566.92 IT
C)
1 row created.
SQL> /
Enter value for sid: 2
Enter value for name: SAM
1 row created.
SQL> /
Enter value for sid: 3
Enter value for name: SARA
Enter value for dept_name: CSE
Enter value for total_credit: 5.9897
old 1: insert into student values('&SID','&Name','&Dept_name',&Total_credit)
new 1: insert into student values('3','SARA','CSE',5.9897)
1 row created.
SQL> /
Enter value for sid: 4
Enter value for name: SRI
Enter value for dept_name: EEE
Enter value for total_credit: 8.9572
old 1: insert into student values('&SID','&Name','&Dept_name',&Total_credit)
new 1: insert into student values('4','SRI','EEE',8.9572)
1 row created.
SQL> /
Enter value for sid: 5
1 row created.
SQL> select *from student;
SID NAME DEPT_NAME TOTAL_CREDIT
-------------------- --------------------- -------------------- ------------
1 RAJA IT 1.2987
2 SAM IT 2.6569
3 SARA CSE 5.9897
4 SRI EEE 8.9572
5 SUDHEEKSHA ECE 7.8123
D)
1 row created.
SQL> /
Enter value for cid: 12
Enter value for title: DSD
Enter value for dept_name: ECE
Enter value for credit: 18
old 1: insert into course values('&CID','&Title','&Dept_name',&Credit)
new 1: insert into course values('12','DSD','ECE',18)
1 row created.
SQL> /
Enter value for cid: 13
Enter value for title: EM
Enter value for dept_name: IT
Enter value for credit: 15
old 1: insert into course values('&CID','&Title','&Dept_name',&Credit)
new 1: insert into course values('13','EM','IT',15)
1 row created.
SQL> /
Enter value for cid: 14
Enter value for title: PS
Enter value for dept_name: EEE
Enter value for credit: 13
old 1: insert into course values('&CID','&Title','&Dept_name',&Credit)
new 1: insert into course values('14','PS','EEE,13)
1 row created.
SQL> select *from course;
CID TITLE DEPT_NAME CREDIT
----- ------------ ------------------------- ----------
10 DS IT 16
11 OOP CSE 19
12 DSD ECE 18
13 EM IT 15
14 PS EEE 13
E)SQL> insert into study values('&SID','&CID','&Sem',&Year,&Credit);
Enter value for sid: 1
Enter value for cid: 10
Enter value for sem: 1
Enter value for year: 2019
Enter value for credit: 18
old 1: insert into study values('&SID','&CID','&Sem',&Year,&Credit)
new 1: insert into study values('1','10','1',2019,18)
1 row created.
SQL> /
Enter value for sid: 3
Enter value for cid: 12
Enter value for sem: 2
Enter value for year: 2017
Enter value for credit: 16
old 1: insert into study values('&SID','&CID','&Sem',&Year,&Credit)
new 1: insert into study values('3','12','2',2107,16)
1 row created.
SQL> /
Enter value for sid: 2
Enter value for cid: 11
Enter value for sem: 3
Enter value for year: 2020
Enter value for credit: 15
old 1: insert into study values('&SID','&CID','&Sem',&Year,&Credit)
new 1: insert into study values('2','11','3',2020,15)
1 row created.
SQL> /
Enter value for sid: 2
Enter value for cid: 13
1 row created.
SQL> /
Enter value for sid: 4
Enter value for cid: 14
Enter value for sem: 7
Enter value for year: 2019
Enter value for credit: 10
old 1: insert into study values('&SID','&CID','&Sem',&Year,&Credit)
new 1: insert into study values('4','14','7',2019,10)
1 row created.
SQL> select *from study;
SID CID SEM YEAR
-------- --------------- ---------------------------------- ----------
CREDIT
----------
1 10 1 2019
18
3 12 2 2017
16
2 11 3 2020
15
SID CID SEM YEAR
-------- --------------- ---------------------------------- ----------
CREDIT
----------
2 13 4 2011
17
4 14 7 2009
10
F)
1 row created.
SQL> /
Enter value for club_name: SAMSKRUTHI
Enter value for sid: 2
Enter value for activity: CUL
old 1: insert into club values('&Club_name','&SID',&Activity)
1 row created.
SQL> /
Enter value for club_name: DANCE
Enter value for sid: 3
Enter value for activity: DAN
old 1: insert into club values('&Club_name','&SID',&Activity)
new 1: insert into club values('DANCE','3',DAN)
1 row created.
SQL> /
Enter value for club_name: LITERATURE
Enter value for sid: 4
Enter value for activity: WRITE
old 1: insert into club values('&Club_name','&SID',&Activity)
new 1: insert into club values('LITERATURE','4',WRITE)
1 row created.
SQL> /
Enter value for club_name: CODING
Enter value for sid: 5
Enter value for activity: CODE
old 1: insert into club values('&Club_name','&SID',&Activity)
new 1: insert into club values('CODING','5',CODE)
1 row created.
SQL> select *from club;
CLUB_NAME SID ACTIVIT
------- -------- --------
SPORTS 1 VOBALL
SAMSKRUTHI 2 CUL
DANCE 3 DAN
LITERATURE 4 WRITE
CODING 5 CODE
7)DELETE THE CLUB WHOSE SID=5
delete from club where SID=5;
1 row deleted.
8)LIST ALL DEPARTMENT NAMES FOR ALL INSTRUCTORS WITHOUT DUPLICATES.
SQL> select distinct Dept_name from instructor;
DEPT_NAME
--------------------
IT
EEE
CSE
9)LIST ALL DEPARTMENT NAMES FOR ALL INSTRUCTORS WITH DUPLICATES(WITHOUT USING *).
SQL> select Dept_name from instructor;
DEPT_NAME
--------------------
IT
CSE
EEE
EEE
IT
10)LIST THE INSTRUCTOR NAMES WITH THEIR MONTHLY SALARY.
SQL> select Name,Salary from instructor where IID>0;
NAME SALARY
-------------------- ----------
RAM 535.18
SONY 234.91
RANI 146.15
SAHANA 190.6
RAJ 566.92
11)FIND ALL THE STUDENTS IN CSE DEPARTMENT.
SQL> select name from student where dept_name='CSE';
NAME
---------------------
SARA
12)FIND ALL THE STUDENTS IN IT DEPARTMENT WITH CREDIT>1.2987.
SQL> select Name from student where Dept_name='IT' and Total_credit>1.2987;
NAME
---------------------
SAM
13)FIND THE INSTRUCTOR NAMES STARTING WITH 'P'.
SQL> select Name from instructor where Name like 'P%';
no rows selected
14)FIND THE STUDENT NAME ENDING WITH 'Y'.
SQL> select Name from instructor where Name like '%Y';
NAME
--------------------
SONY
15)FIND THE STUDENT NAMES CONTAINING 'A'.
SQL> select Name from instructor where Name like '%A%';
NAME
--------------------
RAM
RANI
SAHANA
RAJ
16)FIND THE DEPARTMENT NAME STARTING WITH 'E' AND CONTAINS ONLY 2 CHARACTERS NEXT TO
'E'.
SQL> select Dept_name from department where Dept_name like 'E__';
DEPT_NAME
--------------------
ECE
EEE
ETM
17)FIND THE DEPARTMENT NAME WITH 3 CHARACTERS LONG AND ENDS WITH 'E'.
SQL> select Dept_name from department where Dept_name like '__E';
DEPT_NAME
--------------------
CSE
ECE
EEE
18)FIND THE DEPARTMENT NAME WITH 3 CHARACTERS LONG,STARTING WITH 'E' AND ENDS WITH 'E'.
SQL> select Dept_name from department where Dept_name like 'E_E';
DEPT_NAME
--------------------
ECE
EEE
19)DELETE CLUB TABLE.
drop table club;
Table dropped.
20)FIND THE COURSE ID THAT STUDIED IN THE 1ST SEM OR 2ND SEM OF 3RD YEAR WITH DUPLICATES
AND WITHOUT DUPLICATES.
SQL> select CID from study where Sem='1' and Year='2019';
CID
---------------
10
SQL> select CID from study where Sem='2' and Year='2017';
CID
---------------
12
SQL> select CID from study where Sem='1' and Year='2019' union select CID from study where
Sem='2'and Year='2017';
CID
---------------
10
12
SQL> select CID from study where Sem='1' and Year='2019';
CID
---------------
10
SQL> select CID from study where Sem='2' and Year='2017';
CID
---------------
12
SQL> select CID from study where Sem='1' and Year='2019' union all select CID from study where
Sem='2' and Year='2017';
CID
---------------
10
12
21)FIND THE COURSE ID THAT STUDIED IN THE 1ST SEM AND 2ND SEM OF 4RTH YEAR WITH
DUPLICATES AND WITHOUT DUPLICATES.
SQL> select CID from study where Sem='1' and Year='2019';
CID
---------------
10
no rows selected
SQL> select CID from study where Sem='1' and Year='2019' intersect all select CID from study where
Sem='2' and Year='2017';
select CID from study where Sem='1' and Year='2019' intersect all select CID from study where Sem='2'
and Year='2017' *ERROR at line 1:
ORA-00928: missing SELECT keyword
22)FIND THE COURSE ID THAT STUDIED IN THE 1ST SEM OF 2ND SEM AND NOT IN 2ND SEM OF 2ND
YEAR WITH DUPLICATES AND WITHOUT DUPLICATES
SQL> select CID from study where Sem='1' and Year='2019';
CID
---------------
10
SQL> select CID from study where Sem='2' and Year='2017';
CID
---------------
12
SQL> select CID from study where Sem='1' and Year='2019' minus select CID from study where Sem='2'
and Year='2017';
CID
---------------
10
SQL> select CID from study where Sem='1' and Year='2019' minus all select CID from study where
Sem='2' and Year='2017';
select CID from study where Sem='1' and Year='2019' minus all select CID from study where Sem='2' and
Year='2017’;
*ERROR at line 1:
ORA-00928: missing SELECT keyword
23)FIND THE AVERAGE SALARY OF INSTRUCTORS IN 'EEE' DEPARTMENT.
SQL> select * from instructor;
IID NAME SALARY DEPT_NAME
---------- -------------------- ---------- --------------------
1201 RAM 535.18 IT
1202 SONY 234.91 CSE
1203 RANI 146.15 EEE
1204 SAHANA 190.6 EEE
1205 RAJ 566.92 IT
SQL> select avg(Salary) from instructor where Dept_name='EEE';
AVG(SALARY)
-----------
168.375
24)FIND THE NUMBER OF RECORDS IN STUDENT RELATION.
SQL> select count(*) from student;
COUNT(*)
----------
5
25)LIST THE DEPARTMENT LOCATION WITHOUT DUPLICATES.
CSE 234.91
29)FIND THE MAXIMUM SALARY OF INSTRUCTOR IN EACH DEPARTMENT.
SQL> select Dept_name,max(Salary) from instructor group by Dept_name having max(Salary)>0;
DEPT_NAME MAX(SALARY)
-------------------- -----------
IT 566.92
EEE 190.6
CSE 234.91
30)FIND THE TOTAL SALARY OF EACH DEPARTMENT.
SQL> select Dept_name,sum(Salary) from instructor group by Dept_name having sum(Salary)>0;
DEPT_NAME SUM(SALARY)
-------------------- -----------
IT 1102.1
EEE 336.75
CSE 234.91
1)DISPLAY THE CONTENTS OF ALL INSTRUCTORS
SQL> select *from instructor;
ID NAME DEPT_NAME SALARY
----- -------------------- -------------------- ----------
10101 Srinivasan Comp. Sci. 65000
12121 Wu Finance 90000
15151 Mozart Music 40000
22222 Einstein Physics 95000
32343 El Said History 60000
33456 Gold Physics 87000
45565 Katz Comp. Sci. 75000
58583 Califieri History 62000
76543 Singh Finance 80000
76766 Crick Biology 72000
83821 Brandt Comp. Sci. 92000
ID NAME DEPT_NAME SALARY
----- -------------------- -------------------- ----------
98345 Kim Elec. Eng. 80000
12 rows selected.
2)FIND THE NAMES OF ALL INSTRUCTORS
SQL> select name from instructor;
NAME
--------------------
Srinivasan
Wu
Mozart
Einstein
El Said
Gold
Katz
Califieri
Singh
Crick
Brandt
NAME
--------------------
Kim
12 rows selected.
3)FIND THE DEPARTMENT,NAMES OF ALL INSTRUCTORS
SQL> select name,dept_name from instructor;
NAME DEPT_NAME
-------------------- --------------------
Srinivasan Comp. Sci.
Wu Finance
Mozart Music
Einstein Physics
El Said History
Gold Physics
12 rows selected.
4)FIND THE NAMES OF ALL INSTRUCTORS IN THE COMPUTERSSCIENCE DEPARTMENT WHO HAVE
SALARY>$70,000
SQL> select name from instructor where dept_name='Comp. Sci.'and salary>70000;
NAME
--------------------
Katz
Brandt
5)RETRIEVE THE NAMES OF ALL INSTRUCTORS,ALONG WITH THEIR DEPARTMENT NAMES &
DEPARTMENT BUILDING NAMES
SQL> select name,dept_name,building from instructor natural join department;
NAME DEPT_NAME BUILDING
-------------------- -------------------- ---------------
Srinivasan Comp. Sci. Taylor
Wu Finance Painter
Mozart Music Packard
12 rows selected.
SQL> select instructor.name,instructor.dept_name,department.building from instructor full outer join
department on instructor.dept_name=department.dept_name;//it is used to display the data if that
doesnot contains data but it gives null
NAME DEPT_NAME BUILDING
-------------------- -------------------- ---------------
Srinivasan Comp. Sci. Taylor
Wu Finance Painter
Mozart Music Packard
Einstein Physics Watson
El Said History Painter
Gold Physics Watson
Katz Comp. Sci. Taylor
12 rows selected.
6)FIND INSTRUCTOR'S NAME & COURSE TAUGHT.
SQL> select name,Title from instructor,course where instructor.dept_name=course.dept_name;//select
name,course_id from instructor,teaches where instructor.id=teaches.id;-displays cid
NAME TITLE
-------------------- ------------------------------
Srinivasan Robotics
Brandt Image Processing
Katz Image Processing
Srinivasan Image Processing
Brandt Database System Concepts
Katz Database System Concepts
Srinivasan Database System Concepts
Kim Intro. to Digital Systems
Singh Investment Banking
Wu Investment Banking
Califieri World History
NAME TITLE
-------------------- ------------------------------
El Said World History
Mozart Music Video Production
Gold Physical Principles
Einstein Physical Principles
26 rows selected.
7)FIND INSTRUCTOR NAMES & COURSE IDENTIFIERS FOR INSTRUCTORS IN THE COMPUTERSCIENCE
DEPARTMENT
SQL> select name,course_id from instructor natural join teaches where dept_name='Comp. Sci.';
// select name,course_id from instructor,teaches where instructor.id=teaches.id and
dept_name='Comp. Sci.';
NAME COURSE_I
-------------------- --------
Srinivasan CS-101
Srinivasan CS-315
Srinivasan CS-347
Katz CS-101
Katz CS-319
Brandt CS-190
Brandt CS-190
Brandt CS-319
8 rows selected.
8)FIND ALL ATTRIBUTES OF INSTRUCTORS,WHO IS TEACHING A COURSE
SQL> select *from instructor,teaches where instructor.id=teaches.id;// select *from instructor natural
join teaches;
15 rows selected.
9)LIST THE NAME OF INSTRUCTORS ALONG WITH THE TITLES OF COURSES THAT THEY TEACH
SQL> select name,title from instructor,teaches,course where instructor.id=teaches.id and
course.cid=teaches.cid;
NAME TITLE
-------------------- ------------------------------
Crick Intro. to Biology
Crick Genetics
26 rows selected.
10)FIND THE NAMES OF ALL INSTRUCTORS WHOSE SALARY IS >ATLEAST ONE INSTRUCTOR IN THE
BIOLOGY DEPARTMENT
SQL> select name from instructor where salary>some(select salary from instructor where
dept_name='Biology');
NAME
--------------------
Einstein
Brandt
Wu
Gold
Kim
Singh
Katz
7 rows selected.
11)FIND THE NAMES OF ALL DEPARTMENTS WHOSE BUILDING NAME INCLUDES THE SUBSTRING
"Watson"
SQL> select dept_name from department where building like '%Watson%';
DEPT_NAME
--------------------
Biology
Physics
12)LIST IN ALPHABETIC ORDER OF ALL INSTRUCTORS IN THE PHYSICS DEPARTMENT
SQL> select name from instructor where dept_name='Physics' order by name;
NAME
--------------------
Einstein
Gold
13)LIST THE ENTIRE RELATION INSTRUCTORS IN DESCENDING ORDER OF SALARY,IF SEVERAL
INSTRUCTORS HAVE THE SAME SALARY,ORDER THEM IN THE ALPHABETIC ASCENDING ORDER BY
NAME
SQL> select * from instructor order by salary desc,name asc;
ID NAME DEPT_NAME SALARY
----- -------------------- -------------------- ----------
22222 Einstein Physics 95000
83821 Brandt Comp. Sci. 92000
12121 Wu Finance 90000
33456 Gold Physics 87000
98345 Kim Elec. Eng. 80000
76543 Singh Finance 80000
45565 Katz Comp. Sci. 75000
76766 Crick Biology 72000
10101 Srinivasan Comp. Sci. 65000
58583 Califieri History 62000
32343 El Said History 60000
ID NAME DEPT_NAME SALARY
----- -------------------- -------------------- ----------
12 rows selected.
14)FIND THE NAMES OF INSTRUCTORS WITH SALARY AMOUNTS BETWEEN $90,000 AND $100,000
SQL> select name from instructor where salary between 90000 and 100000;
NAME
--------------------
Einstein
Brandt
15)FIND THE SET OF ALL COURSES TAUGHT EITHER IN Fall 2009 OR Spring 2010 OR BOTH
SQL> select course_id from teaches where semester='Fall' and year=2009;
COURSE_I
--------
CS-101
CS-347
PHY-101
SQL> select course_id from teaches where semester='Spring' and year=2010;
COURSE_I
--------
CS-315
FIN-201
MU-199
HIS-351
CS-101
CS-319
CS-319
7 rows selected.
SQL> select course_id from teaches where semester='Fall' and year=2009 union select course_id from
teaches where semester='Spring' and year=2010;
COURSE_I
--------
CS-101
CS-315
CS-319
CS-347
FIN-201
HIS-351
MU-199
PHY-101
8 rows selected.
16)FIND THE SET OF ALL COURSES TAUGHT IN THE Fall 2009 AS WELL AS Spring 2010
SQL> select course_id from teaches where semester='Fall' and year=2009;
COURSE_I
--------
CS-101
CS-347
PHY-101
7 rows selected.
SQL> select course_id from teaches where semester='Fall' and year=2009 intersect select course_id
from teaches where semester='Spring' and year=2010;
COURSE_I
--------
CS-101
17)FIND ALL COURSES TAUGHT IN THE Fall 2009,BUT NOT IN Spring 2010
SQL> select course_id from teaches where semester='Fall' and year=2009;
COURSE_I
--------
CS-101
CS-347
PHY-101
SQL> select course_id from teaches where semester='Spring' and year=2010;
COURSE_I
--------
CS-315
FIN-201
MU-199
HIS-351
CS-101
CS-319
CS-319
7 rows selected.
SQL> select course_id from teaches where semester='Fall' and year=2009 minus select course_id from
teaches where semester='Spring' and year=2010;
COURSE_I
--------
CS-347
PHY-101
18)FIND THE AVG SALARY OF INSTRUCTORS
SQL> select avg(salary) from instructor;
AVG(SALARY)
-----------
74833.3333
19)FIND THE AVG SALARY OF INSTRUCTORS IN THE COMPUTERSCIENCE DEPARTMENT
SQL> select avg(salary) from instructor where dept_name='Comp. Sci.';
AVG(SALARY)
-----------
77333.3333
20)FIND THE TOTAL NUMBER OF INSTRUCTORS WHO TEACH A COURSE IN THE Spring 2010 SEMESTER
SQL> select count(*) from teaches where semester='Spring' and year=2010;
COUNT(*)
----------
7
21)FIND THE NUMBER OF TUPLES IN THE COURSE RELATION
SQL> select count(*) from course;
COUNT(*)
----------
13
22)FIND THE AVG SALARY OF EACH DEPARTMENT
SQL> select dept_name,avg(salary) from instructor group by dept_name;
DEPT_NAME AVG(SALARY)
-------------------- -----------
Elec. Eng. 80000
Physics 91000
Comp. Sci. 77333.3333
Finance 85000
Biology 72000
Music 40000
History 61000
7 rows selected.
23)FIND THE NUMBER OF INSTRUCTORS IN EACH DEPARTMENT WHO TEACHES A COURSE IN THE
Spring 2010 SEMESTER
SQL> select dept_name,count(*) from instructor natural join teaches where semester='Spring' and
year=2010 group by dept_name;
DEPT_NAME COUNT(*)
-------------------- ----------
Comp. Sci. 4
Finance 1
Music 1
History 1
SQL> select dept_name,count(distinct id) from instructor natural join teaches where semester='Spring'
and year=2010 group by dept_name;
DEPT_NAME COUNT(DISTINCTID)
-------------------- -----------------
Comp. Sci. 3
Finance 1
History 1
Music 1
24)FIND THE DEPARTMENTS WHERE THE AVG SALARY OF THE INSTRUCTOR IS >$42,000
SQL> select dept_name,avg(salary) from instructor group by dept_name having avg(salary)>42000;
DEPT_NAME AVG(SALARY)
-------------------- -----------
Elec. Eng. 80000
Physics 91000
Comp. Sci. 77333.3333
Finance 85000
Biology 72000
History 61000
6 rows selected.
25)FOR EACH COURSE SECTION OFFERED IN 2009 FIND THE AVG TOTAL CREDITS (Tot_cred) OF ALL
STUDENTS ENROLLED IN THE SECTION,IF THE SECTION HAS ATLEAST 2 STUDENTS
SQL> select course_id,semester,year,sec_id,avg(tot_cred) from takes natural join student where
year=2009 group by course_id,semester,year,sec_id having count(id)>=2;
26)FIND ALL THE COURSES TAUGHT IN THE BOTH THE Fall 2009 AND Spring 3020
SQL> select course_id from teaches where semester='Fall' and year=2009;
COURSE_I
--------
CS-101
CS-347
PHY-101
SQL> select course_id from teaches where semester='Spring' and year=3020;
no rows selected
SQL> select course_id from teaches where semester='Fall' and year=2009 intersect select course_id
from teaches where semester='Spring' and year=3020;
no rows selected
SQL> select course_id from teaches where semester='Fall' and year=2009 and course_id in(select
course_id from teaches where semester='Spring' and year=3020);
no rows selected
27)FIND ALL THE COURSES TAUGHT IN Fall 2009 SEMESTER,BUT NOT IN THE Spring 2010 SEMESTER
SQL> select course_id from teaches where semester='Fall' and year=2009;
COURSE_I
--------
CS-101
CS-347
PHY-101
SQL> select course_id from teaches where semester='Spring' and year=2010;
COURSE_I
--------
CS-315
FIN-201
MU-199
HIS-351
CS-101
CS-319
CS-319
7 rows selected.
SQL> select course_id from teaches where semester='Fall' and year=2009 minus select course_id from
teaches where semester='Spring' and year=2010;
COURSE_I
--------
CS-347
PHY-101
SQL> select course_id from teaches where semester='Fall' and year=2009 and course_id not in(select
course_id from teaches where semester='Spring' and year=2010);
COURSE_I
--------
CS-347
PHY-101
28)FIND THE NAMES OF INSTRUCTORS,WHOSE NAMES ARE NEITHER "Mozari" nor "Einstein".
SQL> select name from instructor where name not in('Mozari','Einstein');
NAME
--------------------
Srinivasan
Wu
Mozart
El Said
Gold
Katz
Califieri
Singh
Crick
Brandt
Kim
11 rows selected.
29)FIND THE TOTAL NUMBER OF DISTINCT STUDENTS,WHO HAVE TAKEN COURSE SECTIONS TAUGHT
BY THE INSTRUCTOR WITH ID 10101
SQL> select count(distinct ID) from takes where(course_id,sec_id,semester,year) in (select
course_id,sec_id,semester,year from teaches where teaches.id=10101);
COUNT(DISTINCTID)
-----------------
6
30)FIND THE NAMES OF ALL INSTRUCTORS,WHOSE SALARY IS >ATLEAST ONE INSTRUCTOR IN BIOLOGY
DEPARTMENT
SQL> select name from instructor where salary>some(select salary from instructor where
dept_name='Biology');
NAME
--------------------
Einstein
Brandt
Wu
Gold
Kim
Singh
Katz
7 rows selected.
31)FIND THE NAMES OF ALL INSTRUCTORS,WHOSE SALARY IS >OF EACH INSTRUCTOR IN BIOLOGY
DEPARTMENT
SQL> select name from instructor where salary>all(select salary from instructor where
dept_name='Biology');
NAME
--------------------
Wu
Einstein
Gold
Katz
Singh
Brandt
Kim
7 rows selected.
32)FIND THE DEPARTMENT THAT HAVE THE HIGHEST AVG SALARY
SQL> select dept_name from instructor group by dept_name having avg(salary)>=all(select avg(salary)
from instructor group by dept_name);
DEPT_NAME
--------------------
Physics
33)FIND ALL STUDENTS WHO HAVE TAKEN ALL COURSES OFFERED IN THE BIOLOGY DEPARTMENT
SQL> select distinct student.ID,student.name from student where not exists((select course_id from
course where dept_name='Biology') minus (select takes.course_id from takes where
student.id=takes.id));
no rows selected
10 rows selected.
7)FIND THE SAILORS NAMES WHO HAVE RESERVED BOAT WITH BOATID=101.
SQL> select sname from Sailors natural join Reserves where bid=101;
SNAME
--------------------
Dustin
Horatio
8)FIND THE DETAILS OF BOAT IDS WHICH ARE RESERVED BY SAILORS WITH THE NAME "Dustin".
SQL> select bid from Reserves natural join Sailors where sname='Dustin';
BID
----------
101
102
103
104
9)FIND THE DETAILS OF BOAT IDS WHICH ARE RESERVED BY SAILORS WITH THE NAME "Dustin" or
"Lubber".
SQL> select bid from Reserves natural join Sailors where sname like 'Dustin';
BID
----------
101
102
103
104
SQL> select bid from Reserves natural join Sailors where sname like 'Lubber';
BID
----------
102
103
104
SQL> select bid from Reserves natural join Sailors where sname like 'Dustin' union select bid from
Reserves natural join Sailors where sname like 'Lubber';
BID
----------
101
102
103
104
10)FIND THE DETAILS OF BOAT IDS WHICH ARE RESERVED BY SAILORS WITH THE NAME "Dustin" AND
"Lubber".
SQL> select bid from Reserves natural join Sailors where sname like 'Dustin' intersect select bid from
Reserves natural join Sailors where sname like 'Lubber';
BID
----------
102
103
104
11)FIND THE SIDS OF SAILORS WHO RESERVED BOAT WITH BOAT ID=103 BUT NOT WITH BOAT
ID=101.
SQL> select sid from Reserves where bid=103 minus select sid from Reserves where bid=101;
SID
----------
31
74
12)FIND THE NAMES OF SAILORS WHO HAVE RESERVED BOAT NUMBER 103.
SQL> select sname from Sailors natural join Reserves where bid=103;
SNAME
--------------------
Dustin
Lubber
Horatio
13)FIND SAILORS WHOSE RATING IS BETTER THAN SOME SAILOR CALLED Horatio.
SQL> select * from sailors where rating>some(select rating from Sailors where sname='Horatio');
SID SNAME RATING AGE
---------- -------------------- ---------- ----------
58 Rusty 10 35
71 Zorba 10 16
74 Horatio 9 35
31 Lubber 8 55.5
32 Andy 8 25.5
14)FIND SAILORS WHOSE RATING IS BETTER THAN ALL SAILOR CALLED Horatio.
SQL> select * from sailors where rating>all(select rating from Sailors where sname='Horatio');
SID SNAME RATING AGE
---------- -------------------- ---------- ----------
58 Rusty 10 35
71 Zorba 10 16
15)FIND THE NAMES OF SAILORS WHO RESERVED BOTH A RED AND GREEN BOAT.
SQL> select distinct sname from sailors where sid in((select sid from reserves where bid in(select bid
from boatsrelation where color=’red’))intersect(select sid from reserves where bid in(select bid from
boatsrelation where color=’green’)));
SNAME
--------------------
Lubber
Dustin
16)FIND THE AVERAGE AGE OF SAILORS WITH A RATING OF 10.
SQL> select avg(age) from sailors where rating=10;
AVG(AGE)
----------
25.5
17)FIND THE NAME AND AGE OF THE OLDEST SAILOR.
SQL> select sname,age from Sailors where age=(select max(age) from Sailors);
SNAME AGE
-------------------- ----------
Bob 63.5
18)COUNT THE NUMBER OF DIFFERENT SAILOR NAMES.
SQL> select count(distinct sname) from Sailors;
COUNT(DISTINCTSNAME)
--------------------
9
19)FIND THE NAMES OF SAILORS WHO ARE OLDER THAN THE OLDEST SAILOR WITH A RATING=10.
SQL> select sname from Sailors where age>(select max(age) from Sailors where rating=10);
SNAME
--------------------
Dustin
Lubber
Bob
20)FIND THE AGE OF THE YOUNGEST SAILOR FOR EACH RATING LEVEL.
SQL> select min(age),rating from Sailors group by rating;
MIN(AGE) RATING
---------- ----------
33 1
25.5 8
35 7
25.5 3
16 10
35 9
6 rows selected.
21)FIND THE AGE OF THE YOUNGEST SAILOR WHO IS ELIGIBLE TO VOTE(i.e.,is at 18 least years old) for
each rating level.
SQL> select min(age),rating from Sailors where age>=18 group by rating;
MIN(AGE) RATING
---------- ----------
33 1
25.5 8
35 7
25.5 3
35 10
35 9
6 rows selected.
22)FIND THE AGE OF THE YOUNGEST SAILOR WHO IS ELIGIBLE TO VOTE(i.e,IS AT LEAST 18 YEARS OLD)
FOR EACH RATING LEVEL WITH AT LEAST TWO SUCH SAILORS.
SQL> select min(age),rating from sailors where age>=18 group by rating having count(*)>=2;
MIN(AGE) RATING
---------- ----------
25.5 8
35 7
25.5 3
23)FIND THE AVERAGE AGE OF SAILORS FOR EACH RATING LEVEL THAT HAS AT LEAST TWO SAILORS.
SQL> select avg(age),rating from sailors where age>=18 group by rating having count(*)>=2;
AVG(AGE) RATING
---------- ----------
40.5 8
40 7
44.5 3
24)FIND THOSE RATINGS FOR WHICH THE AVERAGE AGE OF SAILORS IS THE MINIMUM OVERALL
RATINGS.
SQL> select rating from sailors group by rating having avg(age)<=all(select avg(age) from sailors group by
rating);
RATING
----------
10
SQL> select avg(age),rating from sailors group by rating;
AVG(AGE) RATING
---------- ----------
33 1
40.5 8
40 7
44.5 3
25.5 10
35 9
6 rows selected.
25)DISPLAY SAILORS NAMES,ALONG WITH THE COLORS OF THE BOATS WHICH SAILORS HAVE
RESERVED.
SQL> select distinct(sname),color from sailors,reserves,boatsrelation where sailors.sid=reserves.sid and
reserves.bid=boatsrelation.bid;
SNAME COLOR
-------------------- ---------------
Horatio red
Dustin red
Lubber green
Lubber red
Dustin blue
Dustin green
Horatio blue
Horatio green
8 rows selected.
SQL> select sname,color from sailors,reserves,boatsrelation where sailors.sid=reserves.sid and
reserves.bid=boatsrelation.bid;
SNAME COLOR
-------------------- ---------------
Dustin blue
Dustin red
Dustin green
Dustin red
Lubber red
Lubber green
Lubber red
Horatio blue
Horatio red
Horatio green
10 rows selected.
26)DISPLAY SAILORS NAME,ALONG WITH THE NUMBER OF BOATS RESERVED BY THEM.
SQL> select sname,count(bid) from sailors natural join reserves group by sname;
SNAME COUNT(BID)
-------------------- ----------
Lubber 3
Dustin 4
Horatio 3
27)DISPLAY COLOR WISE NO OF RESERVATIONS.
SQL> select color,count(*) from boatsrelation,reserves where boatsrelation.bid=reserves.bid group by
color; // select color,count(bid)from reserves natural join boatsrelation group by color;
COLOR COUNT(*)
--------------- ----------
green 3
red 5
blue 2
28)DISPLAY SAILORS NAME,ALONG WITH THE NO OF BOATS RESERVED BY THEM.(INCLUDES SAILOR'S
NAMES OF SAILORS WHO HAVE NOT RESERVED ANY BOAT WITH ZERO AS COUNT).
SQL> select sname,count(reserves.sid) from sailors full outer join reserves on sailors.sid=reserves.sid
group by sname;
SNAME COUNT(RESERVES.SID)
-------------------- -------------------
Rusty 0
Lubber 3
Brutus 0
Andy 0
Art 0
Bob 0
Dustin 4
Zorba 0
Horatio 3
9 rows selected.
29)FIND THE SIDS WHO HAVE RESERVED ALL BOATS.
SQL> select sid from reserves,boatsrelation where reserves.bid=boatsrelation.bid group by sid having
count(*)=all(select count(*) from boatsrelation);
// select sid from reserves natural join boatsrelation group by sid having count(*)=all(select count(*)
from boatsrelation);
//> select sid from reserves,boatsrelation where reserves.bid=boatsrelation.bid group by sid having
count(reserves.bid)=(select count(boatsrelation.bid) from boatsrelation);
SID
----------
22
30)FIND THE SIDS WHO HAVE RESERVED ALL RED COLORED BOATS.
SQL> select distinct(sid) from reserves,boatsrelation where reserves.bid=boatsrelation.bid and
color='red';
//select distinct(sid) from reserves natural join boatsrelation where color='red';
SID
----------
22
31
64
View created.
10 rows selected.