KATEGORI : 921411236tugas6

Tugas 6 (921411236)

09 January 2013 21:10:02 Dibaca : 124

Relasi Tabel Dalam Mysql

Relasi table pada database sangat diperlukan untuk menyederhanakan data-data kita,dan supaya mudah untuk diatur.Ada beberapa cara yang digunakan untuk merelasikan table.Pada pelajaran kali ini saya akan mengajarkan cara relasi database dengan menggunakan keluarga JOIN.Relasi table dengan Join ada 6 macam.

ï‚· CROSS JOIN

ï‚· STRAIGHT JOIN

ï‚· INNER JOIN

ï‚· RIGHT JOIN

ï‚· LEFT JOIN

ï‚· NATURAL JOIN

Contoh:

Anda membuat table namanya nilai dengan huruf kecil semua.untuk menampilkan isi dari table

gunakan query berikut

select * from nilai //work

select * from Nilai //don’t work

select * from NILAI //don’t work

SeLeCt * FroM nilai //work

Sekarang masuk ke mysql server anda jika memakai console ketik mysql –u root –p [enter] masukkan password. Setelah itu masuk ke database produk mysql> use produk Lalu untuk melihat table yang sudah dibuat ketik perintah berikut

mysql> show tables;

+------------------+

| Tables_in_produk |

+------------------+

| jenis |

| produk |

+------------------+

2 rows in set (0.00 sec)

Disitu terdapat dua table yang ingin kita relasikan yaitu table jenis dan produk.Untuk meliat deskripsi dari kedua table tersebut gunakan query berikut

mysql> desc produk;

+-----------+-------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+-----------+-------------+------+-----+---------+----------------+

| id_produk | int(11) | NO | PRI | NULL | auto_increment |

| nm_produk | varchar(40) | YES | | NULL | |

| no_jenis | int(3) | YES | | NULL | |

+-----------+-------------+------+-----+---------+----------------+

3 rows in set (0.01 sec)

mysql> desc jenis

-> ;

+----------+-------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+----------+-------------+------+-----+---------+----------------+

| no_jenis | int(11) | NO | PRI | NULL | auto_increment |

| nm_jenis | varchar(20) | YES | | NULL | |

+----------+-------------+------+-----+---------+----------------+

2 rows in set (0.01 sec)

Perhatikan pada table jenis dan produk terdapat field yang sama yaitu no_jenis.yang akan kita gunakan untuk merelasikan kedua table berikut.

Pada table produk primary key nya adalah id_produk sedangkan pada table jenis primary key nya adalah no_jenis.Nah,pada table jenis no_jenis adalah kunci primer(primary key),sedangkan pada table produk no_jenis adalah kunci tamu(foreign key).

Sekarang kita lihat isi dari masing-masing table berikut

mysql> select * from jenis;

+----------+------------+

| no_jenis | nm_jenis |

+----------+------------+

| 1 | Furniture |

| 2 | Elektronik |

| 3 | FOOD |

+----------+------------+

3 rows in set (0.00 sec)

mysql> select * from produk;

+-----------+-----------+----------+

| id_produk | nm_produk | no_jenis |

+-----------+-----------+----------+

| 1 | Lemari | 1 |

| 2 | Kulkas | 2 |

| 3 | Meja | 1 |

| 4 | Bangku | 1 |

| 5 | Televisi | 2 |

| 6 | Komputer | 2 |

+-----------+-----------+----------+

6 rows in set (0.00 sec)

Nah pada field/kolom no_jenis pada table jenis dan produk ,kita bermaksud menghubungkan.

JOIN TABLE

1.INNER JOIN

Inner Join konseprnya sama seperti Cross Join Tidak ada perbedaan apapun mysql> select id_produk,nm_produk,nm_jenis from produk inner join jenis on produk.no_jenis=jenis.no_jenis;

+-----------+-----------+------------+

| id_produk | nm_produk | nm_jenis |

+-----------+-----------+------------+

| 1 | Lemari | Furniture |

| 2 | Kulkas | Elektronik |

| 3 | Meja | Furniture |

| 4 | Bangku | Furniture |

| 5 | Televisi | Elektronik |

| 6 | Komputer | Elektronik |

+-----------+-----------+------------+

6 rows in set (0.00 sec)

mysql> select id_produk,nm_produk,nm_jenis from produk inner join jenis where produk.no_jenis=jenis.no_jenis;

+-----------+-----------+------------+

| id_produk | nm_produk | nm_jenis |

+-----------+-----------+------------+

| 1 | Lemari | Furniture |

| 2 | Kulkas | Elektronik |

| 3 | Meja | Furniture |

| 4 | Bangku | Furniture |

| 5 | Televisi | Elektronik |

| 6 | Komputer | Elektronik |

+-----------+-----------+------------+

6 rows in set (0.00 sec)

2.LEFT JOIN

Left Join digunakan untuk menampilkan semua record pada table di sebelah kiri .

mysql> select id_produk,nm_produk,nm_jenis from produk left join jenis on produk.no_jenis=jenis.no_jenis;

+-----------+-----------+------------+

| id_produk | nm_produk | nm_jenis |

+-----------+-----------+------------+

| 1 | Lemari | Furniture |

| 2 | Kulkas | Elektronik |

| 3 | Meja | Furniture |

| 4 | Bangku | Furniture |

| 5 | Televisi | Elektronik |

| 6 | Komputer | Elektronik |

+-----------+-----------+------------+

6 rows in set (0.00 sec)

Kita Lihat, Pada contoh diatas left join akan menampilkan semua record pada table di sebelah kiri yaitu table produk sedangkan table jenis berada disebelah kanan sehingga table jenis akan menyesuaikan .

3.RIGHT JOIN

Kebalikan dari left join ,right join digunakan untuk menampilkan semua record pada table di sebelah kanan.

mysql> select id_produk,nm_produk,nm_jenis from produk right join jenis on produk.no_jenis=jenis.no_jenis;

+-----------+-----------+------------+

| id_produk | nm_produk | nm_jenis |

+-----------+-----------+------------+

| 1 | Lemari | Furniture |

| 2 | Kulkas | Elektronik |

| 3 | Meja | Furniture |

| 4 | Bangku | Furniture |

| 5 | Televisi | Elektronik |

| 6 | Komputer | Elektronik |

| NULL | NULL | FOOD |

+-----------+-----------+------------+

7 rows in set (0.00 sec)

Dapat kita lihat Table jenis akan ditampilkan semua sehingga untuk field/kolom nm_jenis FOOD karena tidak ada pasangan di table produk maka table produk akan otomatis mengisinya dengan NULL.

Warning!!

Right Join dan Left Join tidak bias menggunakan klausa where sehingga apabila kita gunakan klausa where maka akan muncul pesan error.

<!--[if gte mso 9]> <w:LsdException Locked="false" Priority="33" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book T