antartabel menggunakan tiga tabel
Pada materi ini saya mau berbagi bagaimana cara memperoleh informasi dari tiga tabel atau lebih, sebenarnya saya sudah pernah nyinggu materi anter tabel namun hanya menggunakan antara duatabel saja. Sebelum ke materi saya mau menyisipkan materi bagaimana cara kondisi untuk memfilter data.
Sebelum kita berlanjut ke dalam materi ada baiknya anda memubat tiga tabel yang seperti ada di bawah ini.
1. Tabel Pegawai
field | type | Panjang |
Nip | Int | 5 |
Nama | varchar | 25 |
Kota | varchar | 25 |
Tgl_lahir | Date | |
Jenis_kelamin | enum | ‘Pria’,’Wanita’ |
2. Tabel Pekerjaan
field | type | Panjang |
Nip | int | 5 |
Kode_bagian | int | 5 |
Gaji | decimal | 10,2 |
3. Table Bagian
field | type | panjang |
Kode_bagian | int | 5 |
Nama_bagian | varchar | 25 |
Berdasarkan keadaan seperti tabel diatas dimungkinkan unutk membentuk informasi dari beberapa tabel yang didapatkan dari gabungan sejumlah tabel. Ohh,, iya jangan lupa isikan tabel tersebut dengan data-data dan sesuaikan isi antara field nip yang ada di tabel pegawai sama dengan isinya yang ada di field nip yang ada di tabel pekerjaan. Samakan juaga isi dari field kode_bagian yang ada di tabel pekerjan sama dengan yang ada di field kode_bagian yang ada di tabel Bagian. Isi tabel-tabel tersebut jangan terlalu banyak dan juga jangan terlalu sedikit yang penting dapat untuk praktik kali . ok? Heheh
Adakalanya ketika mendapatkan informasi yang berasal dari lebih dari satu tabel, namun Informasi yang disajikan hanya yang memenuhi kondisi tertentu. Sebagai contoh, diinginkan untuk menampilkan informasi nip, nama, dan gaji khusus untuk pegawai wanita. Pada keadaan semacam ini, yang perlu anda tuliskan pada WHERE sebaiknya adalah hubungan antartabel terlebih dahulu dan baru kemudian tambahkan untuk memfilter data. Implementasi kasus tersebut adalah seperti berikut:
Select pegawai.nip, peagwai.nama, pekerjaan.gaji from pegawai, pekerjaan
Where pegawai.nip = pekerjaan.nip and pegawai.jenis_kelamin=”wanita”;
Penjelasan:
-pegawai.nip = pekerjaan.nip menyatakan hubungan antartabel pegawai dan pekerjaan
-pegawai.jenis_kelamin = “wanita” merupakan kondisi untuk memilih data tertentu
-kedua kondisi tersebut di hubungkan dengan menggunakan operaton AND.
Selanjutnya kita masuk ke dalam materi antartabel dengan menggunakan tiga tabel. Secara konsep anda bisa memperoleh informasi yang berasal dari tiga buah tabel atau lebih. Prinsipnya, anda perlu menulisakan semua hubungan antartabel yang dilibatkan dalam klausa WHERE. Sebagai contoh di kehendaki untuk mendapatkan informasi berupa: NIP, Nama Pegawai, Nama Bagian, Gaji. Informasi tersebut melibatkan tiga buah tabel, dengan rincian sebgai berikut:
-NIP diambil dari tabel pegawai ( atau pekerjaan).
-nama pegawai diambil dari tabel pegawai
-nama bagaian diambil dari tabel bagian, dan
-gaji diambil dari tabel pekerjaan
Selain itu, ada hubungan antartabel pegawai dan pekerjaan dan antara tabel pekerjaan dan bagian. Berdasarkan pernyataan tersebut, perintah query yang di perlukan adalah seperti berikut:
Select pegawi.nip, pegawai.nama,
bagian.nama_bagian,
pekerjaan.gaji
from pegawai, pekerjaan, bagian
where pegawai.nip = pekerjaan.nip
and pekerjaan.kode_bagian = bagian.kode_bagian;
contoh berikutnya menunjukan kalau ada pemfilteran, misalkan diguanakan untuk menyajikan informasi pegawai yang bekerja selain di pemasaran, maka perintah querynya menjadi berikut.
Select pegawi.nip, pegawai.nama,
bagian.nama_bagian,
pekerjaan.gaji
from pegawai, pekerjaan, bagian
where pegawai.nip = pekerjaan.nip
and pekerjaan.kode_bagian = bagian.kode_bagian
and bagian.nama_bagian <> ‘pemasaran’;
tambahan yang diberikan terhadap perintah query diatas adalah and bagian.nama_bagian <> ‘pemasaran’ . maksud dari tanda <> dapat di artikan dengan kata tidak sama dengan .
dari sini materi kali ini saya sudahi, semoga materi bermanfaat bagi kita semua. Ketemu lagi materi berikutnya , jangan lupa share dan follow blog atau anda bisa lihat materi lainnya yang ada disini!! TERIMA KASIH!! Sampai ketemu lagi.
Bang materi query dalam query bang..
ReplyDeletePembahasanny mantep ni
ReplyDelete