Jumlah
5
Tabel 0-4 Hasil Query Jumlah matakuliah dan Sks per Semester
Semester JmlMK JmlSks
1 6 20
2 8 21
3 7 20
4 7 21
Tabel Jurusan
KodeJur NamaJur
Mahasiswa.kodeJur = Jurusan.KodeJur
SELECT nama_kolom
FROM nama_tabel_1
INNER JOIN nama_tabel_2
ON kolom_relasi_tabel
SELECT nama_kolom
FROM nama_tabel AS nama_alias
SELECT nama_kolom
FROM nama_tabel_1
LEFT JOIN nama_tabel_2
ON relasi_tabel
Perintah LEFT JOIN ini akan menghasilkan seluruh baris data
pada nama_tabel_1 (yang ada diseblah kiri) walaupun dalam relasi
tidak singkron dengan nama_tabel_2 (disebelah kanan).
Ketika data tidak ditemukan pada nama_tabel_2, maka akan
diberikan nilai NULL pada data tersebut.
Berikut perintah LEFT JOIN yang akan menampilkan data
pengarang yang nama kotanya sesuai dengan kota penerbit
SELECT nama_kolom
FROM nama_tabel_1
RIGHT JOIN nama_tabel_2
ON relasi_tabel
SELECT nama_kolom
FROM nama_tabel_1
FULL JOIN nama_tabel_2
ON relasi_tabel
1.5 Subquery
Subquery adalah sebuah bentuk perintah SELECT yang
mengembalikan nilai yang ada kepada perintah lain berupa perintah
SELECT, INSERT, UPDATE dan DELETE atau dengan kata lain subquery
adalah query dalam query.
Subquery merupakan alternative dalam membuat perintah SQL
yang menggunakan JOIN, dimana hal ini dibuat untuk meningkatkan
performance terhadap perintah query tersebut. namun demikian,
tergantung kepada data jika kalau ingin dibandingkan mana yang lebih
baik antara subquery dengan JOIN ini.
Subquery dapat ditempatkan pada perintah SELECT setelah
klausa Select, From, Where, Group BY dan Having. Umumnya perintah
sub Query ini mengikuti format sebagai berikut:
WHERE ekspresi [NOT] IN (subquery)
WHERE ekspresi operator perbandingan [ANY | ALL] (subquery)
WHERE [NOT] EXISTS (subquery)
Operator IN
Subquery dengan menggunakan operator IN adalah akan me-list
hasil dari subquery untuk dibandingkan dengan ekspresi where yang
diberikan. Subquery akan dijalankan terlebih dahulu baru kemudian
query pemanggilnya akan dijalankan.
Berikut contoh perintah Subquery untuk menampilkan nama
penerbit untuk buku yang berjenis business dengan menggunakan
operator IN
SELECT NamaPen
FROM Penerbit
WHERE kodePen IN
(SELECT kodePen
FROM Buku
WHERE jenis='business')
SELECT NamaPen
FROM Penerbit
WHERE kodePen NOT IN
(SELECT kodePen
FROM Buku
WHERE jenis='business')
SELECT NamaPen
FROM Penerbit p
WHERE EXISTS
(SELECT *
FROM Buku b
WHERE b.KodePen= p.KodePen
AND jenis='business')
SELECT NamaPen
FROM Penerbit p
WHERE NOT EXISTS
(SELECT *
FROM Buku b
WHERE b.KodePen= p.KodePen
AND jenis='business')
Output yang dihasilkan dari perintah Query tersebut adalah:
Tabel 0-20 Hasil Query Operator Not Exists
NamaPen
Binnet & Hardley
Five Lakes Publishing
Ramona Publishers
GGG&G
Scootney Books
Lucerne Publishing
Operator Komporasi
Subquery memungkinkan juga menggunakan operator
komparasi yang terdiri dari =, < >, >, > =, <, ! >, ! <, or < =. Berbeda
dengan operator sebelum penggunaaan operator ini subquery harus
menghasilkan data tunggal yang menjadi parameter untuk query
pemanggilnya.
SELECT NamaPeng
FROM Pengarang
WHERE KotaTinggal =
(SELECT Kota
FROM Penerbit
WHERE namaPen='Algodata Infosistems')