Pages

Sabtu, 05 Januari 2013

SubQuery Lanjutan



Sesuai janji saya, saya akan memposting Materi SubQuery.
Apa itu SubQuery? SubQuery adalah statement SELECT yang dilampirkan sebagai klausa dalam SQL statement yang lain.


Pada gambar di atas terlihat bahwa sub query dijalankan sekali sebelum main query. Contoh penulisan posisi penulisan subquery dalam SQL command :
SELECT select_list
FROM table
WHERE expr operator (SELECT select_list FROM table);


*) Penggunaan SubQuery
Tabel employees
employee_id
name
address
salary
111
Dharu Wihartasih
Kudus
2500000
112
Annisa Kristi
Pemalang
2450000
113
Afifah
Kudus
3100000
114
Rizka Sweet  J.
Salatiga
2350000
115
Chintia Riadina M.
Semarang
2550000
116
Miskatun Niswah
Semarang
2400000
117
Fatati Nuriana
Banyumas
2300000
118
Darkonah
Brebes
2500000

Salah satu dari penggunaan Subquery adalah untuk menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui (unknown values). Berikut contohnya :
SELECT name
FROM employees
WHERE salary >  (SELECT salary FROM employees WHERE employees_id=111);


Maka bisa kita lihat hasilnya,
name
Afifah
Chintia Riadina M.

Mudahkan asalkan kita bisa menerapkan logika dari query penggunaan subquery akan lebih mudah.
Contoh dari penggunaan subquery yang kedua yaitu dapat menggunakan aggregate function seperti count , sum, avg, distinct. Lihat contoh berikut ini.
Tabel Mahasiswa
nim
namaMhs
5302411108
Annisa Kristi
5302411114
Dharu Wihartasih
5302411149
Afifah
5302411111
Reni Ikawati
5302411133
Rizka Sweet J
5302411131
Chintia Riadina M

Tabel Nilai
nim
KodeMK
nilai
5302411111
101
88
5302411114
102
78
5302411114
103
84
5302411133
101
85
5302411149
102
87
5302411108
103
79
5302411131
101
82

Tabel MataKuliah
KodeMK
namaMK
Sks
101
Pemrograman Berorientasi objek
2
102
Sistem Basis Data
2
103
Pengolahan Sinyal Digital
2

Secara umum untuk menampilkan nilai maksimal pada KodeMK =’102’ adalah sebagai berikut.
Select*from Nilai where KodeMK=’102’ order by nilai desc limit 0,1;
Maka akan tampil
nim
KodeMK
Nilai
5302411149
102
87

Itu penggunaan secara umum untuk menampilkan data tertinggi yang tidak diketahui, namun bila kita menggunakan sub query syntaknya:
SELECT nim,kodeMK,nilai from nilai where nilai=max(nilai);
Secara logika sudah benar, tetapi ditemukan eror
Kita akan menggunakan aggregate function yaitu MAX, akan tetapi sayang sekali  hanya bisa digunakan setelah kata SELECT dan HAVING. Maka dari itu  kita membutuhkan subquery sebagai tambahan untuk memperjelas klausa.
Select nim,kodeMK,nilai where nilai =(select max(nilai) from nilai);
Bisa kita lihat penggunaan subquery dalam hal penggunaan aggregate function untuk tambahan clausa di WHERE

Tidak ada komentar:

Posting Komentar