no fucking license
Bookmark

Pengertian Basis Data Tentang Query Berjenjang SubQuery

Basis Data Tentang Query Berjenjang SubQuery

 

Basis Data SubQuery - Berikut adalah sedikit materi atau rangkuman tentang query berjenjang (SubQuery).

Pengertian - Query berjenjang (subquery) merupakan perintah SELECT yang berada di dalam perintah SQL lain. Subquery sangat berguna ketika kita ingin menampilkan data dengan kondisi yang bergantung pada data didalam tabel itu sendiri. Pengertian lainnya sebuah query (perintah Select) yang terdapat query lain didalamnya.

Fungsi dari subQuery - 
  • Menyalin data dari satu tabel ke tabel yang lainnya.
  • Menghapus baris dari satu tabel berdasarkan baris dari tabel lain.
  • Mengambil data dari tabel lain untuk di update ke tabel yang dituju.
  • Untuk menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui.
  • Menerima data dari inline view.


Bentuk umum dari subquery berjenjang -
  • Secara default, nama-nama kolom di subquery mengacu ke nama table diklausa FROM di query lebih luar dengan mengkualifikasi nama kolom
  • Saat subquery adalah salah satu dua operan dilibatkan di pembandingan, subquery harus muncul di sisi kanan pembandingan.
  • Subquery tdak boleh digunakan sebagai operan di ekspresi.
  • 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 diantaranya:
    • Expression [NOT] IN (subquery)
    • Comparison [ANY|ALL|SOME] (subquery)
    • [NOT] EXISTS (subquery).  
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
Query Berjenjang
 
        
Syntaks dan Beberapa penggunaan subQuery - 
  •  subQuery dengan ANY
    • Command ANY diikuti dengan operator perbandingan memiliki arti menampilkan nilai yang sesuai dengan apapun yan dihasilkan oleh subQuery. ANY berbeda dengan IN, jika IN itu semua data, sedangkan ANY hanya beberapa data. Contoh query dasar dari sub query ANY :
      SELECT nama kolom FROM namatabel WHERE kondisi opeatorperbandingan ANY (subquery);
  •  subQuery dengan "ALL"
    • Command ALL diikuti dengan operator perbandingan digunakan memiliki arti menampilkan nilai jika perbandingan bernilai benar untuk semua data. Operator perbandingan tersebut berupa ( <, >, =, !=). Query dasar dari subQuery ALL  
SELECT namakolom FROM namatabel WHERE kondisi opeatorperbandingan ALL (subquery);
  • subQuery dengan "IN"
    • Jika operator '=' hanya digunakan untuk hasil yang tepat satu, maka jika ingin menampilkan yang memiliki hasil lebih dari satu maka dapat menggunakan perintah IN. Dan struktur query yang digunakan dalam hal ini adalah  
       SELECT namakolom FROM namatabel WHERE kondisi opeatorperbandingan IN (subquery); 
  •  Single Row Subquery
    • Single row subquery memberikan hasil hanya satu baris pada bagian subquery. Untuk single row subquery ini yang digunakan adalah operator pembanding: , >, >=, <, <= atau <>
    • Contoh: 
      Menampilkan data karyawan yang memiliki jabatan sama dengan Smith.
      SELECT last_name, title FROM employee WHERE title = ( SELECT title FROM employee WHERE last_name = ‘Smith’ );
      Kita dapat menampilkan data dari query utama dengan menggunakan fungsi grup (group function) untuk menghasilkan satu baris data.
      Contoh:
      Menampilkan data karyawan yang memiliki gaji dibawah rata-rata.
      SELECT last_name, title, salary FROM employee WHERE salary < ( SELECT AVG(salary) FROM employee );
       
  • Multiple Rows Subquery
    • Multiple Row Subquery adalah subquery yang menghasilkan lebih dari satu baris data. Untuk multiple row subquery ini yang digunakan adalah operator pembanding IN, ANY atau ALL.
    • Contoh:
      Menampilkan data karyawan yang bekerja pada departemen Finance atau pada region 2.
      SELECT last_name, first_name, title FROM employee WHERE dept_id IN ( SELECT id FROM department WHERE name = ‘Finance’ OR region_id = 2 );
      Contoh:
      Menampilkan nama, gaji, dan nomer department dari pegawai yang gajinya sama dengan gaji minimum pada suatu department.
      SELECT ename, sal, deptno FROMENP WHERE sal IN (SELECT MIN (sal) FROM ENP GROUP BY deptno)  
Kesalahan dalam Subquery
Kesalahan umum dalam subquery adalah lebih dari satu baris data dihasilkan untuk single row subquery.
Contoh:
Subquery ini menghasilkan lebih dari satu baris data dan menggunakan single row operator. Kita dapat membetulkan kesalahan ini dengan mengubah = menjadi IN.
SELECT last_name, first_name, title
FROM employee WHERE dept_id = ( SELECT id FROM department WHERE name = ‘Finance’
OR region_id = 2 );

Sekian rangkuman materi sub query berjenjang semoga dapat bermanfaat.
Posting Komentar

Posting Komentar

Silahkan memberi tanggapan yang membangun