Menampilkan Data dari Banyak Tabel

Modul Praktikum Sistem Basis Data .............................................................................. 61 1. Satu komputer yang akan digunakan sebagai Server dan sejumlah komputer yang digunakan sebagai Client dan terhubung dalam jaringan komputer baik dengan menggunakan kabel maupun dengan jaringan tanpa kabel nirkabel 2. LCD viewer, whiteboard dan spidol sebagai media presentasi instruktur 3. Software aplikasi MySQL Server 5.0 keatas, MySQL Query Browser

D. TEORI DASAR

1. Menampilkan Data dari Banyak Tabel

Menampilkan data dari dua tabel atau lebih, mensyaratkan adanya relasi keduanya antar table-table yang dimaksud. Guna memperjelas teori tersebut, marilah kita lihat skema database ujimhsdb berikut; Berdasarkan skema tersebut, kita dapat menampilkan data dari table Hasil Ujian, Jenis Ujian, Mahasiswa dan table Matakuliah secara bersamaan, atau kita juga dapat menampilkan data dari table Matakuliah dan table Dosen secara bersamaan. Hal tersebut dimungkinkan karena setiap table yang dimaksud mempunyai hubungan relasi secara langsung berkaitan secara logika, sebagaimana digambarkan pada skema tersebut. Adanya relasi kedua table yang biasanya ditandai oleh adanya field yang identik baik nama, type data, ukurannya maupun maksud peruntukannya, memungkinkan kita untuk menampilkan data dari keduanya. Sebaliknya, bila tidak ada relasi secara langsung, maka kita tidak dapat menampilkannya. Misalnya antara table Mahasiswa dengan table Dosen Table Jenis Ujian kode_ujian nama_ujian Table Matakuliah kode_mtk nama_mtk sks kode_dosen Table Hasil Ujian nim kode_mtk kode_ujian nilai Table Dosen kode_dosen nama_dosen kelamin tmp_lahir tgl_lahir alamat Table Mahasiswa nim nama_mhs kelamin tmp_lahir tgl_lahir alamat Database Hasil Ujian Mahasiswa Keterangan : Primary Key Foreign Key Modul Praktikum Sistem Basis Data .............................................................................. 62 atau antara table Jenis Ujian dengan table Matakuliah. Untuk lebih jelasnya cobalah contoh berikut; mysqlSELECT matakuliah.kode_mtk, matakuliah.nama_mtk, -matakuliah.sks, dosen.nama_dosen -FROM matakuliah, dosen -WHERE dosen.kode_dosen= matakuliah.kode_dosen;  mysqlSELECT matakuliah.kode_mtk, matakuliah.nama_mtk, -matakuliah.sks, dosen.nama_dosen -FROM matakuliah, dosen -WHERE dosen.kode_dosen=matakuliah.kode_dosen - AND dosen.nama_dosen LIKE “in”; Perintah pertama hanya terdapat 1 syarat, yaitu syarat relasi; WHERE dosen.kode_dosen=matakuliah.kode_dosen;  Namun pada perintah kedua sudah terdapat 2 syarat, yaitu syarat relasi dan syarat penyaringan filter data, yaitu hanya untuk dosen yang namanya berawalan “in”; WHERE dosen.kode_dosen=matakuliah.kode_dosen AND dosen.nama_dosen LIKE “in”; pada syarat kedua inilah, kita dapat mengkombinasikan berbagai operator yang ada sebagai syarat penyaringan filtering data, sehingga data yang tampil sesuai dengan yang kita harapkan. Bagaimana bila yang direlasikan lebih dari dua table?, misalnya akan menampilkan data dari table Hasil Ujian, Jenis Ujian, Mahasiswa, Matakuliah dan table Dosen sekaligus. Hal yang perlu diperhatikan dalam merelasikan dua table atau lebih, adalah bagaimana kita menentukan table acuan, yang bertindak sebagai penyedia data dasar acuan bagi table yang berelasi. Biasanya yang menjadi table acuan adalah table transaksional yaitu tabel yang mengandung kunci tamu foreign key dan bukan table master yang hanya mengandung kunci utama primary key. Kalau kita lihat skema database ujimhsdb, maka yang paling layak menjadi table acuan adalah table hsl_ujian. 2. Menggunakan Nama Alias pada Kolom dan Tabel Nama alias dapat digunakan sebagai pengganti judul kolom atau pengganti nama table. Penggantian judul kolom mapun nama table, biasanya bertujuan untuk memperjelas ataupun memperpendek penyebutan judul kolom maupun nama table. Contoh berikut menunjukkan penggunaan nama alias pada judul kolom dan nama tabel; Modul Praktikum Sistem Basis Data .............................................................................. 63 mysqlSELECT matakuliah.kode_mtk AS “Kode Matakuliah”, - matakuliah.nama_mtk AS “Nama Matakuliah”, -matakul iah.sks AS “SKS”, dosen.nama_dosen AS “Nama Dosen” -FROM matakuliah, dosen -WHERE dosen.kode_dosen = matakuliah.kode_dosen;  mysqlSELECT mtk.kode_mtk, mtk.nama_mtk, -mtk.sks, dsn.nama_dosen -FROM matakuliah AS mtk, dosen AS dsn -WHERE dsn.kode_dosen = mtk.kode_dosen; 

3. Menggunakan perintah GROUP BY dan HAVING