Upload
siska-amelia
View
156
Download
10
Embed Size (px)
Citation preview
T4 – QUERY LANJUTAN (2) 1. SISKA AMELIA (2103131034)
2. MUHAMMAD SULISTIYO (21031310346)
DOSEN : Rengga Asmara, S.Kom. OCA
TUJUAN1. Mengenal bentuk-bentuk pengembangan query SQL2. Mengenal Subquery pada banyak kolom3. Mengenal Subquery pada From
APA ITU SUBQUERY??
Subquery merupakan bentuk query lanjutan untuk pencarian data yang lebih kompleks
Subquery adalah statemen SELECT yang dilampirkan sebagai klausa dalam statement SQL yang lain.
Subquery terdiri atas : Subquery (inner query) dan Main query (outer query)
Hasil dari Subquery digunakan oleh main query (outer query)
APA ITU SUBQUERY??
APA ITU SUBQUERY??
Query di atas akan menampilkan nama pegawai yang gajinya lebih besar dari pegawai dengan nomer pegawai 149. Sebelumnya, gaji pegawai dengan nomer pegawai 149, tidak diketahui, untuk itu kita tempatkakn sebagai Subquery agar nilai yang tidak diketahui tersebut dapat diketahui dan pada ilustrasi gambar di atas nilai gaji dari pegawai 149 adalah 10500
SUBQUERY PADA BANYAK KOLOM
Pada Subquery pada banyak kolom, tiap baris dari main query dibandingkan dengan nilai subquery multiple-row dan multiple column.
Berikut ini pembandingan dengan banyak kolom dan baris
SUBQUERY PADA BANYAK KOLOM
Pembandingan kolom dalam Subquery banyak kolom dapat berupa :- Pembandingan berpasangan (Pairwise Comparison SubQuery)- Pembandingan tidak berpasangan (NonPairwise Comparison
SubQuery)
Pairwise comparison Subquery
Berikut ini adalah contoh pembandingan berpasangan untuk menampilkan detail dari data pegawai yang dimanajeri oleh manajer dan departemen yang sama dengan yang dimiliki oleh nomor pegawai 178 dan 174, dan bukan termasuk pegawai dengan nomor tersebut.
SUBQUERY PADA BANYAK KOLOM
(NonPairwise Comparison SubQuery) Berikut ini adalah contoh pembandingan tidak berpasangan untuk
menampilkan detail dari data pegawai yang dimanajeri oleh manajer yang sama dengan id pegawai 178 dan 141, serta bekerja dalam departemen yang sama dengan pegawai 174 atau 141, dan bukan termasuk pegawai dengan id tersebut
SUBQUERY PADA KLAUSA FORM
- Query bisa diletakkan di dalam klausa FROM untuk membentuk tabel temporer
- Query semacam ini dikenal juga dengan istihah iniline view, karena tidak membentuk objek database.
Berikut ini adalah contoh penggunaan klausa from
Query menampilkan nama dan gaji pegawai yang gajinya lebih besar dari rata-rata gaji pegawai pada depertemen temat ia bekerja.
LATIHAN
Tabel yang digunakan
LATIHAN 1/4
1. Buat query untuk menampilkan nama, nomer departemen, dan gaji dari pegawai yang memiliki nomer departemen dan gaji yang sama dengan nomer departemen dan jaji pegawai yang memiliki komisi.
Jawab :
SELECT first_name, departement_id, salary
FROM employees
WHERE (departement_id, salary) in (select departement_id, salary
from employees
where commition_pct is not null);
2. Buat Query untuk menampilkan nama pegawai nama departemen, dan gaji pegawai yang memiliki location ID 1700
Jawab :
SELECT first_name, departemet_name, salary
FROm employees, departements
WHERE departemens.departement_id=employees.departemen_id and salary in (select salary
from employees
where departemen_id in (select departemens_id
from departemens where location = 1700) );
LATIHAN 2/4
3. . Buat Query untuk menampilkan nama pegawai, tanggal mulai masuk kerja, dan gaji untuk semua pegawai yang memiliki gaji dan komisi seperti yang dimiliki oleh pegawai yang bernama kochhar (data kochhar tidak ditampilkan dalam hasil query
Jawab :
SELECT first_name, hire_date, salary
FROm employees
WHERE salary in (select salary
from employees
where last_name=‘kochhar’) and last_name()’kochhar’;
LATIHAN 3/4
4. Buat query untuk menampilkan detail dari nomer pegawai, nama pegawai, dan nomer pegawai yang bertempat tinggal di kota yang nama kotanya diawali huruf T
Jawab :
SELECT e.employee_id, e.first_name, h.employee_id
FROm employees e, (select employee_id
from employee e, departemens d, location l
where e.departement_id = d.departement_id and d.location_id =location_id and city like ‘%T’) h
WHERE e.employee_id=h.employee_id;
LATIHAN 4/4