Subquey?? gampangnya, kita bisa mengartikan subquery adalah query didalam query. Tapi pengertian dari buku, subquery merupakan statement SELECT yang dilampirkan sebagai klausa dalam SQL.
Penulisannya adalah sebagai berikut :
SELECT..... --> main query
FROM.....
WHERE....... ( SELECT ....... --> subquery
FROM ........
WHERE ...... )
Subquery mengembalikan nilai ke main query. Manfaat Subquery adalah untuk mendapatkan suatu nilai yang tidak diketahui.
Contoh subquery untuk menampilkan nama mahasiswa dan nilai pada tabel mhs dan ambilmk yang memiliki nilai tertinggi dalam kodemk dengan kode A02.
SELECT mhs.namamhs, ambilmk.nilai FROM mhs, ambilmk WHERE mhs.nim = ambilmk.nim AND ambilmk.kodemk = "A02" AND ambilmk.nilai = (SELECT max(nilai) FROM ambilmk WHERE ambilmk.kodemk = "A02").
Subquery banyak kolom
Pada subquery dengan banyak kolom, tiap baris dari main query dibandingkan dengan nilai dari subquery multiple-row dan multiple-colom. Pembanding kolom dalam subquery banyak kolom dapat berupa pambanding berpasangan dan pembanding tidak berpasangan.
Penggunaan subquery dalam klausa FROM
Query dapat diletakan didalam klausa FROM untuk membentuk tabel temporer. Query seperti ini dikenal dengan istilah inline view, karena tidak membentuk objek database.
Ekspresi scalar subquery
Ekspresi scalar subquery merupakan subquery yang mengembalikan hanya satu nilai kolom dari satu baris. Scalar subquery pada standart SQL-92 hanya terbatas pada :
- SELECT statement (klausa FROM dan WHERE saja)
- Daftar value dari statement INSERT
- Kondisi dan ekspresi sebagai bagian dari perintah DECODE dan CASE
- Semua klausa dari SELECT statement kecuali GRUP BY
Korelasi subquery dapat digunakan untuk pemrosesan baris per baris. Tip-tiap subquery dijalankan sekali untuk seriap baris dari outer query.
Korelasi subquery juga dapat digunakan untuk Meng-update baris pada satu table berdasarkan pada baris dari table yang lain, korelasi seperti ini dinamakan dengan Korelasi Update.
Korelasi subquery juga dapat digunakan untuk manghapus baris pada satu table berdasarkan pada baris dari table lain, korelasi seperti ini dinamakan Korelasi Delete.
Penggunakan operator EXIST dan NOT EXIST
digunakan untuk menguji keberadaan dari baris dalam himpunan hasil dari subquery. Jika ditemukan maka pencarian tidak dilanjutkan dalam inner query dan kondisiditandai TRUE. Jika tidak ditemukan, maka kondisi ditandai FALSE dan kondisi pencarian dilanjutkan dalam inner query.
Penggunaan klausa WITH
kita dapat menggunakan blok query yang sama dalam statement SELECT pada saat terjadi lebih dari sekali dalam complex query. Klausa WITH mendapatkan hasil dari blok query dan menyimpannya dalam tablescaape temporer kepunyaan user. Klausa WITH dapat meningkatkan performansi.
Optimasi Query
Data yang
tersimpan dalam jumlah yang
sangat besar, Terdapat
aturan system informasi
dalam organisasi, system
basis data dilihat
sebagai bagian system informasi dalam aplikasi berskala besar.
Untuk meningkatkan
unjuk kerja tidak hanya desain logik saja yang diperhatikan tapi juga struktur fisik penyimpanan
data. Penggunaan
Index pada database
secara tepat, dapat
digunakan untuk meningkatkan kecepatan akses data.
Informasi tentang
jalur akses yang digunakan oleh
database untuk melaksanakan query dalam database Oracle dapat dengan
menggunakan perintah explain plan. Selain optimasi
perintah SQL, faktor
lain yang berpengaruh
terhadap kecepatan akses data adalah optimasi aplikasi dan
penggunaan cluster dan index.
Pada sebuah database
engine semisal pada database Oracle kecepatan akses data dipengaruhi
oleh beberapa komponen
arsitektur pembentuknya seperti
shared pool, buffer cache, dan
redo log buffer.
Optimasi aplikasi
tergantung pada efisiensi
penggunaan obyek yang mendukung kecepatan akses
seperti index atau
cluster, dan normalisasi
data pada desain database.
Tidak ada komentar:
Posting Komentar