SlideShare a Scribd company logo
1 of 28
SUBQUERY DAN VIEW
Oleh
NURDIFA FEBRIANTI
165150200111065
Cara mengerjakan!
• Siapkan buku bacaan, catatan dan laptop!
• Catat permasalahan yang akan muncul
• Baca buku terkait subquery
• Jawablah permasalahan yang muncul sesuai dengan pemahaman
anda tentang masalah tersebut
• Dikumpulkan di edmodo dengan nama file Tsubquery_NIM.ppt
1. Jelaskan apa yang dimaksud dengan:
subquery dan mainquery! Berikan contohnya!
Jawab:
Subquery (subselect /nested select /inner-select) adalah
query yang ada di dalam perintah SQL lain / main query
atau query utamanya. Subquery bisa nested pada
statement SELECT, UPDATE, DELETE dan INSERT.
Subquery biasanya ditambahkan di sintaks WHERE nya.
Subquery secara nyata mampu menyederhanakan
persoalan-persoalan rumit berkaitan query data. Sebagai
contoh, misalkan pernyataan sbb:
“Dapatkan nama, NIM dan total nilai mahasiswa yang
memiliki nilai lebih tinggi dari pada mahasiswa yang
memiliki NIM 104”
Secara main query, diperlukan dua tahapan untuk
menyelesaikan kasus di atas:
• SELECT nim dan total_nilai dari (FROM) tabel NILAI
dimana (WHERE) nim = ‘104’. Misal didapatkan
total_nilai mahasiswa tersebut adalah 80.
• SELECT nama dan nim mahasiswa serta total_nilai
mahasiswa dari (FROM) tabel mahasiswa (objek a) dan
tabel NILAI (objek b) dimana (WHERE) b.total_nilai > 80
Query yang menerapkan Subquery nya:
Dapatkan nama, nim dan total nilai mahasiswa dari tabel
mahasiswa dan tabel nilai dimana (WHERE) nilai
mahasiswa tersebut lebih tinggi dari nilai mahasiswa ber-
NIM 104.
2. Klausa apa sajakah yang digunakan pada
subquery? Berikan contoh sintaksnya!
• Jawab:
Klausa yang digunakan untuk subquery biasanya adalah SELECT (harus), WHERE, FROM(harus), HAVING dan atau
GROUP BY. Contoh Sintaksnya (dari persoalan di no. 1):
SELECT a.studentid, a.name, b.total_marks
FROM student a, marks b
WHERE a.studentid = b.studentid AND b.total_marks >
(SELECT total_marks
FROM marks
WHERE studentid = 'V002');
Sintaks diatas diambil dari kasus dimana terdapat 2 tabel: student dan marks. Tabel student dialiaskan a dan marks
dialiaskan b. Di dalam WHERE pada main query, terdapat 3 statement lagi yang diberi tanda kurung, itulah subquery nya,
yang menyeleksi data di main query berdasarkan data yang ditemukan di subquery. Subquery diatas menggunakan ANY
(akan dijelaskan di no. 4)
3. Single row, multiple row dan multiple
column merupakan …. ? Jelaskan!
• Jawab:
Single, multiple row dan multiple column merupakan tipe-tipe Subquery.
o Single row subquery : Subquery yang hanya mengembalikan data sebanyak 1 baris atau kurang.
o Multiple row subquery : Subquery yang mengembalikan data sebanyak 1 baris atau lebih.
o Multiple column subqueries : Subquery yang mengembalikan data sebanyak 1 kolom atau lebih.
Jika kita ingin hasil yang dikeluarkan oleh Subquey memungkinkan untuk berupa 1 atau lebih
baris/kolom, maka Subquery biasanya diletakkan di klausa FROM dan WHERE
4. Jelaskan kegunaan dari operator IN, ALL, ANY
dalam multiple row pada subquery! Sertakan
contohnya!
• Jawab:
a. IN
Operator IN berfungsi untuk mengecek sebuah nilai di
dalam sebuah set nilia-nilai tertentu. Nilai-nilai tersebut
didapatkan dari hasil yang dikembalikan oleh subquery
kepada main query nya. Contoh:
Misalkan pada suatu database kita ingin menampilkan
ord_num, cust_code dan agent_code dari tabel orders
dimana agent_code adalah hasil seleksi dari agents yang
working_area nya bernilai ‘Bangalore’
SELECT ord_num, cust_code, agent_code
FROM orders
WHERE agent_code IN(
SELECT agent_code FROM agents
WHERE working_area='Bangalore');
b. ANY
Operator ANY berfungsi untuk membandingkan sebuah nilai satu
dan lainnya dalam sebuah set nilai-nilai tertentu. Operator yang
digunakan untuk ANY (dan diletakkan sebelum kata ANY) ialah :
=, <>, >, <, <=, >=
Keterangan:
• [< ANY] Kurang dari nilai tertinggi yang dikembalikan subquery
• [> ANY] Lebih dari nilai terendah yang dikembalikan subquery
• [=ANY] sama dengan operator IN
SELECT agent_code,agent_name,working_area,commissi
on
FROM agents
WHERE agent_code=ANY(
SELECT agent_code FROM customer
WHERE cust_country='UK');
Pada kasus diatas, data yang dipilih adalah yang agent_code nya
bernilai sama dengan data dari tabel customer yang cust_country
nya adalah ‘UK’.
c. ALL
Operator ALL berfungsi untuk
• [> ALL] More than the highest value returned by the subquery
• [< ALL] Less than the lowest value returned by the subquery
Misalnya untuk mencari karyawan yang usianya lebih tua
dibandingkan rata-rata usia semua karyawan yang berstatus
‘Manager’
Select emp_no, emp_name, emp_age, emp_job
from employeedb
Where emp_age > ALL (select avg(emp_age)
from emp
where emp_job = ‘Manager’)
5. Buat table dengan nama Sekolah, dengan field IdSekolah,
NoSekolah dan Kelas. Tipe datanya integer, integer dan varchar
(50). Isikan dan update data dengan statement query insert,
update, delete, select dan JOIN (left join, right join, full join).
Sertakan sintaks. Penjelasan dan outputnya!
• Jawab:
Menggunakan database dan membuat tabel
• Menggunakan database
DBSS065
Sintaks:
use DBSS065
• Membuat table Sekolah
Sintaks:
create table Sekolah(
idSekolah int not null,
primary key (idSekolah),
noSekolah int,
kelas varchar(50),
)
Insert into (memasukkan data ke table) dan kemudian
menampilkan data dengan select
• Insert into
Memasukkan data sesuai field dan tipe datanya. Sintaks:
insert into Sekolah values (211,01,'xii-mia, xi-mia, x-mia, xii-iis, xi-iis, x-iis')
insert into Sekolah values (212,02,'xii-mipa, xi-mipa, x-mipa, xii-ips, xi-ips, x-ips')
insert into Sekolah values (213,03,'xii-ipa, xi-ipa, x-ipa, xii-ips, xi-ips, x-ips')
insert into Sekolah values (214,04,'xii-ia, xi-ia, x-ia, xii-is, xi-is, x-is')
insert into Sekolah values (215,05,'xii-ips, xi-ips, x-ips, xii-bhs, xi-bhs, x-bhs')
insert into Sekolah values (216,06,'xii-iis, xi-iis, x-iis, xii-bhs, xi-bhs, x-bhs')
• Select * from
Memilih semua kolom/field pada table, dan mencetak semua datanya dari table Sekolah. Sintaks:
select* from Sekolah
Membuat table
create table akreditasi(
idSekolah int not null,
foreign key (idSekolah) references Sekolah,
no_akrdts char(2) not null,
primary key (no_akrdts),
akrdts char(1)
)
create table peringkat(
idSekolah int not null,
foreign key (idSekolah) references Sekolah,
koderanking char(4) not null,
primary key (koderanking),
ranking int
)
create table memiliki(
id int not null,
foreign key (id) references Sekolah(idSekolah),
ak char(2) not null,
foreign key (ak) references akreditasi(no_akrdts),
ra char(4) not null,
foreign key (ra) references peringkat(koderanking)
)
Mengisi tabel dan menampilkannya
• Insert into
Memasukkan data sesuai field dan tipe datanya.
Sintaks:
insert into akreditasi values (212,'a1','A')
insert into akreditasi values (213,'b1','B')
insert into akreditasi values (211,'c3','C')
insert into akreditasi values (216,'c2','C')
insert into peringkat values (212,'s517', 1)
insert into peringkat values (213,'d016', 2)
insert into peringkat values (215,'m317', 14)
insert into peringkat values (216,'j815', 8)
• Select*from
select* from akreditasi
select* from peringkat
Update (perbarui) data yang ada didalam table Sekolah
dan menampilkan table dengan data baru
• Update
Menggunakan update untuk memperbarui data yang sudah ada (mengganti nilai/isinya). Berikut kita akan mengubah
data field kelas dari baris data yang memiliki idSekolah = 214, diubah menjadi ‘XII-IA, XI-IA, X-IA, XII-IS, XI-IS, X-IS’.
Sintaks:
update Sekolah set kelas = 'XII-IA, XI-IA, X-IA, XII-IS, XI-IS, X-IS' where idSekolah = 214;
• Select * from Sekolah
Memilih semua kolom/field pada table, dan mencetak semua datanya dari table Sekolah.
Sintaks:
select* from Sekolah
Delete (hapus) sebaris data dengan ketentuan tertentu
dan menampilkan hasil modifikasinya
• Delete data
Menghapus sebuah baris data dalam table
Sekolah dengan menggunakan ketentuan
dimana data yang dihapus adalah yang
idSekolah nya 214.
Sintaksnya:
delete from Sekolah where
idSekolah=214;
• Select
Menampilkan data ter-update dari table
Sekolah. Sintaks:
select * from Sekolah
Left outer dan Right outer Join
• Left Outer
Pada left outer join, hasil akhirnya adalah union dari hasil akhir equi-join, termasuk beberapa baris dari tabel KIRI
yang tidak cocok (tidak punya pasangan di tabel kanan). Sintaksnya:
select a.idSekolah as 'ID Sekolah', a.akrdts as 'Akreditasi', b.ranking as 'Peringkat se-Kecamatan'
from akreditasi a left outer join peringkat b
on a.idSekolah=b.idSekolah;
• Right Outer
Pada right outer join, hasil akhirnya adalah union dari hasil akhir equi-join, termasuk beberapa baris dari tabel
KANAN yang tidak cocok (tidak punya pasangan di tabel kiri). Sintaksnya:
select b.idSekolah as 'ID Sekolah', a.akrdts as 'Akreditasi', b.ranking as 'Peringkat se-Kecamatan'
from akreditasi a right outer join peringkat b
on a.idSekolah=b.idSekolah;
6. Buatlah sebuah kasus dari soal no 5 yang
menggunakan subquery!
• Jawab:
Contoh Kasus yang bisa dibuat dari soal no.5, menggunakan
Subquery adalah:
Mencari sekolah mana saja kah yang memiliki ranking diatas ranking
sekolah ber-ID 215
SUBQUERY KASUS NO. 5
Pada kasus ini, yang harus ditemukan terlebih dahulu adalah:
Ranking dari Sekolah yang ber-ID 215. Maka, klausa subquerynya akan menyangkut
hal tersebut.
Kemudian, hasil dari subquery tadi dibandingkan dengan data-data ranking Sekolah
lainnya. Sehingga Query akhir nya adalah:
select a.idSekolah as 'ID Sekolah', a.noSekolah as 'Nomor Sekolah', b.ranking as 'Peringkat
Se-Kecamatan'
from Sekolah a join peringkat b on a.idSekolah= b.idSekolah and
b.ranking < (select ranking from peringkat where idSekolah=215)
order by b.ranking asc
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)

More Related Content

What's hot

Langkah - Langkah Perencanaan Sistem
Langkah - Langkah Perencanaan SistemLangkah - Langkah Perencanaan Sistem
Langkah - Langkah Perencanaan SistemRetrina Deskara
 
membuat function dalam mysql
membuat function dalam mysqlmembuat function dalam mysql
membuat function dalam mysqlsukangimpi
 
Pembuatan uml pada toko belanja online
Pembuatan uml pada toko belanja onlinePembuatan uml pada toko belanja online
Pembuatan uml pada toko belanja onlineandiseprianto
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomataBanta Cut
 
Array Dimensi banyak struktur data pertemuan ke 3
Array Dimensi banyak struktur data pertemuan ke 3Array Dimensi banyak struktur data pertemuan ke 3
Array Dimensi banyak struktur data pertemuan ke 3said zulhelmi
 
Peran, Fungsi, dan Tugas Manajer
Peran, Fungsi, dan Tugas ManajerPeran, Fungsi, dan Tugas Manajer
Peran, Fungsi, dan Tugas ManajerElita Yuliana
 
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAlgoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAri Septiawan
 
Distribusi hipergeometrik
Distribusi hipergeometrikDistribusi hipergeometrik
Distribusi hipergeometrikEman Mendrofa
 
STATISTIKA-Regresi dan korelasi
STATISTIKA-Regresi dan korelasiSTATISTIKA-Regresi dan korelasi
STATISTIKA-Regresi dan korelasiYousuf Kurniawan
 
Algoritma Apriori
Algoritma AprioriAlgoritma Apriori
Algoritma Aprioridedidarwis
 

What's hot (20)

Langkah - Langkah Perencanaan Sistem
Langkah - Langkah Perencanaan SistemLangkah - Langkah Perencanaan Sistem
Langkah - Langkah Perencanaan Sistem
 
membuat function dalam mysql
membuat function dalam mysqlmembuat function dalam mysql
membuat function dalam mysql
 
Pembuatan uml pada toko belanja online
Pembuatan uml pada toko belanja onlinePembuatan uml pada toko belanja online
Pembuatan uml pada toko belanja online
 
Distribusi poisson
Distribusi poissonDistribusi poisson
Distribusi poisson
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomata
 
Model transportasi metode least cost
Model transportasi metode least costModel transportasi metode least cost
Model transportasi metode least cost
 
VARIABEL RANDOM & DISTRIBUSI PELUANG
VARIABEL RANDOM & DISTRIBUSI PELUANGVARIABEL RANDOM & DISTRIBUSI PELUANG
VARIABEL RANDOM & DISTRIBUSI PELUANG
 
Array Dimensi banyak struktur data pertemuan ke 3
Array Dimensi banyak struktur data pertemuan ke 3Array Dimensi banyak struktur data pertemuan ke 3
Array Dimensi banyak struktur data pertemuan ke 3
 
Peran, Fungsi, dan Tugas Manajer
Peran, Fungsi, dan Tugas ManajerPeran, Fungsi, dan Tugas Manajer
Peran, Fungsi, dan Tugas Manajer
 
Model dan Simulasi
Model dan SimulasiModel dan Simulasi
Model dan Simulasi
 
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAlgoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
 
Modul statistika-ii-part-2
Modul statistika-ii-part-2Modul statistika-ii-part-2
Modul statistika-ii-part-2
 
01 02-pseudocode
01 02-pseudocode01 02-pseudocode
01 02-pseudocode
 
Teori Bilangan Biner
Teori Bilangan BinerTeori Bilangan Biner
Teori Bilangan Biner
 
Fungsi non linier
Fungsi non linierFungsi non linier
Fungsi non linier
 
Distribusi hipergeometrik
Distribusi hipergeometrikDistribusi hipergeometrik
Distribusi hipergeometrik
 
Jawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihanJawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihan
 
STATISTIKA-Regresi dan korelasi
STATISTIKA-Regresi dan korelasiSTATISTIKA-Regresi dan korelasi
STATISTIKA-Regresi dan korelasi
 
Algoritma Apriori
Algoritma AprioriAlgoritma Apriori
Algoritma Apriori
 
Algoritma brute force
Algoritma brute forceAlgoritma brute force
Algoritma brute force
 

Similar to Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)

Materi SQL Query Berjenjang
Materi SQL Query Berjenjang Materi SQL Query Berjenjang
Materi SQL Query Berjenjang Ngurah Endra
 
Laporan 1 annissaul hidayah 11120018_6
Laporan 1  annissaul hidayah 11120018_6Laporan 1  annissaul hidayah 11120018_6
Laporan 1 annissaul hidayah 11120018_6Saul Anizsa
 
SQL Query Comparison.pptx
SQL Query Comparison.pptxSQL Query Comparison.pptx
SQL Query Comparison.pptxssuser0c38031
 
matrei perkuliahana tentang SQL Overview.ppt
matrei perkuliahana tentang SQL Overview.pptmatrei perkuliahana tentang SQL Overview.ppt
matrei perkuliahana tentang SQL Overview.ppterlandarmawan2
 
Praktikum 03 Sistem Basis Data
Praktikum 03 Sistem Basis DataPraktikum 03 Sistem Basis Data
Praktikum 03 Sistem Basis DataAditya Nugroho
 
T3 – Query Lanjutan [1]
T3 – Query Lanjutan [1]T3 – Query Lanjutan [1]
T3 – Query Lanjutan [1]Siska Amelia
 
Modul operasi hitung ms.excel
Modul operasi hitung ms.excelModul operasi hitung ms.excel
Modul operasi hitung ms.excelAmalia Prahesti
 
7 Materi Kuliah Bahasa SQL
7 Materi Kuliah Bahasa SQL7 Materi Kuliah Bahasa SQL
7 Materi Kuliah Bahasa SQLSimon Patabang
 
05. manipulasi data update,delete &amp; seleksi
05. manipulasi data   update,delete &amp; seleksi05. manipulasi data   update,delete &amp; seleksi
05. manipulasi data update,delete &amp; seleksiFakhrian Fadlia Adiwijaya
 
Microsoft Excel Basic to Advance - Sales Analysis
Microsoft Excel Basic to Advance - Sales AnalysisMicrosoft Excel Basic to Advance - Sales Analysis
Microsoft Excel Basic to Advance - Sales AnalysisElyada Wigati Pramaresti
 
Fungsi dasar rumus microsoft excel
Fungsi dasar rumus microsoft excelFungsi dasar rumus microsoft excel
Fungsi dasar rumus microsoft excelBella Andreana
 
Laporan praktikum modul 8 (dml part 2)
Laporan praktikum modul 8 (dml part 2)Laporan praktikum modul 8 (dml part 2)
Laporan praktikum modul 8 (dml part 2)Devi Apriansyah
 
Tutorial membuat form dalam netbeans versi2
Tutorial membuat form dalam netbeans versi2Tutorial membuat form dalam netbeans versi2
Tutorial membuat form dalam netbeans versi2zuckcruel
 
T4 - Query Lanjutan [2]
T4 - Query Lanjutan [2]T4 - Query Lanjutan [2]
T4 - Query Lanjutan [2]Siska Amelia
 
Bab 7 ms excel ii
Bab 7   ms excel iiBab 7   ms excel ii
Bab 7 ms excel iilukmanbooms
 
Part 11 table join
Part 11  table joinPart 11  table join
Part 11 table joinDenny Yahya
 

Similar to Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES) (20)

Materi sql server 3 eresha
Materi sql server 3 ereshaMateri sql server 3 eresha
Materi sql server 3 eresha
 
Materi SQL Query Berjenjang
Materi SQL Query Berjenjang Materi SQL Query Berjenjang
Materi SQL Query Berjenjang
 
Laporan 1 annissaul hidayah 11120018_6
Laporan 1  annissaul hidayah 11120018_6Laporan 1  annissaul hidayah 11120018_6
Laporan 1 annissaul hidayah 11120018_6
 
Oracle sql
Oracle sqlOracle sql
Oracle sql
 
Tutorial membuat form dalam netbeans
Tutorial membuat form dalam netbeansTutorial membuat form dalam netbeans
Tutorial membuat form dalam netbeans
 
SQL Query Comparison.pptx
SQL Query Comparison.pptxSQL Query Comparison.pptx
SQL Query Comparison.pptx
 
matrei perkuliahana tentang SQL Overview.ppt
matrei perkuliahana tentang SQL Overview.pptmatrei perkuliahana tentang SQL Overview.ppt
matrei perkuliahana tentang SQL Overview.ppt
 
Praktikum 03 Sistem Basis Data
Praktikum 03 Sistem Basis DataPraktikum 03 Sistem Basis Data
Praktikum 03 Sistem Basis Data
 
T3 – Query Lanjutan [1]
T3 – Query Lanjutan [1]T3 – Query Lanjutan [1]
T3 – Query Lanjutan [1]
 
Modul operasi hitung ms.excel
Modul operasi hitung ms.excelModul operasi hitung ms.excel
Modul operasi hitung ms.excel
 
7 Materi Kuliah Bahasa SQL
7 Materi Kuliah Bahasa SQL7 Materi Kuliah Bahasa SQL
7 Materi Kuliah Bahasa SQL
 
05. manipulasi data update,delete &amp; seleksi
05. manipulasi data   update,delete &amp; seleksi05. manipulasi data   update,delete &amp; seleksi
05. manipulasi data update,delete &amp; seleksi
 
Microsoft Excel Basic to Advance - Sales Analysis
Microsoft Excel Basic to Advance - Sales AnalysisMicrosoft Excel Basic to Advance - Sales Analysis
Microsoft Excel Basic to Advance - Sales Analysis
 
Fungsi dasar rumus microsoft excel
Fungsi dasar rumus microsoft excelFungsi dasar rumus microsoft excel
Fungsi dasar rumus microsoft excel
 
Laporan praktikum modul 8 (dml part 2)
Laporan praktikum modul 8 (dml part 2)Laporan praktikum modul 8 (dml part 2)
Laporan praktikum modul 8 (dml part 2)
 
Tutorial membuat form dalam netbeans versi2
Tutorial membuat form dalam netbeans versi2Tutorial membuat form dalam netbeans versi2
Tutorial membuat form dalam netbeans versi2
 
T4 - Query Lanjutan [2]
T4 - Query Lanjutan [2]T4 - Query Lanjutan [2]
T4 - Query Lanjutan [2]
 
Andika ppt
Andika pptAndika ppt
Andika ppt
 
Bab 7 ms excel ii
Bab 7   ms excel iiBab 7   ms excel ii
Bab 7 ms excel ii
 
Part 11 table join
Part 11  table joinPart 11  table join
Part 11 table join
 

Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)

  • 1. SUBQUERY DAN VIEW Oleh NURDIFA FEBRIANTI 165150200111065
  • 2. Cara mengerjakan! • Siapkan buku bacaan, catatan dan laptop! • Catat permasalahan yang akan muncul • Baca buku terkait subquery • Jawablah permasalahan yang muncul sesuai dengan pemahaman anda tentang masalah tersebut • Dikumpulkan di edmodo dengan nama file Tsubquery_NIM.ppt
  • 3. 1. Jelaskan apa yang dimaksud dengan: subquery dan mainquery! Berikan contohnya! Jawab: Subquery (subselect /nested select /inner-select) adalah query yang ada di dalam perintah SQL lain / main query atau query utamanya. Subquery bisa nested pada statement SELECT, UPDATE, DELETE dan INSERT. Subquery biasanya ditambahkan di sintaks WHERE nya. Subquery secara nyata mampu menyederhanakan persoalan-persoalan rumit berkaitan query data. Sebagai contoh, misalkan pernyataan sbb: “Dapatkan nama, NIM dan total nilai mahasiswa yang memiliki nilai lebih tinggi dari pada mahasiswa yang memiliki NIM 104” Secara main query, diperlukan dua tahapan untuk menyelesaikan kasus di atas: • SELECT nim dan total_nilai dari (FROM) tabel NILAI dimana (WHERE) nim = ‘104’. Misal didapatkan total_nilai mahasiswa tersebut adalah 80. • SELECT nama dan nim mahasiswa serta total_nilai mahasiswa dari (FROM) tabel mahasiswa (objek a) dan tabel NILAI (objek b) dimana (WHERE) b.total_nilai > 80 Query yang menerapkan Subquery nya: Dapatkan nama, nim dan total nilai mahasiswa dari tabel mahasiswa dan tabel nilai dimana (WHERE) nilai mahasiswa tersebut lebih tinggi dari nilai mahasiswa ber- NIM 104.
  • 4. 2. Klausa apa sajakah yang digunakan pada subquery? Berikan contoh sintaksnya! • Jawab: Klausa yang digunakan untuk subquery biasanya adalah SELECT (harus), WHERE, FROM(harus), HAVING dan atau GROUP BY. Contoh Sintaksnya (dari persoalan di no. 1): SELECT a.studentid, a.name, b.total_marks FROM student a, marks b WHERE a.studentid = b.studentid AND b.total_marks > (SELECT total_marks FROM marks WHERE studentid = 'V002'); Sintaks diatas diambil dari kasus dimana terdapat 2 tabel: student dan marks. Tabel student dialiaskan a dan marks dialiaskan b. Di dalam WHERE pada main query, terdapat 3 statement lagi yang diberi tanda kurung, itulah subquery nya, yang menyeleksi data di main query berdasarkan data yang ditemukan di subquery. Subquery diatas menggunakan ANY (akan dijelaskan di no. 4)
  • 5. 3. Single row, multiple row dan multiple column merupakan …. ? Jelaskan! • Jawab: Single, multiple row dan multiple column merupakan tipe-tipe Subquery. o Single row subquery : Subquery yang hanya mengembalikan data sebanyak 1 baris atau kurang. o Multiple row subquery : Subquery yang mengembalikan data sebanyak 1 baris atau lebih. o Multiple column subqueries : Subquery yang mengembalikan data sebanyak 1 kolom atau lebih. Jika kita ingin hasil yang dikeluarkan oleh Subquey memungkinkan untuk berupa 1 atau lebih baris/kolom, maka Subquery biasanya diletakkan di klausa FROM dan WHERE
  • 6. 4. Jelaskan kegunaan dari operator IN, ALL, ANY dalam multiple row pada subquery! Sertakan contohnya! • Jawab: a. IN Operator IN berfungsi untuk mengecek sebuah nilai di dalam sebuah set nilia-nilai tertentu. Nilai-nilai tersebut didapatkan dari hasil yang dikembalikan oleh subquery kepada main query nya. Contoh: Misalkan pada suatu database kita ingin menampilkan ord_num, cust_code dan agent_code dari tabel orders dimana agent_code adalah hasil seleksi dari agents yang working_area nya bernilai ‘Bangalore’ SELECT ord_num, cust_code, agent_code FROM orders WHERE agent_code IN( SELECT agent_code FROM agents WHERE working_area='Bangalore');
  • 7. b. ANY Operator ANY berfungsi untuk membandingkan sebuah nilai satu dan lainnya dalam sebuah set nilai-nilai tertentu. Operator yang digunakan untuk ANY (dan diletakkan sebelum kata ANY) ialah : =, <>, >, <, <=, >= Keterangan: • [< ANY] Kurang dari nilai tertinggi yang dikembalikan subquery • [> ANY] Lebih dari nilai terendah yang dikembalikan subquery • [=ANY] sama dengan operator IN SELECT agent_code,agent_name,working_area,commissi on FROM agents WHERE agent_code=ANY( SELECT agent_code FROM customer WHERE cust_country='UK'); Pada kasus diatas, data yang dipilih adalah yang agent_code nya bernilai sama dengan data dari tabel customer yang cust_country nya adalah ‘UK’. c. ALL Operator ALL berfungsi untuk • [> ALL] More than the highest value returned by the subquery • [< ALL] Less than the lowest value returned by the subquery Misalnya untuk mencari karyawan yang usianya lebih tua dibandingkan rata-rata usia semua karyawan yang berstatus ‘Manager’ Select emp_no, emp_name, emp_age, emp_job from employeedb Where emp_age > ALL (select avg(emp_age) from emp where emp_job = ‘Manager’)
  • 8. 5. Buat table dengan nama Sekolah, dengan field IdSekolah, NoSekolah dan Kelas. Tipe datanya integer, integer dan varchar (50). Isikan dan update data dengan statement query insert, update, delete, select dan JOIN (left join, right join, full join). Sertakan sintaks. Penjelasan dan outputnya! • Jawab:
  • 9. Menggunakan database dan membuat tabel • Menggunakan database DBSS065 Sintaks: use DBSS065 • Membuat table Sekolah Sintaks: create table Sekolah( idSekolah int not null, primary key (idSekolah), noSekolah int, kelas varchar(50), )
  • 10.
  • 11. Insert into (memasukkan data ke table) dan kemudian menampilkan data dengan select • Insert into Memasukkan data sesuai field dan tipe datanya. Sintaks: insert into Sekolah values (211,01,'xii-mia, xi-mia, x-mia, xii-iis, xi-iis, x-iis') insert into Sekolah values (212,02,'xii-mipa, xi-mipa, x-mipa, xii-ips, xi-ips, x-ips') insert into Sekolah values (213,03,'xii-ipa, xi-ipa, x-ipa, xii-ips, xi-ips, x-ips') insert into Sekolah values (214,04,'xii-ia, xi-ia, x-ia, xii-is, xi-is, x-is') insert into Sekolah values (215,05,'xii-ips, xi-ips, x-ips, xii-bhs, xi-bhs, x-bhs') insert into Sekolah values (216,06,'xii-iis, xi-iis, x-iis, xii-bhs, xi-bhs, x-bhs') • Select * from Memilih semua kolom/field pada table, dan mencetak semua datanya dari table Sekolah. Sintaks: select* from Sekolah
  • 12.
  • 13. Membuat table create table akreditasi( idSekolah int not null, foreign key (idSekolah) references Sekolah, no_akrdts char(2) not null, primary key (no_akrdts), akrdts char(1) ) create table peringkat( idSekolah int not null, foreign key (idSekolah) references Sekolah, koderanking char(4) not null, primary key (koderanking), ranking int ) create table memiliki( id int not null, foreign key (id) references Sekolah(idSekolah), ak char(2) not null, foreign key (ak) references akreditasi(no_akrdts), ra char(4) not null, foreign key (ra) references peringkat(koderanking) )
  • 14.
  • 15.
  • 16. Mengisi tabel dan menampilkannya • Insert into Memasukkan data sesuai field dan tipe datanya. Sintaks: insert into akreditasi values (212,'a1','A') insert into akreditasi values (213,'b1','B') insert into akreditasi values (211,'c3','C') insert into akreditasi values (216,'c2','C') insert into peringkat values (212,'s517', 1) insert into peringkat values (213,'d016', 2) insert into peringkat values (215,'m317', 14) insert into peringkat values (216,'j815', 8) • Select*from select* from akreditasi select* from peringkat
  • 17.
  • 18. Update (perbarui) data yang ada didalam table Sekolah dan menampilkan table dengan data baru • Update Menggunakan update untuk memperbarui data yang sudah ada (mengganti nilai/isinya). Berikut kita akan mengubah data field kelas dari baris data yang memiliki idSekolah = 214, diubah menjadi ‘XII-IA, XI-IA, X-IA, XII-IS, XI-IS, X-IS’. Sintaks: update Sekolah set kelas = 'XII-IA, XI-IA, X-IA, XII-IS, XI-IS, X-IS' where idSekolah = 214; • Select * from Sekolah Memilih semua kolom/field pada table, dan mencetak semua datanya dari table Sekolah. Sintaks: select* from Sekolah
  • 19.
  • 20. Delete (hapus) sebaris data dengan ketentuan tertentu dan menampilkan hasil modifikasinya • Delete data Menghapus sebuah baris data dalam table Sekolah dengan menggunakan ketentuan dimana data yang dihapus adalah yang idSekolah nya 214. Sintaksnya: delete from Sekolah where idSekolah=214; • Select Menampilkan data ter-update dari table Sekolah. Sintaks: select * from Sekolah
  • 21.
  • 22. Left outer dan Right outer Join • Left Outer Pada left outer join, hasil akhirnya adalah union dari hasil akhir equi-join, termasuk beberapa baris dari tabel KIRI yang tidak cocok (tidak punya pasangan di tabel kanan). Sintaksnya: select a.idSekolah as 'ID Sekolah', a.akrdts as 'Akreditasi', b.ranking as 'Peringkat se-Kecamatan' from akreditasi a left outer join peringkat b on a.idSekolah=b.idSekolah; • Right Outer Pada right outer join, hasil akhirnya adalah union dari hasil akhir equi-join, termasuk beberapa baris dari tabel KANAN yang tidak cocok (tidak punya pasangan di tabel kiri). Sintaksnya: select b.idSekolah as 'ID Sekolah', a.akrdts as 'Akreditasi', b.ranking as 'Peringkat se-Kecamatan' from akreditasi a right outer join peringkat b on a.idSekolah=b.idSekolah;
  • 23.
  • 24.
  • 25.
  • 26. 6. Buatlah sebuah kasus dari soal no 5 yang menggunakan subquery! • Jawab: Contoh Kasus yang bisa dibuat dari soal no.5, menggunakan Subquery adalah: Mencari sekolah mana saja kah yang memiliki ranking diatas ranking sekolah ber-ID 215
  • 27. SUBQUERY KASUS NO. 5 Pada kasus ini, yang harus ditemukan terlebih dahulu adalah: Ranking dari Sekolah yang ber-ID 215. Maka, klausa subquerynya akan menyangkut hal tersebut. Kemudian, hasil dari subquery tadi dibandingkan dengan data-data ranking Sekolah lainnya. Sehingga Query akhir nya adalah: select a.idSekolah as 'ID Sekolah', a.noSekolah as 'Nomor Sekolah', b.ranking as 'Peringkat Se-Kecamatan' from Sekolah a join peringkat b on a.idSekolah= b.idSekolah and b.ranking < (select ranking from peringkat where idSekolah=215) order by b.ranking asc