Rabu, 25 Januari 2017

SubQuery ( Query Berjenjang )

Sub Query
( Query Berjenjang )

Pengertian Sub Query
   - Subquery adalah sebuah query (perintah Select) yang terdapat query lain didalamnya.

 Fungsi Sub Query
- Untuk menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui.
- Meng-copy data dari satu tabel ke tabel lain.
- Menerima data dari inline view
- Mengambil data dari tabel lain untuk kemudian di update ke tabel yang dituju
- Menghapus baris dari satu tabel berdasarkan baris dari tabel lain

Betuk Umum
==> Subquery bisa diletakkan pada field list atau pada klausa WHERE atau HAVING, dimana subquery tersebut menyediakan satu atau lebih nilai yang diperiksa.

    ==> Didalam WHERE dan HAVING subquery memiliki tiga bentuk yaitu:
–comparison [ANY|ALL|SOME] (subquery)
–expression [NOT] IN (subquery)
–[NOT] EXISTS (subquery)

Ada Beberapa bahasa terkait penggunaan Sub Query :
       1. Sub query dengan IN
    Jika operator ‘=’ hanya digunakan untuk hasil yang tepat satu, maka jika ingin menampilkan yang memiliki hasil lebih dari satu maka menggunakan perintah IN. Dan struktur Query yang digunakan dalam hal ini adalah
         SELECT namakolom FROM namatabel WHERE kondisi opeatorperbandingan IN (subquery);

 2. Sub query dengan ALL
      Command ALL diikuti dengan operator perbandingan digunakan memiliki arti menampilkan nilai jika perbandingan bernilai benar untuk semua data. Operator perbandingan tersebut berupa ( <, >, =, != ). Berikut adalah query dasar dari sub query all
          SELECT namakolom FROM namatabel WHERE 
          kondisi opeatorperbandingan ALL (subquery);  

          3. Sub query dengan ANY
                   Command ANY diikuti dengan operator perbandingan memiliki arti menampilkan nilai yang sesuai dengan apapun yang dihasilkan oleh sub query. ANY berbeda dengan IN, jika IN itu semua data, sedangkan ANY hanya beberapa data. Contoh query dasar dari sub query ANY
          SELECT namakolom FROM namatabel WHERE 
          kondisi opeatorperbandingan ANY (subquery);

                    

Tidak ada komentar:

Posting Komentar