Cara Menampilkan Data di Tabel MySQL Lebih Lanjut
Di dalam sebuah aplikasi terbanyak beberapa data yang di simpan oleh database dan tidak semua data tersebut ditampilkan dalam aplikasi hanya beberapa saja yang ditampilkan di aplikasi. Mengapa tidak semua di tampilkan di aplikasi ? karena yang namanya data itu ada yang sifatnya rahasia dan ada yang sifatnya umum jadi maka dari itu data yang ditampilkan data yang umum sesuai dengan tujuan aplikasi tersebut.
Kali ini admin akan menjelaskan bagaimana menampilkan data dari tabel database mysql. dan admin nanti akan membuat dua tabel yaitu tabel guru dan mapel (mata_pelajaran).
Query untuk membuat database dan juga tabel.
mysql> create database sekolah;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sekolah |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> use sekolah;
Database changed
mysql> create table guru (kode_guru char(10), nama_guru varchar(35), jenis_kelamin enum('L','P'), alamat_guru varchar(50), primary key(kode_guru));
Query OK, 0 rows affected (0.03 sec)
mysql> create table mapel (kode_mapel char(5), nama_mapel varchar(45), kode_kelas varchar(3), kode_guru char(10), primary key(kode_mapel));
Query OK, 0 rows affected (0.03 sec)
mysql>
Kemudian silahkan kalian inputkan minimal 5 data kedalam tabel guru dan mapel atau kalian bisa menginputan data berikut ini.
+-----------+-----------+---------------+-------------+
| kode_guru | nama_guru | jenis_kelamin | alamat_guru |
+-----------+-----------+---------------+-------------+
| KG001 | Khoirudin | L | Jepara |
| KG002 | Amelia | P | Bangsri |
| KG003 | Angel | P | Mlonggo |
| KG004 | Sulistiyo | L | Kembang |
| KG005 | Putri | P | Bangsri |
| KG006 | Pujiono | L | Pakis Aji |
| KG007 | Dewi | P | Kembang |
| KG008 | Yusuf | L | Bangsri |
| KG009 | Yuniar | L | Mlonggo |
| KG010 | Susan | P | Jepara |
+-----------+-----------+---------------+-------------+
TABEL MAPEL
+------------+-----------+-------------+------------+
| kode_mapel | kode_guru | nama_mapel | kode_kelas |
+------------+-----------+-------------+------------+
| MP001 | KG001 | B Indonesia | X |
| MP002 | KG002 | B INggris | X |
| MP003 | KG002 | B Inggris | XII |
| MP004 | KG004 | MTK | X |
| MP005 | KG006 | Agama | X |
| MP006 | KG005 | MTK | XII |
| MP007 | KG002 | B Inggris | XI |
| MP008 | KG006 | AGAMA | XII |
| MP009 | KG008 | PPKN | XI |
| MP010 | KG005 | Produktif | X |
| MP011 | KG010 | IPA | X |
| MP012 | KG009 | Seni Budaya | X |
| MP013 | KG008 | MTK | XI |
| MP014 | KG008 | MTK | XII |
| MP015 | KG001 | B Indonesia | XII |
+------------+-----------+-------------+------------+
Silahkan anda input data di atas sesaui dengan tabel masing-masing. Sebelumnya admin juga sudah menjelaskan tutorial Cara Menampilkan Menambah Mengedit dan Menghapus data di MySQL ( Bagian Cara Menambah data dalam tabel di database mysql (INSERT).
) dan tutorial cara menambahkan data di tabel mysql lebih lanjut .
Format Penulisan Query Select
SELECT yang_akan_ditampilkan FROM nama_tabel
WHERE kondisi_yang_ditampilkan;
Dalam menampilkan data di mysql itu sangat beragam. Dan dari ketiga faktor di atas (yang_akan_ditampilkan, nama_tabel, & kondisi_yang_ditampilkan) sangat berpengaruh dalam menampilkan data di tabel mysql.
Cara Menampilkan Semua Data di Tabel Mysql.
mysql> select*from guru;
+-----------+-----------+---------------+-------------+
| kode_guru | nama_guru | jenis_kelamin | alamat_guru |
+-----------+-----------+---------------+-------------+
| KG001 | Khoirudin | L | Jepara |
| KG002 | Amelia | P | Bangsri |
| KG003 | Angel | P | Mlonggo |
| KG004 | Sulistiyo | L | Kembang |
| KG005 | Putri | P | Bangsri |
| KG006 | Pujiono | L | Pakis Aji |
| KG007 | Dewi | P | Kembang |
| KG008 | Yusuf | L | Bangsri |
| KG009 | Yuniar | L | Mlonggo |
| KG010 | Susan | P | Jepara |
+-----------+-----------+---------------+-------------+
10 rows in set (0.00 sec);
Dari query diatas fungsi dari * (bintang) digunakan untuk menampilkan semua kolom/field yang ada dalam atbel tersebut.
Cara Menampilkan Beberapa Kolom/Field Dalam Tabel Mysql
SELECT nama_field1, nama_field2 ... FROM nama_tabel
nama_field1, dan seterusnya itu digunakan untuk menampilkan kolom/field mana aja yang akan kita tampilkan sesuai dengan tabel yang kita pilih.
Contoh query menampilkan nama_guru dan juga alamat_guru dalam tabel guru.
mysql> select nama_guru, alamat_guru from guru;
+-----------+-------------+
| nama_guru | alamat_guru |
+-----------+-------------+
| Khoirudin | Jepara |
| Amelia | Bangsri |
| Angel | Mlonggo |
| Sulistiyo | Kembang |
| Putri | Bangsri |
| Pujiono | Pakis Aji |
| Dewi | Kembang |
| Yusuf | Bangsri |
| Yuniar | Mlonggo |
| Susan | Jepara |
+-----------+-------------+
10 rows in set (0.00 sec)
Cara Menampilkan Data dengan Seleksi kondisi WHERE
Kali ini kita akan menampilkan data dengan kriteria tertentu menggunakan SELECT WHERE. Kondisi WHERE digunakan unutuk seleksi data yang dinginkan sesuai dengan kriteria.
Contoh misal dari tabel guru di atas admin ingin menampilkan alamatnya Jepara.
mysql> select * from guru where alamat_guru='Jepara';
+-----------+-----------+---------------+-------------+
| kode_guru | nama_guru | jenis_kelamin | alamat_guru |
+-----------+-----------+---------------+-------------+
| KG001 | Khoirudin | L | Jepara |
| KG010 | Susan | P | Jepara |
+-----------+-----------+---------------+-------------+
2 rows in set (0.02 sec)
Didalam kondisi Where kita bisa menggunakan operasi seperti sama dengan (=), kurang dari (<), lebih dari (>) dan lain-lain.
Berikut list yang bisa digunakan dengan kondisi where:
Operator | Keterangan |
= | Sama dengan |
<> atau != | Tidak sama dengan |
<=> | sama dengan (null safe) |
< | kurang dari |
<= | kurang dari atau sama dengan |
> | lebih besar dari |
>= | lebih besar atau sama dengan |
BETWEEN | Berada pada batas tertentu |
IN | Berada di dalam |
IS NULL | Pengecekan apakah berisi NULL |
IS NOT NULL | Pengecekan apakah bukan berisi NULL |
LIKE | Pencarian menggunakan wildcard |
REGEXP atau RLIKE | Pencarian menggunakan Regular Expression |
Operator Aritmatika
Operator | Keterangan |
+ | Penambahan |
- | Pengurangan |
* | Pengalian |
/ | Pembagian |
% | Sisa hasil bagi (modulus) |
Operator Logika
Operator | Keterangan |
NOT atau ! | Logika bukan |
AND atau && | Logika dan |
OR atau || | Logika atau |
XOR | Logika bukan atau (XOR) |
Contoh Query dengan menggunakan kondisi where dan Operator Logika NOT
mysql> select * from guru where alamat_guru != 'Jepara';
+-----------+-----------+---------------+-------------+
| kode_guru | nama_guru | jenis_kelamin | alamat_guru |
+-----------+-----------+---------------+-------------+
| KG002 | Amelia | P | Bangsri |
| KG003 | Angel | P | Mlonggo |
| KG004 | Sulistiyo | L | Kembang |
| KG005 | Putri | P | Bangsri |
| KG006 | Pujiono | L | Pakis Aji |
| KG007 | Dewi | P | Kembang |
| KG008 | Yusuf | L | Bangsri |
| KG009 | Yuniar | L | Mlonggo |
+-----------+-----------+---------------+-------------+
8 rows in set (0.00 sec)
Dari query di atas dapat diartikan kita menampilkan tabel guru dengan spesifikasi alamat_guru selain Jepara.
Cara Menampilkan Data dengan Batas Tertentu LIMIT
Saat membuat sebuah aplikasi kita sudah mempunyai banyak data misal sudah ada 1000 record data tidak mungkin kita menampilkan semua data tersebut dalam satu halaman atau tampilan. Untuk mengatasi hal tersebut maka kita akan menampilkan data dengan batas tertentu misal kita hanya ingin menampilkan 10 data terbaru saja maka kita menggunakan statement LIMIT. Kondisi perintah LIMIT ini digunakan untuk membatasi hasil query SELECT.
Perintah dasar query SELECT LIMIT
SELECT nama_field/kolom FROM nama_tabel WHERE kondisi LIMIT baris_awal, jumlah_baris
mysql> select * from guru where jenis_kelamin='P' LIMIT 0,2;
+-----------+-----------+---------------+-------------+
| kode_guru | nama_guru | jenis_kelamin | alamat_guru |
+-----------+-----------+---------------+-------------+
| KG002 | Amelia | P | Bangsri |
| KG003 | Angel | P | Mlonggo |
+-----------+-----------+---------------+-------------+
2 rows in set (0.00 sec)
Cara Menampilkan Relasi Dua Tabel di Mysql Jadi Satu.
Relasi tabel digunakan untuk menghubungan data yang ada di tabe1 pertama atau kesatu dengan data yang ada di tabel ke dua . Syarat dari relasi tabel tersebut harus ada Primary Key dan juga Scondary Key ( Index ). Dan data dari kedua tabel harus sincron antara tabel satu dengan tabel dua. arti dari sinkron disini maksudnya data PRIMARY KEY yang ada di tabel satu harus ada juga di tabel dua dia sebagai SCONDARY KEY.
Contoh dari data kedua tabel diatas tabel guru dan mapel sudah mempunyai data yang cukup banyak dan data dari kedua tabel tersebut sudah sinkron.
Misal saya ingin menampilkan mapel MTK dan Guru Pengampu. querynya sebagai berikut.
mysql> select * from guru;
+-----------+-----------+---------------+-------------+
| kode_guru | nama_guru | jenis_kelamin | alamat_guru |
+-----------+-----------+---------------+-------------+
| KG001 | Khoirudin | L | Jepara |
| KG002 | Amelia | P | Bangsri |
| KG003 | Angel | P | Mlonggo |
| KG004 | Sulistiyo | L | Kembang |
| KG005 | Putri | P | Bangsri |
| KG006 | Pujiono | L | Pakis Aji |
| KG007 | Dewi | P | Kembang |
| KG008 | Yusuf | L | Bangsri |
| KG009 | Yuniar | L | Mlonggo |
| KG010 | Susan | P | Jepara |
+-----------+-----------+---------------+-------------+
10 rows in set (0.00 sec)
mysql> select*from mapel where nama_mapel='MTK';
+------------+-----------+------------+------------+
| kode_mapel | kode_guru | nama_mapel | kode_kelas |
+------------+-----------+------------+------------+
| MP004 | KG004 | MTK | X |
| MP006 | KG005 | MTK | XII |
| MP013 | KG008 | MTK | XI |
| MP014 | KG008 | MTK | XII |
+------------+-----------+------------+------------+
4 rows in set (0.00 sec)
mysql> select nama_guru,nama_mapel,kode_kelas from mapel,guru where mapel.kode_guru=guru.kode_guru AND mapel.nama_mapel='MTK';
+-----------+------------+------------+
| nama_guru | nama_mapel | kode_kelas |
+-----------+------------+------------+
| Sulistiyo | MTK | X |
| Putri | MTK | XII |
| Yusuf | MTK | XI |
| Yusuf | MTK | XII |
+-----------+------------+------------+
4 rows in set (0.01 sec)
mysql>
Dari statement query diatas (select nama_guru,nama_mapel,kode_kelas from mapel,guru where mapel.kode_guru=guru.kode_guru AND mapel.nama_mapel='MTK';) kita menentukan kolom/field mana yang akan kita ambil (nama_guru,nama_mapel,kode_kelas) kemudian tabel apa saja yang terlibat (guru,mapel) kemudian kondisi relasi dari primary dengan foreign key (mapel.kode_guru=guru.kode_guru) dan juga operator AND (logikan dan) stament pilihan (mapel.nama_mapel='MTK')
Dari kedua tabel tersebut sebelmunya sudah terdapat data yang sincron dan terelasi dari tabel mapel terdapat kolom/filed kode_guru sebagai SCONDARY KEY dan di tabel guru juga terdapat kolom kode_guru sebagai PRIMARY KEY. Data yang ada dalam colom kode_guru dari kedua tabel tersebut harus sincron atau terelasi.
Kalau ingin menampilkan semua alamat_guru yang dari Jepara dan Kembang bagaimana ya?
ReplyDelete