Lebih lanjut tentang Select di MySQL
Assalamu'alaikum.wr.wb.
Pada kesempatan sebelumnya saya telah membahas mengenai CRUD di MySQL. Dari postingat tersebut saya memberikan contoh secara umum. Untuk kesempatan kali ini, saya akan membahas lebih lanjut tentang SELECT. Seperti yang kita ketahui bahwa SELECT merupakan perintah SQL untuk menampilkan data dari tabel di suatu database.
Perintah SELECT sangat penting bagi programmer apabila ingin membuat aplikasi berbasis database, Karena dengan menguasai SELECT, kita bisa memanipulasi data dengan tampilan yang kita inginkan. Misal seperti menghitung jumlah baris atau kolom, mencari data, mensorting data berdasarkan value tertentu, mengubah baris menjadi kolom, dan sebagainya.
Dalam perintah MySQL ketika query SQL menampilkan data dari 2 tabel, query tersebut menggabungkan 2 tabel tertentu menggunakan join. syaratnya hanya kedua tabel tersebut harus berelasi. karena untuk menampilkan data dengan perintah menggunakan bahasa SQL, itu harus ada data yang sama dari kolom yang sama. Dalam hal ini bisa kita sebut sebagai foreign key
Ketika perintah MySQL untuk menampilkan data dari beberapa tabel tersebut selesai dibuat, perintah tersebut akan memberikan respon pda MySQL. Lalu MySQL mulai merespon untu menampilkan data yang dimaksud, sehingga data dari beberapa tabel yang dimaksud mulai muncul dalam satu tabel. Hal tersebut bisa dilakukan dengan memanggil perintah select pada MySQL. Itulah yang akan saya bahas saat ini, macam-macam perintah select pada MySQL yang akan saya berikan kepada pembaca agar pembaca bisa mengetahui tentang perintah select tersebut. Dengan demikian maka pembaca bisa memanipulasi data dengan macam-macam perintah yang akan saya tunjukkan.
Untuk membuat perintah tersebut, kita hanya perlu mengetik program yang biasa disebut query untuk menampilkan data. Query yang saya maksud adalah Query SELECT, dimana Query tersebut berfungsi untuk menampilkan data dari tabel tertentu agar programmer dapat melihat data yang disimpan di tiap tabel yang ada. Seperti yang saya sebut sebelumnya bahwa Query select merupakan query terpenting dalam SQL karen dengan memahami query tersebut, kita bisa memanipulasi tampilan data sesuai dengan yang kita inginkan.
Baca Juga
- MySQL, Aplikasi database dengan kecepatan luar biasa
- Cara membuat Nilai Terbilang denga bahasa pemrograman C#
- Program Potong Rambut C++
Oke Langsung saja saya akan memberikan contoh program SELECT dengan Database MySQL. Sebelum memulainya, saya akan menggunakan database yang sudah dibuat di tutorial sebelumnya. Bagi yang belum menyimak, silahkan klik disini. Berikut ini merupakan macam-macam perintah select di MySQL
1. SELECT JOIN
SELECT JOIN merupakan perintah SQL untuk menghubungkan tabel satu dengan tabel lainnya yang berelasi. Untuk penghubung, biasanya foreign key yang dijadikan patokan. dimana dalam dua tabel atau lebih, yang mana tabel tersebut memiliki value yang sama yang akan ditampilkan. Misal tabel A.kolom1, memiliki value yang sama dengan tabelB.kolom2. maka yang menjadi penentu adalah kedua kolom tersebut.Susunan Program : SELECT * FROM [nama_tabel1] JOIN [nama_tabel2] ON [tabel1.kolom1] = [tabel2.kolom2]
Secara umum seperti itulah susunan programnya.
Selain itu, SELECT JOIN juga memiliki beberapa tipe. seperti INNER, LEFT, RIGHT dan OUTER. Untuk menambahkannya pun sama seperti susunan diatas, hanya saja tipe tersebut ditambahkan didepan JOIN
Susunan Program : Susunan Program : SELECT * FROM [nama_tabel1] [tipe] JOIN [nama_tabel2] ON [tabel1.kolom1] = [tabel2.kolom2]
Saya akan menampilkan data mahasiswa beserta kelas dan dosennya
SELECT tb_mahasiswa.id_mahasiswa,
tb_mahasiswa.nama_mahasiswa,
tb_kelas.nama_kelas, tb_mahasiswa.jenis_kelamin,
tb_mahasiswa.alamat,
tb_dosen.nama_dosen
FROM tb_mahasiswa
JOIN tb_kelas ON tb_mahasiswa.id_kelas = tb_kelas.id_kelas
JOIN tb_dosen ON tb_kelas.id_dosen = tb_dosen.id_dosen
FROM tb_mahasiswa
JOIN tb_kelas ON tb_mahasiswa.id_kelas = tb_kelas.id_kelas
JOIN tb_dosen ON tb_kelas.id_dosen = tb_dosen.id_dosen
Maka hasilnya adalah seperti dibawah ini
Sekarang kita coba dengan tipe join. untuk lebih jelasnya, saya akan menambahkan satu data dosen lagi. Pembaca juga bisa menambahkan data dosen dengan ketentuan terserah anda.
Inner Join
SELECT dosen.id_dosen,
dosen.nama_dosen,
dosen.alamat,
kelas.id_kelas,
kelas.nama_kelas
FROM tb_dosen dosen
INNER JOIN tb_kelas kelas
ON dosen.id_dosen = kelas.id_dosen
FROM tb_dosen dosen
INNER JOIN tb_kelas kelas
ON dosen.id_dosen = kelas.id_dosen
Maka tampilan yang akan muncul adalah seperti dibawah ini Dari hasil tampilan diatas, bisa disimpulkan bahwa penggunaan INNER merupakan perintah untuk menampilkan data yang berelasi dan terhubung (tidak ada yang null).
Left join
SELECT dosen.id_dosen,
dosen.nama_dosen,
dosen.alamat,
kelas.id_kelas,
kelas.nama_kelas
FROM tb_dosen dosen
LEFT JOIN tb_kelas kelas
ON dosen.id_dosen = kelas.id_dosen
FROM tb_dosen dosen
LEFT JOIN tb_kelas kelas
ON dosen.id_dosen = kelas.id_dosen
Maka tampilan yang akan muncul adalah seperti dibawah ini Dari tampilan diatas, dapat disimpulkan bahwa penggunaan LEFT merupakan perintah untuk menampilkan data berdasarkan data dari kiri(left). dalam script diatas tabel di bagian kiri merupakan tabel yang diketik terlebih dahulu (tb_dosen).
Right Join
SELECT dosen.id_dosen,
dosen.nama_dosen,
dosen.alamat,
kelas.id_kelas,kelas.nama_kelas
FROM tb_dosen dosen
RIGHT JOIN tb_kelas kelas
ON dosen.id_dosen = kelas.id_dosen
FROM tb_dosen dosen
RIGHT JOIN tb_kelas kelas
ON dosen.id_dosen = kelas.id_dosen
Maka tampilan yang akan muncul adalah seperti dibawah ini
- Sebenarnya kebalikan dari Left, Right lebih mengutamakan data dari tabel sebelah kanan. namun karena tb_kelas(kanan) tidak ada yang null, maka tampilannya mirip seperti INNER
2. PIVOT
Pivot merupakan perintah untuk merubah baris mejadi kolom. Yang dimaksud contohnya jika saya ingin menampilkan data mahasiswa dan kelas, yang mana isi dari kelas(SI01, SI02,SI03) akan dijadikan header table, maka dengan pivot ini akan mempermudahnya. Selain itu, bisa juga jika ingin menampilkan jadwal Mata pelajaran/ mata kuliah yang dikelompokkan dalam hariKarena sebenernya MySQL tidak mendukung PIVOT, maka saya akan langsung memberikan contoh programnya saja. berikut merupakan contoh program pivot.
SELECT tb_mahasiswa.nama_mahasiswa,
Max(IF(tb_kelas.nama_kelas = 'SI 01', tb_dosen.nama_dosen, NULL)) AS
'SI 01',
Max(IF(tb_kelas.nama_kelas = 'SI 02', tb_dosen.nama_dosen, NULL)) AS
'SI 02',
Max(IF(tb_kelas.nama_kelas = 'SI 03', tb_dosen.nama_dosen, NULL)) AS
'SI 03'
FROM tb_mahasiswa
join tb_kelas
ON tb_mahasiswa.id_kelas = tb_kelas.id_kelas
join tb_dosen
ON tb_kelas.id_dosen = tb_dosen.id_dosen
GROUP BY tb_mahasiswa.nama_mahasiswa
Max(IF(tb_kelas.nama_kelas = 'SI 01', tb_dosen.nama_dosen, NULL)) AS
'SI 01',
Max(IF(tb_kelas.nama_kelas = 'SI 02', tb_dosen.nama_dosen, NULL)) AS
'SI 02',
Max(IF(tb_kelas.nama_kelas = 'SI 03', tb_dosen.nama_dosen, NULL)) AS
'SI 03'
FROM tb_mahasiswa
join tb_kelas
ON tb_mahasiswa.id_kelas = tb_kelas.id_kelas
join tb_dosen
ON tb_kelas.id_dosen = tb_dosen.id_dosen
GROUP BY tb_mahasiswa.nama_mahasiswa
Program diatas merupakan program if-else dari MySQL, cara membaca program tersebut adalah if(field=value, field_value, null). Jika field sama denga value, maka akan tampil field_value, jika tidak maka akan tampil null, silahkan ganti null seperti yang anda inginkan.
Dan berikut adalah hasil output program diatas
Mungkin beberapa dari pembaca merasa penasaran dengan program PIVOT yang sebenarnya. Karena MySQL tidak mendukung PIVOT, maka saya tidak mempostingnya disini. namun SQL Server mendukung PIVOT. Jadi silahkan lihat disini.
Dalam Setiap pembelajaran. Pasti kita akan sampai pada hal yang sangat sulit dilewati. di saat itulah kita merasa bahwa masih banyak ilmu yang belum kita kuasai. Jadi. Tetaplah belajar. karena ilmu memang tidak ada habisnya. Demikian tutorial yang saya berikan hari ini. Assalamu'alaikum. wr.wb
Materi Selanjutnya : Stored Procedure, Trigger, Dan Function dengan MySQL
Post a Comment for "Lebih lanjut tentang Select di MySQL"