SQL Sub Query Lecturer: Mahendra Data, S.Kom
Let s practice (part 1) Sub Queries in WHERE
School Admission Database Berkeley CA 36000 Brawijaya CA 1000 Cornell NY 21000 MIT MA 10000 Stanford NY 15000 123 Amy 3.9 1000 234 Bob 3.6 1500 345 Craig 3.5 500 456 Doris 3.9 1000 543 Craig 3.4 2000 567 Edward 2.9 2000 654 Amy 3.9 1000 678 Fay 3.8 200 765 Jay 2.9 1500 789 Gary 3.4 800 876 Irene 3.9 400 987 Helen 3.7 800
School Admission Database 123 Berkeley CS Y 123 Cornell EE Y 123 Stanford CS Y 123 Stanford EE N 234 Berkeley biology N 345 Cornell bioengineering N 345 Cornell CS Y 345 Cornell EE N 345 MIT bioengineering Y 543 MIT CS N 678 Stanford history Y 765 Cornell history N 765 Cornell psychology Y 765 Stanford history Y 876 MIT biology Y 876 MIT marine biology N 876 Stanford CS N 987 Berkeley CS Y 987 Stanford CS Y
Tampilan ID dan nama mahasiswa yang mendaftar ke bidang CS SELECT sid, sname FROM WHERE sid IN (SELECT sid FROM WHERE major = "CS");
Tampilan ID dan nama mahasiswa yang mendaftar ke bidang CS SELECT DISTINCT S.sID, sname FROM S, A WHERE S.sID = A.sID AND major = "CS";
Tampilan nama mahasiswa yang mendaftar ke bidang CS SELECT sname FROM WHERE sid IN (SELECT sid FROM WHERE major = "CS");
Tampilan nama mahasiswa yang mendaftar ke bidang CS SELECT DISTINCT sname FROM S, A WHERE S.sID = A.sID AND major = "CS"; Tidak sepenuhnya benar, query ini akan menghapus salah satu Craig, padahal 2 Craig sebenarnya memiliki ID yang berbeda
The Importance of Duplicate Value Tampilan rata-rata GPA mahasiswa yang mendaftar ke bidang CS SELECT avg(gpa) FROM WHERE sid IN (SELECT sid FROM WHERE major = "CS");
The Importance of Duplicate Value Tampilan rata-rata GPA mahasiswa yang mendaftar ke bidang CS SELECT DISTINCT avg(gpa) FROM S, A WHERE S.sID = A.sID AND major = "CS"; Akan menghasilkan nilai yang SALAH, query ini akan menghapus salah satu GPA Craig, padahal 2 Craig sebenarnya memiliki ID dan GPA yang berbeda
The Importance of Duplicate Value Tampilan rata-rata GPA mahasiswa yang mendaftar ke bidang CS SELECT avg(gpa) FROM S, A WHERE S.sID = A.sID AND major = "CS"; Akan menghasilkan nilai yang SALAH, query ini akan menghitung GPA Amy 2 kali, padahal sebenarnya hanya ada 1 Amy
Tampilkan college dengan nilai tertinggi SELECT cname FROM C1 WHERE NOT EXISTS (SELECT * FROM C2 WHERE C2. > C1.);
Tampilkan GPA tertinggi dari mahasiswa SELECT max(gpa) FROM ;
Tampilkan Nama dan GPA tertinggi dari mahasiswa SELECT sname, max(gpa) FROM ; Hanya akan memunculkan salah satu nama mahasiswa dengan GPA Tertinggi, padahal seharusnya ada beberapa mahasiswa denga GPA Yang sama tingginya
Tampilkan Nama dan GPA tertinggi dari mahasiswa SELECT sname, GPA FROM S1 WHERE NOT EXISTS (SELECT * FROM S2 WHERE S2.GPA > S1.GPA); Benar, karena query ini dapat menampilkan beberapa nama Mahasiswa yang GPA nya tertinggi
Tampilkan Nama dan GPA tertinggi dari mahasiswa SELECT sname, GPA FROM WHERE GPA >= ALL (SELECT GPA FROM ); Benar, karena query ini dapat menampilkan beberapa nama Mahasiswa yang GPA nya tertinggi
Tampilkan semua Nama dan GPA dari mahasiswa kecuali mahasiswa dengan GPA tertinggi SELECT sname, GPA FROM S1 WHERE EXISTS (SELECT * FROM S2 WHERE S2.GPA > S1.GPA);
Tampilkan semua Nama dan GPA dari mahasiswa kecuali mahasiswa dengan GPA tertinggi SELECT sname, GPA FROM WHERE GPA < ANY (SELECT GPA FROM );
Let s practice (part 2) Sub Queries in SELECT and FROM
Ubah range GPA dari 0-4 menjadi 0-100 kemudian tampilkan Nama, GPA, dan GPA modifikasi tersebut yang nilainya antara 70-80 SELECT sname, GPA, (GPA / 4 * 100) AS scaledgpa FROM WHERE (GPA / 4 * 100) >= 70 and (GPA / 4 * 100) <= 80;
Ubah range GPA dari 0-4 menjadi 0-100 kemudian tampilkan Nama, GPA, dan GPA modifikasi tersebut yang nilainya diatas 90 SELECT * FROM ( SELECT sname, GPA, (GPA / 4 * 100) AS scaledgpa FROM student) mod where scaledgpa >= 70 and scaledgpa <= 80;
Tampilkan cname, state dan GPA mahasiswa tertinggi yang mendaftar di kampus tersebut. SELECT cname, state, ( SELECT DISTINCT max(gpa) FROM, WHERE.cName =.cname AND.sID =.sid ) FROM ;
Tugas Presentasi tentang Subquery Jelaskan tentang subquery Memberi masing-masing 2 contoh dari: Subquery di WHERE Subquery di FROM Subquery di SELECT Tugas Kelompok.
Selamat belajar SELESAI.
Daftar Pustaka http://www.w3schools.com/sql/default.asp http://www.db-class.org/course/class/index