Selamat Datang di mi-akakom.blogspot.com Area Manajemen Informatika: Laporan Praktikum Sistem Basis Data Modul 12

menu

22 Mei 2012

Laporan Praktikum Sistem Basis Data Modul 12

PERTEMUAN KE - 12

Sub Query

Pada pertemuan keduabelas ini, mahasiswa diajarkan tentang perintah-perintah mampu menggunakan perintah SQL untuk menampilkan data dengan syarat berjenjang.

Sub Query

Merupakan bentu query yang terletak dalam query lain. Dalam pemahaman sederhana didalam select terdapat select lain. Kata kunci untuk subquery ada tiga macam yaitu :

§ IN

§ EXIST

§ ALL/ANY/SOME

Pembahasan Praktikum

Dengan menggunakan database dbproyek1 gunakan perintah-perintah pada Sub Query yaitu IN, EXISTS, ALL, ANY,dan SOME untuk mengelola dan mengoperasikan pada database dbproyek1, modifikasi dan kembangkan!!

Ø IN

mysql> select kodediv, namadiv, lokasi from divisi

where kodediv in(select kodediv from proyek where kodediv='D101');

+---------+-------------------------+---------+

| kodediv | namadiv | lokasi |

+---------+-------------------------+---------+

| D101 | Construction Management | Bandung |

+---------+-------------------------+---------+

1 row in set (0.00 sec)

Menampilkan kodediv, namadiv, lokasi dari table divisi dimana kode mengandung “D101”.

Ø EXISTS

mysql> select nip,nama,gapok from pegawai

-> where exists(select * from pekerjaanpro where nip=pegawai.nip);

+----------+----------------+---------+

| nip | nama | gapok |

+----------+----------------+---------+

| 13235539 | Emy Susanti | 3000000 |

| 13235540 | S. Rochmadi | 3500000 |

| 13235500 | Muhamad Waldan | 4000000 |

| 13235552 | Aulia Natasya | 4000000 |

+----------+----------------+---------+

4 rows in set (0.03 sec)

Menampilkan nip,nama,gapok dari table pegawai yang dapat menghasilkan satu atau lebih kolom, dari perintah yang menampilkan semua record pekrjaanpro dimana nip sama dengan nip pada pegawai.

Ø ALL

mysql> select nip,nama,gapok,honor from pegawai

-> where gapok >all(select honor from pegawai);

+----------+----------------+---------+--------+

| nip | nama | gapok | honor |

+----------+----------------+---------+--------+

| 13235539 | Emy Susanti | 3000000 | 150000 |

| 13235540 | S. Rochmadi | 3500000 | 200000 |

| 13235500 | Muhamad Waldan | 4000000 | 250000 |

| 13235552 | Aulia Natasya | 4000000 | 250000 |

+----------+----------------+---------+--------+

4 rows in set (0.01 sec)

Merupakan perintah untuk menampilkan nip, nama, gapok, honor dari table pegawai dimana gapok lebih besar dari perintah yang menampilkan record honor dari table pegawai. Operator all ini digunakan untuk menghasilkan nilai benar jika pembanding menghasilkan nilai benar untuk setiab nilai dalam subquery.

Ø ANY

mysql> select nip,nama,gapok from pegawai

-> where gapok >any(select gapok from pegawai);

+----------+----------------+---------+

| nip | nama | gapok |

+----------+----------------+---------+

| 13235540 | S. Rochmadi | 3500000 |

| 13235500 | Muhamad Waldan | 4000000 |

| 13235552 | Aulia Natasya | 4000000 |

+----------+----------------+---------+

3 rows in set (0.00 sec)

Merupakan perintah untuk menampilkan kolom nip, nama, gapok dari table pegawai dimana gapok lebih besar dan didalamnya terdapat perintah untuk menampilkan nilai terbesar dari gapok dan menghasilkan lebih dari satu nilai dari table pegawai.

Ø SOME

mysql> select nip,nama,gapok from pegawai

-> where gapok >some(select gapok from pegawai);

+----------+----------------+---------+

| nip | nama | gapok |

+----------+----------------+---------+

| 13235540 | S. Rochmadi | 3500000 |

| 13235500 | Muhamad Waldan | 4000000 |

| 13235552 | Aulia Natasya | 4000000 |

+----------+----------------+---------+

3 rows in set (0.00 sec)

Merupakan perintah untuk menampilkan kolom nip, nama, gapok dari table pegawai dimana gapok lebih besar dan didalamnya terdapat perintah untuk menampilkan nilai terbesar dari gapok dan menghasilkan lebih dari satu nilai dari table pegawai.fungsi operator some sama dengan fungsi operator any.

Ø NOT IN

mysql> select kodediv, namadiv,lokasi from divisi

-> where kodediv not in(select kodediv from proyek where kodediv='D101');

+---------+---------------------------+------------+

| kodediv | namadiv | lokasi |

+---------+---------------------------+------------+

| D102 | Marketing Management | Yogyakarta |

| D501 | Management Information sy | Yogyakarta |

| D535 | Prokduction Management | Jakarta |

+---------+---------------------------+------------+

3 rows in set (0.06 sec)

Menampilkan kodediv, namadiv, lokasi dari table divisi dengan tidak mengulang data yang sama dimana kodediv bukan kodediv dari table proyek yang memiliki kodediv “D101”.

Ø NOT EXISTS

mysql> select kodepro,namapro,kodediv from proyek

-> where not exists(select * from divisi where kodepro='P003'

-> and proyek.kodediv='D501');

+---------+-------------------+---------+

| kodepro | namapro | kodediv |

+---------+-------------------+---------+

| p001 | Project Manager 1 | D101 |

| p002 | Project Manager 2 | D102 |

| p004 | Project Manager 4 | D535 |

+---------+-------------------+---------+

3 rows in set (0.02 sec)

Menampilkan kodepro, namapro, kodediv dari table proyek yang tidak tercantum pada table devisi , dari perintah yang menampilkan semua record divisi dimana kodepro P003 dan kodediv pada table proyek D501.

Tugas

Gunakan perintah perintah sub query IN, EXISTS, ALL, ANY, SOME pada database system informasi penjualan online yang sudah dibangun!

Ø IN

mysql> select distinct kd_trans from transfer

-> where id_prsh in(select id_prsh from perusahaan where kd_trans='01213231');

+----------+

| kd_trans |

+----------+

| 01213231 |

+----------+

1 row in set (0.03 sec)

Digunakan untuk menampilka kd_trans dari table transfer dimana id_prsh dengan menggunakan operator in yang artinya menghasilkan nilai benar kalau nilai yang berada dikirinya cocok dengan salah satu daftar nilai dikanan nya.dan Cuma bisa menampilkan 1 kolom tetapi boleh beberapa baris. Tampilkan id perusahaan from perusahaan dimana kd_trans adalah 01213231. Operator distinct digunakan unutk tidak mengulang data yang sama.

Ø EXISTS

mysql> select kd_trans,tgl_trans from transfer

-> where exists(select * from bank where id_bank='11114'

-> and transfer.kd_trans='09074639');

+----------+------------+

| kd_trans | tgl_trans |

+----------+------------+

| 09074639 | 2010-10-23 |

+----------+------------+

1 row in set (0.00 sec)

Menampilkan kd_trans, tgl_trans dari table transfer yang dapat menghasilkan satu atau lebih kolom, dari perintah yang menampilkan semua record bank dimana id_bank 11114 sama dengan kd_trans pada transfer 09074639.

Ø ALL

mysql> select kd_brg,nama_brg,jml_brg from barang

-> where jml_brg

+--------+----------+---------+

| kd_brg | nama_brg | jml_brg |

+--------+----------+---------+

| 99932 | Baju | 6 |

| 99943 | gelang | 12 |

| 99954 | Sepatu | 10 |

+--------+----------+---------+

3 rows in set (0.00 sec)

Merupakan perintah untuk menampilkan kd_brg, nama_brg, jml_brg dari table barang dimana jml_brg lebih besar dari perintah yang menampilkan record kd_brg dari table barang. Operator all ini digunakan untuk menghasilkan nilai benar jika pembanding menghasilkan nilai benar untuk setiab nilai dalam subquery.

Ø ANY

mysql> select kd_brg,nama_brg,jml_brg from barang

-> where kd_brg

+--------+----------+---------+

| kd_brg | nama_brg | jml_brg |

+--------+----------+---------+

| 99932 | Baju | 6 |

| 99943 | gelang | 12 |

+--------+----------+---------+

2 rows in set (0.00 sec)

Merupakan perintah untuk menampilkan kolom kd_brg, nama_brg, jml_brg dari table barang dimana kd_brg lebih kecil dan didalamnya terdapat perintah untuk menampilkan nilai terkecil dari kd_brg dan menghasilkan lebih dari satu nilai dari table barang.

Ø SOME

mysql> select kd_brg,nama_brg,jml_brg from barang

-> where kd_brg >some(select kd_brg from barang);

+--------+----------+---------+

| kd_brg | nama_brg | jml_brg |

+--------+----------+---------+

| 99943 | gelang | 12 |

| 99954 | Sepatu | 10 |

+--------+----------+---------+

2 rows in set (0.00 sec)

Merupakan perintah untuk menampilkan kolom kd_brg, nama_brg, jml_brg dari table barang dimana kd_brg lebih besar dan didalamnya terdapat perintah untuk menampilkan kd_brg dari table barang dan menghasilkan lebih dari satu nilai dari table pegawai.fungsi operator some sama dengan fungsi operator any.

Kesimpulan

Pada pertemuan ke 12 ini dapat disimpulkan bahwa dengan menggunakan MySQL kita bisa juga memodifikasi data sesuai data yang kita inginkan. Dari praktikum diatas kita dapat memahami perintah subquery untuk pemrosesan data mampu menggunakan SQL unutk menampilkan data denga Syarat berjenjang. Operatos subquery meliputi IN, EXISTS, ANY, dan ALL. Subquery merupakan query yang terletak dalam query yang lain.