0% found this document useful (0 votes)
76 views8 pages

Appendix 2 - SQL Answers: Activity 7.1

This document contains sample SQL queries and answers for various activities related to a school database. The document includes queries to select, insert, update, delete data as well as more complex queries using joins, aggregation, sorting and filtering. Sample data includes tables for students, teachers, subjects, results and more.

Uploaded by

Mitchell Ingall
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
76 views8 pages

Appendix 2 - SQL Answers: Activity 7.1

This document contains sample SQL queries and answers for various activities related to a school database. The document includes queries to select, insert, update, delete data as well as more complex queries using joins, aggregation, sorting and filtering. Sample data includes tables for students, teachers, subjects, results and more.

Uploaded by

Mitchell Ingall
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Appendices 1

Appendix 2 SQL Answers


Activity 7.1
3.
a SELECT type, rate
FROM devices
b SELECT *
FROM job
c SELECT name
FROM technicians
WHERE id_numb =1310
d SELECT type
FROM devices
WHERE rate =30
e SELECT distinct id_numb
FROM experience
WHERE qualification =E
f SELECT job_numb, id_numb, type, owner
FROM job
WHERE ready =Yes
4.
a What is the identity number of the technicians
qualified to work on PCs?
b Display the job number and type for job
number 1009.
c List the types of repair being carried out by
technician 1470.
d Show all the data contained in the experience
table.

Activity 7.2
1.
a SELECT subjname
FROM subject
b SELECT stname, stnumb
FROM student
c SELECT grade
FROM student
WHERE stnumb =3994
d SELECT stname
FROM student
WHERE grade =7
e SELECT stnumb, subjnumb
FROM results
WHERE percent >0.8
f SELECT stname
FROM student
WHERE NOT grade =6
[or WHERE grade <> 6]


g SELECT stnumb, grade
FROM student
WHERE grade =5
OR grade =7
h SELECT stnumb, percent
FROM results
WHERE percent >0.5
AND subjnumb =18

2.
a List the names of the male students
b What are the names, grade and date of birth
for grade 5 students born since 2001?
c Show all results for students who scored
between 50% and 80%.
d Which teachers are not home room teachers?

3.
a SELECT stname
FROM student
WHERE born between 1-01-01 AND 31-12-05
Note: For date queries some computers will
use US coding i.e. mm/dd/yy instead of
dd/mm/yy.
b SELECT distinct stnumb
FROM results
WHERE subjnumb in ('12', '14', '15')
c SELECT stname
FROM student
WHERE stname like H*
d SELECT stname
FROM student
WHERE stname like *o*

4.
a INSERT INTO student (stnumb, stname,
gender, grade, born)
VALUES (9874, Young,J , F, 4, 3-06-01)
b UPDATE student
SET date =7-11-00
WHERE stname =Morgan, J
c DELETE from student
WHERE stname =Smith, J


Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 2

Activity 7.3

1.
a Teacher: (tname, grade, room)

Subject: ( subjname, tname)
=art
b
Student: (stnumb, stname, gender, )
=M
Results: (stnumb, subjnumb, percent)
>80%
c
Results: (stnumb, subjnumb, percent)
=12
Student: (stnumb, ... ..., grade)
=7
d
Teacher: (tname, ..., room)

Subject: ( subjnumb, tname)

Results: (stnumb, subjnumb, )

Student: (stnumb, , grade, )
=7

2.
a Which is the room of the art teacher?
b Which boys score over 80% in any subject.
c What is the mark for students not in grade 7
doing subject 12?
d Identify the rooms for teachers of Year 7.

3.
Subject: ( subjname, tname )

Teacher: (tname, , room)
=A2

SELECT subjname
FROM subject
WHERE tname in
(SELECT tname
FROM Teacher
WHERE room =A2)
4.

Subject: (subjnumb, subjname, )

Results: (stnumb, subjnumb, percent)
>90%
SELECT subjname
FROM subject
WHERE subjnumb in
(SELECT subjnumb
FROM results
WHERE percent >0.9)

5.

Student: (stnumb, stname, )

Results: (stnumb, subjnumb, percent)
>50%
Subject: (.., subjname, tname)
=language

Teacher: (tname, grade, )
=4
=5

SELECT stname
FROM student
WHERE stnumb in
(SELECT stnumb
FROM results
WHERE percent >0.5
AND subjnumb in
(SELECT subjnumb
FROM subject
WHERE subjname =language
AND tname in
(SELECT tname
FROM teacher
WHERE grade =4
OR grade =5)))

6.

Student: (stnumb, stname, )

Results: (stnumb, subjnumb, )

Subject: (subjnumb, subname, )
=science

Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Appendices 3

SELECT stname
FROM student
WHERE stnumb in
(SELECT stnumb
FROM results
WHERE subjnumb in
(SELECT subjnumb
FROM subject
WHERE subjname =science))
7.
Student: (stnumb, stname, )

Results: (stnumb, subjnumb, percent )
>50%
Subject: (subjnumb, subjname, )
=mathematics
SELECT stname
FROM student
WHERE stnumb in
(SELECT stnumb
FROM results
WHERE percent >0.5
AND subjnumb in
(SELECT subjnumb
FROM subject
WHERE subjname =mathematics))
8.
J ob ( id_numb, , owner, )

Technicians (id_numb, name, )
=Carrol
SELECT owner
FROM job
WHERE id_numb in
(SELECT id_numb
FROM Technicians
WHERE name =Carrol)
9.
Technicians (id_numb, name, )

Experience (id_numb, type, qualification)
=iMac =N
SELECT name
FROM technicians
WHERE id_numb in
(SELECT id_numb
FROM experience
WHERE type =iMac
AND qualification =N)
10.
devices (type, rate, )

job (type, owner)
=Byrne
SELECT rate
FROM devices
WHERE type in
(SELECT type
FROM job
WHERE owner =Byrne)

11.
job (type, owner, )

device (type, ... , priority)
=H
SELECT owner
FROM job
WHERE type in
(SELECT type
FROM devices
WHERE priority =H)

12.
experience (id_numb, type, qualification)

job (id_numb, type, owner)
=Franke
SELECT DISTINCT qualification
FROM experience
WHERE id_numb in
(SELECT id_numb
FROM job
WHERE owner =Franke
AND type in
(SELECT type
FROM job
WHERE owner =Franke))
Note: this gives no result because the
technician doing the repairs does not have a
qualification in the device found.

Activity 7.4
1. SELECT stnumb, subjnumb, percent * 1.05
FROM results
2. SELECT stnumb, (date - born) / 365 AS Age
FROM student
(where date is todays date)
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 4

3. SELECT stnumb, subjnumb, percent +0.03
AS Corrected_result
FROM results
4. SELECT tname
FROM teacher
ORDER BY tname ASC
(the ASC can be omitted)
5. SELECT grade, stname
FROM student
ORDER BY grade, stname
6. SELECT stnumb, percent
FROM results
WHERE subjnumb ='18'
ORDER BY percent DESC
7. SELECT stname
FROM student
WHERE grade =6
ORDER BY born DESC
8. SELECT stnumb, percent
FROM results
WHERE percent >0.5
AND subjnumb in
(SELECT subjnumb
FROM subject
WHERE subjname ='mathematics')
ORDER BY percent DESC
9. SELECT SUM(percent) AS Total_Marks
FROM results
WHERE stnumb =3765
10. SELECT stnumb
FROM results
WHERE percent in
(SELECT MIN(percent)
FROM results)
11. SELECT COUNT(stnumb)
AS Number_of_students
FROM student
WHERE grade =7
12. SELECT COUNT(stnumb)
AS Number_of_students
FROM results
WHERE percent >0.5
13. SELECT stname
FROM student
WHERE born in
(SELECT MAX(born)
FROM student
WHERE grade =5)
14. SELECT COUNT(tname) AS Tally
FROM teacher
WHERE grade is NULL
15. SELECT AVG(percent) As Average
FROM results
WHERE stnumb in
(SELECT stnumb
FROM student
WHERE grade =4)
AND subjnumb in
(SELECT subjnumb
FROM subject
WHERE subjname ='science')
16. SELECT stname
FROM student
WHERE stnumb in
(SELECT stnumb
FROM results
WHERE percent >
(SELECT AVG(percent)
FROM results
WHERE subjnumb in
(SELECT subjnumb
FROM subject
WHERE subjname ='social science')))
17. SELECT grade, COUNT(stname) AS Tally
FROM student
GROUP BY grade
18. SELECT COUNT(subjnumb)
FROM results
WHERE percent >0.5
GROUP BY subjnumb
19. SELECT subjnumb
FROM results
WHERE percent >0.65
GROUP BY subjnumb
HAVING COUNT (stnumb) >2
20. SELECT grade, COUNT(stnumb) AS Number
FROM student
GROUP BY grade
HAVING COUNT(stnumb) <=ALL
(SELECT COUNT(stnumb)
FROM student
GROUP BY grade)

Activity 7.5
1.
a On what dates were low priority jobs
accepted?
b What type and rate of devices are being
repaired by novices?
c In which subjects were results better than
90% achieved?
d In which rooms were results below 35%?
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Appendices 5

2. SELECT name
FROM technicians t, experience e
WHERE t.id_numb =e.id_numb
and e.type = 'iMac'
and e.qualification ='E'
3. SELECT grade
FROM technicians t, job r
WHERE t.id_numb =r.id_numb
and r.owner ='J ames
4. SELECT rate * time AS Cost
FROM devices d, job r
WHERE d.type =r.type
and r.owner ='Elliott'
5. SELECT tname
FROM teacher t, student s
WHERE t.grade =s.grade
AND born =25-01-01
Note: Some computers will use US coding
i.e. mm/dd/yy instead of dd/mm/yy.
6. SELECT stname, s.grade, tname
FROM student s, teacher t
WHERE s.grade =t.grade
ORDER BY stname
7. SELECT room
FROM student st, subject su, teacher t, results r
WHERE su.tname =t.tname
AND su.subjnumb =r.subjnumb
AND r.stnumb =st.stnumb
AND subjname ='science'
AND stname ='Hunter,C'
8. SELECT subjname, stname
FROM student st, results r, subject su
WHERE st.stnumb =r.stnumb
AND su.subjnumb =r.subjnumb
ORDER BY subjname, stname
9. SELECT DISTINCT tname
FROM student st, results r, subject su
WHERE st.stnumb =r.stnumb
AND su.subjnumb =r.subjnumb
AND grade =7
AND percent >0.65
10. SELECT a.stnumb, b.stnumb
FROM results a, results b
WHERE a.stnumb <>b.stnumb
AND a.percent =b.percent
AND a.subjnumb =b.subjnumb
11. SELECT a.stnumb, a.percent
FROM results a, results b
WHERE a.stnumb =b.stnumb
AND a.percent =b.percent
AND a.subjnumb <>b.subjnumb
ORDER BY a.percent DESC
12. SELECT a.stnumb, s.stname, a.percent
FROM results a, results b, student s
WHERE a.stnumb =b.stnumb
AND a.percent =b.percent
AND a.subjnumb <>b.subjnumb
AND a.stnumb=s.stnumb
ORDER BY a.percent DESC

Activity 7.6
1. SELECT *
FROM member
2. SELECT movienumb
FROM onhire
3. SELECT movname, year
FROM movie
4. SELECT DISTINCT memberid
FROM onhire
5. SELECT country
FROM director
WHERE dirname =Lean, David
6. SELECT year
FROM movie
WHERE movname =Star Wars
7. SELECT memname, address
FROM member
WHERE memberid =5045
8. SELECT memberid, memname
FROM member
WHERE owes >50
9. SELECT dirname
FROM director
WHERE NOT country =US
(or WHERE country <> US)
10. SELECT movienumb, movname
FROM movie
WHERE length <180
11. SELECT memberid, memname
FROM member
WHERE owes IS NULL
12. SELECT movienumb, movname
FROM movie
WHERE year BETWEEN 1970 AND 1979
(or WHERE year > 1969
AND year < 1980)
13. SELECT movienumb
FROM onhire
WHERE memberid =5034
AND duedate =14-09-10
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 6

14. SELECT memberid, memname
FROM member
WHERE owes BETWEEN 50 AND 100
15. SELECT movienumb, movname
FROM movie
WHERE dirnumb =107
AND NOT length =137
16. SELECT movienumb, movname
FROM movie
WHERE length >200
AND year <1960
17. SELECT dirname, country
FROM director
WHERE country = US
OR country =Canada
18. SELECT dirname, country
FROM director
WHERE country IN (England, Germany,
France)
19. SELECT memname
FROM member
WHERE memname LIKE F*
20. SELECT memname, address
FROM member
WHERE address LIKE *St
21. SELECT dirname
FROM director
WHERE dirname LIKE *J ohn
22. SELECT movname, year
FROM movie
WHERE year >1990
AND movname LIKE M*
23. SELECT country
FROM director
WHERE dirnumb IN
(SELECT dirnumb
FROM movie
WHERE movname =Casablanca)
24. SELECT memname, address
FROM member
WHERE memberid IN
(SELECT memberid
FROM onhire
WHERE movienumb =1015)
25. SELECT owes
FROM member
WHERE memberid IN
(SELECT memberid
FROM onhire
WHERE duedate =6-09-10)
26. SELECT dirname
FROM director
WHERE dirnumb IN
(SELECT dirnumb
FROM movie
WHERE movname =Glory)
27. SELECT movienumb
FROM onhire
WHERE memberid IN
(SELECT memberid
FROM member
WHERE owes IS NULL)
28. SELECT movname
FROM movie
WHERE movienumb IN
(SELECT movienumb
FROM onhire
WHERE memberid IN
(SELECT memberid
FROM member
WHERE memname =Miller,R))
29. SELECT address
FROM member
WHERE memberid IN
(SELECT memberid
FROM onhire
WHERE movienumb IN
(SELECT movienumb
FROM movie
WHERE movname =Full Metal J acket))
30. SELECT dirnumb, dirname
FROM director
WHERE dirnumb IN
(SELECT dirnumb
FROM movie
WHERE movienumb IN
(SELECT movienumb
FROM onhire
WHERE duedate =12-09-10))
31. SELECT memname, owes, owes * 1.1
AS GST
FROM member
32. SELECT movname, year, 2010 - year
AS Years_ago
FROM movie
33. SELECT movname, length +12 AS Duration
FROM movie
34. SELECT *, duedate - 2 AS Revised_date
FROM onhire
35. SELECT movname, length / 60 AS Hours
FROM movie
Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Appendices 7

36. SELECT movienumb, movname
FROM movie
ORDER BY movname ASC
(ASC can be omitted)
37. SELECT movienumb, movname, length
FROM movie
ORDER BY length DESC
38. SELECT *
FROM director
ORDER BY country, dirname
39. SELECT *
FROM movie
ORDER BY year, length DESC
40. SELECT memberid, memname, owes
FROM member
WHERE NOT owes IS NULL
41. SELECT movienumb, movname
FROM movie
WHERE movienumb IN
(SELECT movienumb
FROM onhire)
ORDER BY movienumb
42. SELECT movienumb, movname
FROM movie
WHERE movienumb IN
(SELECT movienumb
FROM onhire
WHERE duedate =12-09-10)
ORDER BY year
43. SELECT SUM(owes) AS Total_owing
FROM member
44. SELECT AVG(length) AS Average_length
FROM movie
45. SELECT COUNT(*) AS Count_before_1980
FROM movie
WHERE year <1980
46. SELECT COUNT(*) AS Tally
FROM member
WHERE NOT owes IS NULL
47. SELECT movname
FROM movie
WHERE length IN
(SELECT MAX(length)
FROM movie)
48. SELECT AVG(owes) AS Average_owed
FROM member
WHERE NOT owes IS NULL
49. SELECT movienumb, movname
FROM movie
WHERE length IN
(SELECT MIN(length)
FROM movie
WHERE dirnumb IN
(SELECT dirnumb
FROM director
WHERE dirname =Spielberg, Steven))
50. SELECT movname
FROM movie
WHERE movienumb IN
(SELECT movienumb
FROM onhire
WHERE memberid IN
(SELECT memberid
FROM member
WHERE owes IN
(SELECT MAX(owes)
FROM member)))
(This member currently has no movies on hire.)
51. SELECT memberid
FROM member
WHERE owes >
(SELECT AVG(owes)
FROM member)
52. SELECT duedate, COUNT(*) AS Number
FROM onhire
GROUP BY duedate
53. SELECT country, COUNT(*) AS Tally
FROM director
GROUP BY country
54. SELECT year, COUNT(year) AS Tally
FROM movie
GROUP BY year
HAVING COUNT(year) >=ALL
(SELECT COUNT(year)
FROM movie
GROUP BY year)
55. SELECT memname, owes
FROM member m, onhire o
WHERE m.memberid =o.memberid
ORDER BY owes DESC
56. SELECT dirname, movienumb, year
FROM director d, movie m
WHERE d.dirnumb =m.dirnumb
AND (year =1986 OR year =1987)
(N.B. brackets necessary)

Kevin Savage 2011 Single user licence issued to Mitchell Ingall
Leading Technology 8

57. SELECT memname, address, duedate
FROM member m, onhire o
WHERE m.memberid =o.memberid
AND duedate <=8-09-10
58. SELECT memname, movname, duedate
FROM movie v, member m, onhire o
WHERE v.movienumb =o.movienumb
AND o.memberid =m.memberid
AND movname =Zulu
59. SELECT dirname, movname, memname
FROM director d, movie v, member m, onhire o
WHERE d.dirnumb =v.dirnumb
AND v.movienumb =o.movienumb
AND o.memberid =m.memberid
AND memname =Austin,L
60. SELECT a.length, a.movname, a.dirnumb,
b.length, b.movname, b.dirnumb
FROM movie a, movie b
WHERE a.length =b.length
AND a.dirnumb =b.dirnumb
AND a.movienumb <>b.movienumb
61. SELECT movname, memname, o.duedate
FROM movie v, member m, onhire o, onhire p
WHERE v.movienumb =o.movienumb
AND o.memberid =m.memberid
AND o.duedate =p.duedate
AND o.memberid =p.memberid
AND o.movienumb <>p.movienumb

Solutions based on answers provided by Mr Tony
Crewe, The Glennie School, and by Mr Daniel
Haines, Kenmore SHS.

Kevin Savage 2011 Single user licence issued to Mitchell Ingall

You might also like