21 April 2013,
 35

Menampilkan data dari sebuah tabel mungkin merupakan hal paling sering kita lakukan dalam menangani database. Pembuatan tabel MySQL hanya perlu di lakukan sekali di awal implementasi, namun input data (INSERT) dan menampilkannya kembali (SELECT) dalam format yang diinginkan merupakan rutinitas selama database masih digunakan. Pada tutorial kali ini kita akan membahas cara menampilkan data dari tabel MySQL dengan query SELECT. Perintah SELECT akan dibahas berkaitan dengan opsi WHERE, ORDER BY, dan LIMIT

Karena pembahasan query SELECT memiliki banyak variasi yang membuatnya memiliki banyak fitur, untuk contoh tabel yang akan kita gunakan saya membuat 2 buah tabel dengan nama mata_kuliah dan daftar_dosen.

Berikut adalah query yang digunakan untuk merancang tabel mata_kuliah dan daftar_dosen

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mahasiswa          |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.13 sec)

mysql> USE mahasiswa;
Database changed

mysql> CREATE TABLE daftar_dosen (NIP CHAR(10) PRIMARY KEY,
nama_dosen VARCHAR(50) NOT NULL, no_hp CHAR(13),
alamat VARCHAR(100));
Query OK, 0 rows affected (0.10 sec)

mysql> DESC daftar_dosen;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| NIP        | char(10)     | NO   | PRI | NULL    |       |
| nama_dosen | varchar(50)  | NO   |     | NULL    |       |
| no_hp      | char(13)     | YES  |     | NULL    |       |
| alamat     | varchar(100) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
4 rows in set (0.08 sec)

mysql> CREATE TABLE mata_kuliah (kode_matkul CHAR(6) PRIMARY KEY,
nama_matkul VARCHAR(50) NOT NULL,
jumlah_SKS TINYINT UNSIGNED DEFAULT '2',
semester TINYINT,NIP_dosen CHAR(10));
Query OK, 0 rows affected (0.04 sec)

mysql> DESC mata_kuliah;
+-------------+---------------------+------+-----+---------+-------+
| Field       | Type                | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+-------+
| kode_matkul | char(6)             | NO   | PRI | NULL    |       |
| nama_matkul | varchar(50)         | NO   |     | NULL    |       |
| jumlah_SKS  | tinyint(3) unsigned | YES  |     | 2       |       |
| semester    | tinyint(4)          | YES  |     | NULL    |       |
| NIP_dosen   | char(10)            | YES  |     | NULL    |       |
+-------------+---------------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

Berikutnya adalah mengisi tabel tersebut dengan data sample. Dalam contoh ini saya menggunakan data sample seperti pada tabel dibawah ini:

Data input untuk tabel daftar_dosen:

NIP
Nama Dosen
No HP
Alamat
0160436012Sabrina Sari0812349900Pekanbaru
0260432002Maya Ari Putri0812345234Palembang
0275430005Susi Indriani0812656532Bogor
0480432066Tia Santrini0812451177Padang
0576431001M. Siddiq0812979005Jakarta
0770435006Rubin Hadi0812567678Papua
0869437003Mustalifah0812338877Aceh
1080432007Arif Budiman0812456345Makasar

Data input untuk tabel mata_kuliah:

Kode Mata Kuliah
Nama Matakuliah
Jumlah SKS
Semester
Nip Dosen
MATDASMatematika Dasar410160436012
FISDASFisika Dasar210480432066
TEKKOMTeknik Kompilasi260480432066
JARKOMJaringan Komputer330770435006
DTBASEDatabase440275430005
SISOPRSistem Operasi240160436012
MIKROPMikro Prosesor250480432066

Anda boleh menginputnya satu per satu dengan perintah INSERT, seperti yang telah kita pelajari pada Tutorial Menambahkan data ke dalam Tabel (INSERT), tetapi saya juga menyediakan file txt untuk diinput melalui query LOAD DATA INFILE, seperti pada Tutorial Menambahkan data dari File (LOAD DATA INFILE), file text tersebut dapat diambil dari link berikut: sample data tabel daftar_dosen dan mata_kuliah.

Khusus untuk yang mencoba meninput data melalui perintah LOAD DATA INFILE, berikut query yang diperlukan (asumsi anda meletakkan file mata_kuliah.txt dan daftar_dosen.txt pada folder D:\MySQL )

mysql> LOAD DATA INFILE 'D:\\MySQL\\daftar_dosen.txt'
INTO TABLE daftar_dosen
FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
Query OK, 8 rows affected (0.06 sec)
Records: 8  Deleted: 0  Skipped: 0  Warnings: 0

mysql> SELECT * FROM daftar_dosen;
+------------+----------------+------------+-----------+
| NIP        | nama_dosen     | no_hp      | alamat    |
+------------+----------------+------------+-----------+
| 0160436012 | Sabrina Sari   | 0812349900 | Pekanbaru |
| 0260432002 | Maya Ari Putri | 0812345234 | Palembang |
| 0275430005 | Susi Indriani  | 0812656532 | Bogor     |
| 0480432066 | Tia Santrini   | 0812451177 | Padang    |
| 0576431001 | M. Siddiq      | 0812979005 | Jakarta   |
| 0770435006 | Rubin Hadi     | 0812567678 | Papua     |
| 0869437003 | Mustalifah     | 0812338877 | Aceh      |
| 1080432007 | Arif Budiman   | 0812456345 | Makasar   |
+------------+----------------+------------+-----------+
8 rows in set (0.00 sec)

mysql> LOAD DATA INFILE 'D:\\MySQL\\mata_kuliah.txt'
INTO TABLE mata_kuliah
FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
Query OK, 7 rows affected (0.04 sec)
Records: 7  Deleted: 0  Skipped: 0  Warnings: 0

mysql> SELECT * FROM mata_kuliah;
+-------------+-------------------+------------+----------+------------+
| kode_matkul | nama_matkul       | jumlah_SKS | semester | NIP_dosen  |
+-------------+-------------------+------------+----------+------------+
| DTBASE      | Database          |          4 |        4 | 0275430005 |
| FISDAS      | Fisika Dasar      |          2 |        1 | 0480432066 |
| JARKOM      | Jaringan Komputer |          3 |        3 | 0770435006 |
| MATDAS      | Matematika Dasar  |          4 |        1 | 0160436012 |
| MIKROP      | Mikro Prosesor    |          2 |        5 | 0480432066 |
| SISOPR      | Sistem Operasi    |          2 |        4 | 0160436012 |
| TEKKOM      | Teknik Kompilasi  |          2 |        6 | 0480432066 |
+-------------+-------------------+------------+----------+------------+
7 rows in set (0.00 sec)

Format dasar penggunaan query SELECT

Biasanya pada saat ingin menampilkan data, kita butuh setidaknya 3 hal: 1. Apa saja kolom yang ingin ditampilkan, 2. Nama tabel yang akan ditampilkan, dan 3. Kondisi untuk menampilkan data. Query SELECT pada dasarnya juga terdiri dari 3 hal tersebut:

SELECT apa_yang_akan_ditampilkan
FROM tabel_apa
WHERE kondisi_apa_data_ditampilkan;

Ketiga faktor tersebut akan kita bahas dalam tutorial kali ini, dan karena kebutuhan menampilkan data sangat beragam, MySQL memiliki banyak opsi yang dapat digunakan, berikut adalah format dasar query SELECT yang saya ambil dari manual MySQL

SELECT
   [ALL | DISTINCT | DISTINCTROW ]
      [HIGH_PRIORITY]
      [STRAIGHT_JOIN]
      [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
      [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
   select_expr [, select_expr ...]
   [FROM table_references
   [WHERE where_condition]
   [GROUP BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
   [HAVING where_condition]
   [ORDER BY {col_name | expr | position}
      [ASC | DESC], ...]
   [LIMIT {[offset,] row_count | row_count OFFSET offset}]
   [PROCEDURE procedure_name(argument_list)]
   [INTO OUTFILE 'file_name'
      [CHARACTER SET charset_name]
      export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name]]
   [FOR UPDATE | LOCK IN SHARE MODE]]

Sebagian besar kita tidak akan membutuhkan semua opsi tersebut, namun setidaknya MySQL menyediakan banyak pilihan untuk menampilkan hasil query SELECT. Kita akan membahas beberapa diantaranya.


Menampilkan seluruh isi tabel MySQL

Mungkin inilah query SELECT yang paling mudah diingat dan paling populer, yaitu cara menampilkan seluruh data dari sebuah tabel.

Format dasar query select untuk menampilkan seluruh isi tabel adalah:

SELECT * FROM nama_tabel

Tanda bintang (*) adalah wildcard untuk menampilkan seluruh kolom

Contoh query untuk menampilkan seluruh isi tabel daftar_dosen adalah:

mysql> SELECT * FROM daftar_dosen;
+------------+----------------+------------+-----------+
| NIP        | nama_dosen     | no_hp      | alamat    |
+------------+----------------+------------+-----------+
| 0160436012 | Sabrina Sari   | 0812349900 | Pekanbaru |
| 0260432002 | Maya Ari Putri | 0812345234 | Palembang |
| 0275430005 | Susi Indriani  | 0812656532 | Bogor     |
| 0480432066 | Tia Santrini   | 0812451177 | Padang    |
| 0576431001 | M. Siddiq      | 0812979005 | Jakarta   |
| 0770435006 | Rubin Hadi     | 0812567678 | Papua     |
| 0869437003 | Mustalifah     | 0812338877 | Aceh      |
| 1080432007 | Arif Budiman   | 0812456345 | Makasar   |
+------------+----------------+------------+-----------+
8 rows in set (0.00 sec)

Menampilkan kolom tertentu dari sebuah tabel (SELECT … FROM)

Jika kita ingin menampilkan hanya sebahagian dari seluruh kolom dari sebuah tabel, kita dapat menentukan kolom mana saja yang akan ditampilkan.

Format dasarnya adalah sebagai berikut:

SELECT nama_kolom1, nama_kolom2,... FROM nama_tabel

nama_kolom1 dan nama_kolom2 adalah nama kolom yang ingin kita tampilkan. Misalkan kita ingin menampilkan kolom nama_dosen dan alamat dari seluruh dosen yang terdapat pada tabel daftar_dosen, maka querynya adalah:

mysql> SELECT nama_dosen, alamat FROM daftar_dosen;
+----------------+-----------+
| nama_dosen     | alamat    |
+----------------+-----------+
| Sabrina Sari   | Pekanbaru |
| Maya Ari Putri | Palembang |
| Susi Indriani  | Bogor     |
| Tia Santrini   | Padang    |
| M. Siddiq      | Jakarta   |
| Rubin Hadi     | Papua     |
| Mustalifah     | Aceh      |
| Arif Budiman   | Makasar   |
+----------------+-----------+
8 rows in set (0.05 sec)

Memfilter/Menyeleksi data dari tabel MySQL (SELECT…WHERE…)

Jika kita menginginkan hanya data yang memenuhi kriteria tertentu saja yang akan ditampilkan, maka hal ini dapat dilakukan dengan menambahkan perintah WHERE pada query SELECT.

Kondisi WHERE pada perintah SELECT digunakan untuk menyeleksi data yang diinginkan, sedangkan data yang tidak memenuhi kriteria, tidak akan ditampilkan.

Format dasar query SELECT…WHERE adalah:

SELECT nama_kolom1, nama_kolom2,... FROM nama_tabel WHERE kondisi

Contohnya untuk menampilkan data dosen yang beralamat di Padang, dapat menggunakan query berikut:

mysql> SELECT NIP,nama_dosen FROM daftar_dosen WHERE alamat='Padang';
+------------+--------------+
| NIP        | nama_dosen   |
+------------+--------------+
| 0480432066 | Tia Santrini |
+------------+--------------+
1 row in set (0.00 sec)

Kondisi WHERE sangat fleksibel dan bisa juga menggunakan kondisi operasi seperti lebih besar (>), lebih kecil (<), tidak sama (<>), dan lain-lain. List lengkap dari penggunaan kondisi yang dapat digunakan pada SELECT…WHERE adalah:

Operasi Aritmatik

Operator
Penjelasan
+Penambahan
-Pengurangan
*Pengalian
/Pembagian
%Sisa hasil bagi (modulus)

Operasi Logika

Operator
Penjelasan
NOT atau !Logika bukan
AND atau &&Logika dan
OR atau ||Logika atau
XORLogika bukan atau (XOR)

Operasi Perbandingan

Operator
Penjelasan
=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
BETWEENBerada pada batas tertentu
INBerada di dalam
IS NULLPengecekan apakah berisi NULL
IS NOT NULLPengecekan apakah bukan berisi NULL
LIKEPencarian menggunakan wildcard
REGEXP atau RLIKEPencarian menggunakan Regular Expression

Contohnya jika kita ingin menampilkan seluruh mata kuliah yang diajarkan di semester 4 keatas, maka querynya adalah:

mysql> SELECT * FROM mata_kuliah WHERE semester >= 4;
+-------------+------------------+------------+----------+------------+
| kode_matkul | nama_matkul      | jumlah_SKS | semester | NIP_dosen  |
+-------------+------------------+------------+----------+------------+
| DTBASE      | Database         |          4 |        4 | 0275430005 |
| MIKROP      | Mikro Prosesor   |          2 |        5 | 0480432066 |
| SISOPR      | Sistem Operasi   |          2 |        4 | 0160436012 |
| TEKKOM      | Teknik Kompilasi |          2 |        6 | 0480432066 |
+-------------+------------------+------------+----------+------------+
4 rows in set (0.00 sec)

Penggabungan beberapa kondisi juga dapat dilakukan, contohnya kita ingin menampilkan seluruh mata kuliah dengan jumlah SKS=2 dan diajarkan pada semester dibawah 5, maka querynya:

mysql> SELECT * FROM mata_kuliah WHERE jumlah_SKS=2 AND semester < 5;
+-------------+----------------+------------+----------+------------+
| kode_matkul | nama_matkul    | jumlah_SKS | semester | NIP_dosen  |
+-------------+----------------+------------+----------+------------+
| FISDAS      | Fisika Dasar   |          2 |        1 | 0480432066 |
| SISOPR      | Sistem Operasi |          2 |        4 | 0160436012 |
+-------------+----------------+------------+----------+------------+
2 rows in set (0.07 sec)

Mengurutkan hasil tampilan data MySQL (SELECT…ORDER BY)

MySQL menyediakan perintah opsional ORDER BY untuk mengurutkan data yang di hasilkan. Query dasar untuk SELECT…ORDER BY adalah:

SELECT nama_kolom1,... FROM nama_tabel WHERE kondisi ORDER BY nama_kolom_urut

nama_kolom_urut adalah kolom yang akan kita ututkan. Pengurutan bisa dari paling kecil ke besar, ataupun besar ke kecil. Pilihan ini dapat diatur dengan penambahan instruksi ASC (singkatan dari ascending) untuk pengurutan dari kecil ke besar, dan DESC (singkatan dari descending) untuk urutan dari besar ke kecil. Jika tidak di dijelaskan, secara default bawaan MySQL, perintah ORDER BY akan menggunakan ASC.

Contohnya jika kita menginginkan tampilan mata kuliah dengan sks lebih dari 2 secara berurutan dari yang paling kecil, maka querynya:

mysql> SELECT * FROM mata_kuliah WHERE jumlah_SKS > 2 ORDER BY jumlah_SKS;
+-------------+-------------------+------------+----------+------------+
| kode_matkul | nama_matkul       | jumlah_SKS | semester | NIP_dosen  |
+-------------+-------------------+------------+----------+------------+
| JARKOM      | Jaringan Komputer |          3 |        3 | 0770435006 |
| DTBASE      | Database          |          4 |        4 | 0275430005 |
| MATDAS      | Matematika Dasar  |          4 |        1 | 0160436012 |
+-------------+-------------------+------------+----------+------------+
3 rows in set (0.06 sec)

Jika kita ingin menampilkan seluruh dosen pada tabel daftar_dosen dengan diurutan kolom alamat secara abjad, maka querynya adalah sebagai berikut:

mysql> SELECT * FROM daftar_dosen ORDER BY alamat ASC;
+------------+----------------+------------+-----------+
| NIP        | nama_dosen     | no_hp      | alamat    |
+------------+----------------+------------+-----------+
| 0869437003 | Mustalifah     | 0812338877 | Aceh      |
| 0275430005 | Susi Indriani  | 0812656532 | Bogor     |
| 0576431001 | M. Siddiq      | 0812979005 | Jakarta   |
| 1080432007 | Arif Budiman   | 0812456345 | Makasar   |
| 0480432066 | Tia Santrini   | 0812451177 | Padang    |
| 0260432002 | Maya Ari Putri | 0812345234 | Palembang |
| 0770435006 | Rubin Hadi     | 0812567678 | Papua     |
| 0160436012 | Sabrina Sari   | 0812349900 | Pekanbaru |
+------------+----------------+------------+-----------+
8 rows in set (0.00 sec)

Membatasi hasil query SELECT (SELECT…LIMIT)

MySQL menyediakan pilihan opsional LIMIT untuk membatasi hasil query SELECT, format dasar query SELECT…LIMIT adalah sebagai berikut:

SELECT nama_kolom1 FROM nama_tabel WHERE kondisi LIMIT baris_awal, jumlah_baris

Dimana baris_awal adalah awal nomor baris yang ditampilkan, dan jumlah_baris adalah jumlah baris yang diurutkan dari baris_awal. Nomor baris pada MySQL diawali dengan nomor 0.

Misalkan kita ingin menampilkan data 3 nama dosen paling atas yang dirutkan berdasarkan nama, maka querynya adalah:

mysql> SELECT * FROM daftar_dosen ORDER BY nama_dosen ASC LIMIT 0,3;
+------------+----------------+------------+-----------+
| NIP        | nama_dosen     | no_hp      | alamat    |
+------------+----------------+------------+-----------+
| 1080432007 | Arif Budiman   | 0812456345 | Makasar   |
| 0576431001 | M. Siddiq      | 0812979005 | Jakarta   |
| 0260432002 | Maya Ari Putri | 0812345234 | Palembang |
+------------+----------------+------------+-----------+
3 rows in set (0.00 sec)

Jika kita hanya memberikan 1 angka saja di belakang instruksi LIMIT, maka MySQL menganggap bahwa angka dihitung dari baris teratas (baris ke 0). Contohnya jika kita ingin menampilkan 5 baris teratas mata kuliah yang diurutkan berdasarkan nama, maka querynya:

mysql> SELECT * FROM mata_kuliah ORDER BY nama_matkul LIMIT 5;
+-------------+-------------------+------------+----------+------------+
| kode_matkul | nama_matkul       | jumlah_SKS | semester | NIP_dosen  |
+-------------+-------------------+------------+----------+------------+
| DTBASE      | Database          |          4 |        4 | 0275430005 |
| FISDAS      | Fisika Dasar      |          2 |        1 | 0480432066 |
| JARKOM      | Jaringan Komputer |          3 |        3 | 0770435006 |
| MATDAS      | Matematika Dasar  |          4 |        1 | 0160436012 |
| MIKROP      | Mikro Prosesor    |          2 |        5 | 0480432066 |
+-------------+-------------------+------------+----------+------------+
5 rows in set (0.00 sec)

35 responses on “Tutorial Belajar MySQL Part 21: Menampilkan Data dari Tabel MySQL (SELECT)

  1. Agus says:

    Yang sintaks like dong gan kasih contohnya terimakasih.

  2. arief says:

    dari awal bab 1 sampe bab 20 saya mengerti dengan mudah… anda hebat dalam memberikan teori dan keterngannya… seandainy saya bisa belajar lebih, saya pengen bisa kursus dgn anda.. tp dgn segini setidakny sudah menjadi dasar pengenalan saya terhadap program database MySQL.. terima kasih banyak..

    • Duniailkom says:

      Terimakasih komentarnya mas Arief, jadi tambah semangat ni melanjutkan tutorial MySQL. Ilmu saya belum seberapa untuk buat kursus mas, hehe.. Tp saya senang tutorial ini ternyata mudah diikuti, mudah-mudahan bermanfaat juga bagi rekan-rekan yang lain :)

  3. arief says:

    Super sekali Ơm… (Y) bahasanya mudah dicerna oleh saya yg newbie banget ttg dbms khususnya mysql. Saya harap website ini kedepannya lebih maju lg. Dan website ini jg sdh saya bookmark spy gk lupa.

  4. ainun16 says:

    maaf sbelumnya.. saya pengen buat query yg dikirim via sms, isinya berupa nilai siswa..
    misal keyword sms= nilai#nis => reply sms= nim 123 nilai mtk:90,bhs=75,ipa=87 (semua mapel keluar)
    logika select nya gimana.. sama sebaiknya tabel nilai tiap mapel sendiri2 ato 1tabel nilai untuk beberapa mapel..
    sya udah lama pusing karena ini.. maklum sya belajarnya loncat2 :)
    klo reply nya hanya nilai dari 1 mapel udah bisa… kalo yg reply nya semua nilai dari semua mapel ini yg saya masih bingung.. thx sebelumnya.. maaf klo banyak nanya..

  5. bayu says:

    tutorialnya lengkap banget..niat banget buat ngajarinnya…n gampang dipahamin..kebetulan lagi ngerjain tugas yang pake mysql..thanks banget infonya…

  6. yue says:

    pagi mas
    mas saya mau tanya kalau perintah Mysqlnya mengambil 3 kriteria dari satu tabel bisa ndak mas????
    saya coba pakai script ini kok ndak bisa…..
    “SELECT * FROM soal WHERE id_mapel=’$id_mapel’, id_kelas=’$id_kelas’ AND level=1 ORDER BY RAND() LIMIT 0,10″
    bingunggg
    mohon penjelasannya
    terima kasihhh,,,,

    • Andre says:

      Pagi juga mas yue, jawabannya: bisa mas, malah bisa lebih dari 3 kriteria jika tabel kita memang membutuhkannya. Tinggal mengkombinasikan logika AND dan OR.

      Dari query yang saya lihat,sepertinya kurang operator perbandingannya 1 lagi mas. Karena kalau untuk 3 kriteria, harusnya ada query ‘… where a=1 and b=2 and c=3′,

      kalau dari contohnya, boleh dicoba:
      “SELECT * FROM soal WHERE id_mapel=’$id_mapel’ AND id_kelas=’$id_kelas’ AND level=1 ORDER BY RAND() LIMIT 0,10″

      Mudah2an bisa membantu…

  7. taufik says:

    Pagi bang, saya punya masalah menampikan 2 tabel yg tidak memiliki hubungan bisa di bilang tabel satu dan dua.
    tabel satu memiliki field id nama, umur dan tanggal lahir sedangkan tabel dua memiliki field nomor,a dan b.

    Record dari tabel satu dengan field id = 1,2,3 dan field nama= a,b,c dan filed umur=27,23,25 tanggal lahir = 1991-01-01,1992-01-01,1993-01-01.

    Record dari tabel dua dengan field nomor=7,8,9 dan field a=adhi,taufik,hidayat dan field b= c,d,e.
    disini saya akan menampilkan field id,nama dari tabel satu bersama field b tabel dua dengan perintah select id,nama,b from satu,dua, namun hasilnya berulang.

    Jadi menurut abang bisa tidak hasilnya tidak berulang – ulang yaitu dengan hasil field id =1,2,3 dan field nama=a,b,c dan field b=c,d,f dari penggabungan tabel tersebut??
    bagaima bentuk perintahnya bang??
    mohon bantuannya!!

    • Andre says:

      Kalau menggunakan perintah SELECT tersebut, hasilnya akan sama dengan perintah JOIN. Syarat untuk perintah SELECT..JOIN adalah harus ada salah satu kolom yang menjadi penghubung kedua tabel. Namun jika tidak ada kolom yang menjadi penghubung, hasilnya akan berulang.

      Terlepas dari desain database dan tabel yang mungkin sebaiknya dirubah agar ada hubungan, cara alternatif menurut saya bisa dengan membuat tabel laporan sementara untuk menampung hasil query. Contoh querynya: CREATE TABLE report SELECT * from a;

      Perintah query untuk membuat tabel dari hasil query ini rencananya juga akan saya bahas pada materi MySQL selanjutnya, semoga berkenan menunggu…

  8. Mus K. Tunaro says:

    Ribuan terima kasih telah berbagi. Semoga duniailkom semakin maju, dan berkahnya mengalir terus. Aamiin !!! Izinkan saya sedot utk belajar!

  9. miqdar says:

    Permisi mau tanya tentang limit kalo kaya gini artinya apa ya?
    LIMIT 30 , 300″
    trims

    • Andre says:

      Penjelasan tentang perintah limit sudah saya jelaskan dalam tutorial ini, LIMIT 30,300 berarti membatasi hasil tampilan data dari tabel dimulai dari hasil baris ke 30, dan ambil sebanyak 300 baris data setelahnya.

  10. james says:

    Mas, saya mau tanya ni, bagaimana caranya menampilkan data dari 3 tabel? kemudian bagaimana kalau kita mau memasukan field kuncinya data-data dari field tersebut bisa tampil?

  11. ucok says:

    tanya mas.. tiap tabel itu PK nya harus berbentuk id(int) ya? kalau berbentuk varchar gimana bisa gak?
    contoh ada 2 tabel (1 tabel PK nya integer) & (1 tabel lainnya varchar) di relasi bisa gk?
    trus kalau mau menampilkan data di tabel (PK varchar) itu gimana ya (query sql nya)?

    • Andre says:

      Primary Key (PK) di dalam tabel tidak harus bertipe data int kok, tapi bisa juga berupa tipe data lainnya seperti varchar, atau bahkan gabungan dari 2 kolom.

      Untuk menggabungkan tabel (di relasi-kan), keduanya harus memiliki tipe data yang sama, atau dalam teori database, Primary Key dan Foreign Key harus bertipe sama agar bisa digabung.

      Untuk menampilkan data dari tabel dengan primary key tidak ada perbedaan dengan tabel yang tanpa primary key, bisa menggunakan query SELECT yang kita bahas pada halaman ini.

      Semoga bisa membantu :)

  12. ucok says:

    tanya lagi mas. saya punya 2 tabel. sebut saja tabel A dan tabel B. ke2 tabel saling berhubungan.

    Saya ingin menampilkan data di tabel B, nah bagaimana menampilkan data di tabel B, sekaligus menampilkan 1 data dari tabel A? kalau tabel B langsung ditampilkan, maka akan ada data yg berbentuk angka karena itu FK dari tabel A. saya ingin FK nya itu berbentuk data dari tabel A bukan angka. thanksss

  13. marjum badarudin says:

    master mau tanya
    querynya gmn? kalau pengen menampilakan siswa yang belum dapat kelas?? aq pny tabel siswa, kelas dan ruang.. kita menampilkan data dari siswa yang belum pernah diinputkan di ruang. itu carana gimana terimakasih

    • Andre says:

      Untuk kasus ini, bisa menggunakan query NOT IN.

      Misalkan dari tabel siswa dan ruang ada kolom ‘nama’ yang menghubungkan kedua tabel, sehingga query untuk menampilkan seluruh nama yang tidak ada di tabel ruang adalah : SELECT * FROM siswa WHERE nama NOT IN (SELECT * FROM RUANG).

      Saya memang belum sempat membuat tutorialnya, mudah2an nanti kesampaian untuk membuat tutorial yang lebih detail. Semoga bisa membantu :)

  14. Alhamdulillah sob… sungguh sangat membantu… tutorialnya sungguh sangat mudah dicerna… ini yang ane cari selama ini… sukses selalu buat admin blog ini… aminnn ya rabb…

    • Andre says:

      Amiin… terima kasih atas doa dan dukungannya mas Firman, saya juga senang bisa membantu rekan-rekan yang lain, mudah-mudahan apa yang saya bagi bisa bermanfaat..

  15. Anonymous says:

    terimakasih sangat membantu sekali :DD

  16. arya says:

    bagus sekali mas web tutorialnya hehe
    sistematis dan langsung nyantol
    saya jadi cepet keinget lagi, g usah buka buku yg gede
    maturnuwun …..

  17. Edwin says:

    Akhirnya… Ada juga Tutorial yang Lengkap..setelah berlama-lama stres di php database…ketemu juga solusinya disini…thx ya tutorialnya,,..

  18. min,saya mau nannya
    kalo sql untuk menampilkan data yang paling awal gimana ya?
    soalnya saya lagi bikin program aplikasi metode fifo
    mohon bantuannya ya..

    • Andre says:

      MySQL menyimpan data tidak memperhitungkan kapan data tersebut di input. Namun jika Winda ingin menampilkan data dengan cara ‘First in First out’, bisa diakali dengan menambahkan 1 kolom untuk ‘tanggal input’.

      Kolom tanggal_input ini bisa di rancang secara otomatis (misalnya dengan PHP) sehingga pada saat ada penambahan data baru, kolom tanggal_input bisa langsung terisi dengan waktu saat itu. Untuk menampilkan data, kita tinggal mengurutkannya berdasarkan tanggal_input.

  19. Desta says:

    mas klo select data dari 3 tabel caranya gmn ya??

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>