BAB V
SUB QUERY
A. DESKRIPSI
Sub Query adalah query didalam query. Artinya seleksi data berdasarkan dari hasil
seleksi data yang telah ada. Sintak SQL nya sama dengan sintak SQL pada umumnya,
hanya saja kondisi setelah where atau from diikuti dengan query baru atau sub query.
Sintak SQL nya sebagai berikut:
1
PRAKTEK BASIS DATA 2016
KASUS
PERTANYAAN
1. Dari data mahasiswa yang terdaftar, siapa sajakah (nama) mahasiswa yang tidak
mengambil matakuliah A01?
2. Hapuslah data mahasiswa (dari tabel mhs) yang memiliki IPK terendah (kasus di DO).
SOLUSI NO 1
STEP PERTAMA :
OUTPUT
2
PRAKTEK BASIS DATA 2016
STEP KEDUA :
OUTPUT
SOLUSI NO 2
STEP PERTAMA :
OUTPUT
STEP KEDUA :
3
PRAKTEK BASIS DATA 2016
OUTPUT
Sudah Jelas bahwa nanti yang akan terhapus nim 002 , agar kriteria penghapusannya jelas
maka kita akan persempit tampilannya, :
sELECT tm_ambilmk.nim
FROM tm_ambilmk,tm_mk
WHERE tm_ambilmk.kodeMK = tm_mk.kodeMK
GROUP BY tm_ambilmk.nim
ORDER BY sum(tm_ambilmk.nilai * tm_mk.sks)/sum(tm_mk.sks)LIMIT 1)
OUTPUT:
STEP KETIGA :
Tambahkan fungsi untuk menghapus mahasiswa , dengan kriteria nim yang dibuat di step
kedua
OUTPUT
4
PRAKTEK BASIS DATA 2016
KASUS 2
Dari tabel pendaftar yang ada, dapat kita ketahui bahwa ada 4 orang dengan nilai tertentu,
dengan data ini kita akan ambil tiga (3) orang dengan nilai terbaik dan dan merubah status ketiga
orang tersebut menjadi lulus. Dengan kata lain akan ada satu orang yang tidak lulus seleksi ini.
STEP PERTAMA
Tampilkan 3 nilai terbesar
OUTPUT
STEP KEDUA
Gabungkan perintah ubah statusnya sehingga menjadi sperti berikut ini
OUTPUT
5
PRAKTEK BASIS DATA 2016
Jika terjadi eror 1235 seperti ini buatlah Sub Query didalamnya
Seperti berikut ini :
UPDATE pendaftar SET status = 'lulus seleksi' WHERE id IN (
sELECT id FROM (SELECT id FROM pendaftar ORDER BY nilai DESC LIMIT 3
) as kode
);
OUTPUT