SUBQUERY
TUJUAN LATIHAN
PERLENGKAPAN LATIHAN
1. Modul Praktikum Basis Data
2. MySQL 5.5.27 (Apache 2.4.3) ke atas
3. Browser
4. Navicat Premium
MATERI PRAKTIKUM
1. Pengenalan Subquery
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
Subquery membuat query-query menjadi tersusun, sehingga ada kemungkinan untuk
memisahkan / memberi batasan area untuk setiap bagian statement.
Subquery menyediakan cara alternatif untuk menjalankan operasi-operasi yang dalam
keadaan lain akan membutuhkan JOIN dan UNION yang kompleks.
Subquery lebih mudah dibaca dibanding JOIN atau UNION yang kompleks.
Sebuah subquery bisa mengembalikan scalar (single value/satu nilai), single row (satu baris), single
column (satu kolom), atau table (satu/lebih baris dari satu/lebih kolom). Ada beberapa batasan untuk
tipe statement yang subquery bisa digunakan di dalamnya. Sebuah subqeury dengan SELECT yang
biasa dapat berisikan: DISTINCT, GROUP BY, ORDER BY, LIMIT, joins, indexhints, UNION,comments,
dan fungsi-fungsi lainnya.
Sedangkan, outer statement (statement yang paling luar) yang memiliki subquery tidak hanya bisa
menggunakan SELECT saja, tapi dia juga bisa menggunakan INSERT, UPDATE, DELETE, SET,
atau DO.
2. Penggunaan Perbandingan (Comparison) untuk Subquery
Pada umumnya, jika terdapat fungsi perbadingan di subquery, bentuk querynya akan sebagai
berikut:
Contohnya adalah:
Di bawah ini terdapat pula contoh subquery yang menggunakan comparison dan tidak
menggunakan hubungan JOIN di dalamnya. Query ini mengambil semua baris di tabel t1 dimana
kolom nilai dari column1 ada sama dengan nilai maksimum dari column2 yang ada di tabel t2:
SELECT * FROM t1
2
3. Penggunaan Subquery SELECT Setelah FROM
Subquery dengan statement SELECT selain bisa digunakan setelah operator comparison, juga bisa
digunakan setelah FROM. Sintaksnya adalah sebagai berikut:
Tulisan [AS] name adalah wajib dicantumkan, karena setiap tabel setelah kata FROM harus memiliki
nama. Setiap nama kolom di subquery select harus memiliki nama yang unik.
SELECT sb1,sb2,sb3
Di bawah ini adalah contoh lain penggunaan subquery setelah FROM. Karena AVG(SUM(column1))
tidak bisa dilakukan. Maka, SUM(column1) dibuat menjadi subquery setelah FROM.
SELECT AVG(sum_column1)
Sedangkan, subquery (sum_column1) bisa dipanggil oleh outer query yang membutuhkan,
contohnya untuk dihitung AVERAGE-nya seperti contoh di atas.
LATIHAN PRAKTIKUM
3
Soal Praktik
1. Tampilkan data mobil dari pelanggan yang menyewa mobil paling lama !
2. Tampilkan data mobil dengan nama pegawai dan pelanggan yang menyewa mobil paling murah.
3. Tampilkan nama pegawai yang melayani jumlah transaksi paling banyak. (Menampilkan kolom
pegawai dan total transaksi)