advertisment

visitors

Rabu, 02 Januari 2013

SUBQUERY


Subquery merupakan sebuah query didalam query. Pengertian dari subquery adalah sebuah pernyataan SELECT yang dilampirkan sebagai klausa dalam SQL pernyataan yang lain. subquery digunakan untuk menentukan suatu nilai yang belum diketahui.
Contohnya adalah : SELECT ..... FROM ..... WHERE... (SELECT...FROM ....WHERE)
Yang tercetak hitam adalah sebuah main query dan yang tercetak merah adalah sebuah subquery. Pada pernyataan diatas subquey dijalankan terlebih dahulu kemudian menjalankan main query jadi main query akan dijalankan ketika sudah mendapat inputan dari subquery tersebut.
Contoh penulisan dari subquery adalah :
SELECT select_list
FROM table
WHERE expr operator (SELECT select_list
                                      FROM table) ;
Pembanding kolom dalam subquery banyak kolom dapat berupa,yaitu:
  1. Pembandingan berpasangan
  2. Pembandingan tidak berpasangan.
Pada penulisan Query bisa diletakkan di dalam klausa FROM untuk membentuk tabel temporer atau disebut juga dengan inline view,  karena  tidak membentuk object database.
Ekspresi scalar subquery adalah 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
Pada standart SQL-99, scalar subqueries dapat diguanakan dalam :
·  Kondisi dan ekspresi sebagai bagian dari perintah DECODE dan CASE.  
·  Semua klausa dari SELECT Statement kecuali GROUP BY.
Korelasi Subquery
Korelasi  SubQuery  digunakan  untuk  pemrosesan  baris  per  baris. Tiap-tiap  subquery dijalankan sekali untuk setiap baris dari outer query.  Prosesnya adalah sebagai berikut :
Pada proses  korelasi  dimulai  dengan mengambil  baris  dari  outer  query,  kemudian  inner  query  dijalankan  dengan  menggunakan  nilai  baris  kandidat,  kemudian  nilai  dari  inner  query  digunakan  untuk  melakukan  kualifikasi  atau mendiskualifikasi baris kandidat.
Fungsi Korelasi Subquery
Korelasi  Subquery  juga  dapat  digunakan  untuk  meng-update  baris  pada  satu  table berdasarkan pada baris dari table yang lain, korelasi seperti itu dinamakan dengan  Korelasi Update. Korelasi Subquery juga dapat digunakan untuk menghapus baris pada satu table  berdasarkan  pada  baris  dari  table  yang  lain,  korelasi  seperti  itu  dinamakan  dengan Korelasi Delete.
Operator EXISTS  dan NOT EXIST digunakan  untuk menguji keberadaan  dari baris dalam himpunan hasil dari subquery.  
Jika ditemukan, maka :
·  pencarian tidak dilanjutkan dalam inner query dan kondisi ditandai TRUE.
Jika tidak ditemukan, maka :
·  Kondisi ditandai FALSE dan kondisi pencarian dilanjutkan dalam inner query.
With
Dengan menggunakan klausa WITH, kita dapat

Tidak ada komentar:

Posting Komentar