Upload
alfan-saputra
View
57
Download
1
Tags:
Embed Size (px)
Citation preview
Query Lanjutan
Sub Query
Subquery
• Select nip, gaji from DataGajiwhere gaji = (select max(gaji) from DataGaji);
Macam-macam Sub-query
• Sub Query Baris tunggal• Sub Query Baris ganda– IN– EXIST– ANY– SOME – ALL
Query Baris Tunggal
• Sering menggunakan fungsi agregat max, min• Contoh : di slide 1
Query Menggunakan IN
• Mencocokkan suatu kolom milik tabel pada query induk dengan semua nilai yang didapatkan dari sub query
Select nip, kode_bag from datagajiwhere kode_bag IN(select datagaji.kode_bag from datagaji, datapribadi where datagaji.nip=datapribadi.nip);
Query Menggunakan Exist
• Menghasilkan Operator Boolean yang menghasilkan benar atau salah.
• Operator memberikan nilai benar kalau subquery menghasilkan paling tidak sebuah baris.
• SELECT nama_kolomFROM nama_tabelWHERE EXIST (subquery)
Operator ANY dan SOME
• Digunakan yang berkaitan dengan operator relasional
• SELECT nama_kolomFROM nama_tabelWHERE nama_kolom operator_relasional ANY
(subquery
• SELECT nip, tgl_lahirfrom infopribWHERE tgl_lahir < ANY
(SELECT tgl_lahir FROM infoprib);
Menampilkan data
Operator ALL
• Digunakan untuk melakukan pembandingan dengan subquery.
• Menghasilkan nilai benar jika pembanding menghasilkan benar untuk setiap nilai dalam subquery.
• SELECT nama_kolomFROM nama_tabelWHERE nama_kolom operator_relasional ALL (subquery)
• SELECT nip, kotaFROM infopribWHERE tgl_lahir < ALL
(SELECT tgl_lahir from infoprib where kota=‘yogya);
Subquery Skalar
• Subquery yang menghasilkan satu nilai (satu kolom dan satu baris)– Subquery scalar pada ekspresi CASE– Subquery scalar dalam klausa SELECT
Subquery Skalar (CASE)
• SELECT nip, kode_bag,CASEWHEN kode_bag = (SELECT kode_bag
FROM bagian WHERE nama_bag=‘produksi’)
THEN ‘Produksi’ELSE ‘Non-Produksi’END AS ‘produksi’ FROM pekerjaan;
Subquery Skalar Dalam Klausa SELECT
• SELECT nip, (SELECT nama_bagFROM bagianWHERE kode_bag = pekerjaan.kode_bag)AS ‘apa aja’
FROM pekerjaan
NIPNamaKotaTgl_LahirSex
NIPKode_bag
Kode BagNama_Bag
Infoprib pekerjaan bagian
NIP Nama Kota Tgl_lahir sex12348 Dita Klaten 01-09-82 W12349 Dhani Yogya 13-05-81 L12351 Raul Bantul 05-04-79 L12352 Rahmanda Yogya 04-08-82 W
Infoprib
Kode_Bag Nama_bag
3 Akutansi
5 PDE
1 Pemasaran
2 Produksi
4 SDM
BagianNIP Kode_Bag
12348 4
12349 1
12351 2
12352 2
Pekerjaan
• SELECT nipFROM pekerjaan where kode_bag =(SELECT kode_bag from bagianWHERE nama_bag=‘pemasaran’)
• SELECT nip, kode_bagFROM pekerjaan WHERE kode_bag IN(SELECT DISTINCT pekerjaan.kode_bagFROM pekerjaan, infopribWHERE pekerjaan.nip=infoprib.nip AND
infoprib.nama LIKE ‘%i’);
• SELECT nip, kode_bag FROM pekerjaan WHERE EXISTS(SELECT * FROM bagianWHERE kode_bag = pekerjaan.kode_bag);