sub query_1

Post on 24-Oct-2014

57 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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);

top related