15 Juni 2012

RELATION ANTAR TABEL (JOIN)

UNIVERSITAS INDRAPRASTA PGRI
Fakultas FTMIPA
Teknik Informatika
Dosen : Nahot Frastian, S.kom
....................................................................................................................................................................................................................
                Join adalah penggabungan data yang berasal dari beberapa tabel.Operator yang biasa digunakan adalah sama dengan (=), maka disebut dengan equality join atau equijoin.
                Equijoin dikelompokkan ke dalam dua bagian yaitu inner equijoin (inner join) dan outerequijoin (outer join). Yang termaksud dalam Outer Join adalah Left Join dan Ringht Join.
                Bentuk penggabungan data yang terakhir yang akan dibahas adalah perkalian Cartesian (Cartesian product) atau disebut juga cross join atau full join.
1.       JOIN / INNER JOIN
Akan mnghasilkan baris-baris yang coco kantar kedua tabel paling tidak satu baris.
Syntax :
SELECT column_nama(s)
FROM table_nama1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name;

2.       LEFT JOIN
Akan menampilkan seluruh baris dari tabel disebelah kiri (tabel 1), walaupun tidak ada yang cocok dengan tabel disebelah kanan (tabel 2).
Syntax :
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

3.       RIGHT JOIN
Akan menampilkan seluruh baris dari tabel disebelah kanan (tabel 2), walaupun tidak ada yang cocok dengan tabel di sebelah kiri (tabel 1).
Syntax :
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

4.       FULL JOIN
Akan menampilkan baris-baris yang cocok dari salah satu tabel.
Syntax :
SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name

EXERCISE

Buatlah Database penjualan, lalu buatlah tabel penjualan, dan order sesuai data yang ada dibawah ini..!

Tabel pelanggan
P_Id
Nama
Alamat
Kota
1
Hani
Jl. Bunga
Jakarta Timur
2
Stefan
Jl.  Ikan
Jakarta Barat
3
Pipit
Jl. Buah
Jakarta Selatan

Tabel Order
O_Id
NoOrder
P_Id
1
778895
3
2
44678
3
3
22456
1
4
24562
1
5
34765
15

Ø  CREATE DATABASE
Syntax : CREATE DATABASE penjualan;


Ø  CREATE TABLE pelanggan
Syntax : CREATE TABLE `penjualan`.`pelanggan`(P_Id INT(2), Nama VARCHAR(25), Alamat VARCHAR(30), Kota VARCHAR(30));

Ø  Insertion
Syntax : INSERT INTO `penjualan`.`pelanggan` (`P_Id` ,`Nama`,`Alamat`,`Kota` )VALUES ('1','Hani','Jl. Bunga','Jakarta Timur'), ('2','Stefan','Jl. Ikan','Jakarta Barat'), ('3','Pipit','Jl. Buah','Jakarta Selatan');
Ø  CREATE TABLE Order
Syntax : CREATE TABLE `penjualan`.`order`(O_Id INT(2), NoOrder INT(6), P_Id INT(2));
Ø  Insertion
Syntax : INSERT INTO `penjualan`.`order`(O_Id,NoOrder,P_Id) VALUES ('1','77895','3'), ('2','44678','3'), ('3','22456','1'), ('4','24562','1'), ('5','34764','15');
........................................................................................................................................

1.       JOIN / INNER JOIN
Menampilkan nama dan nomor order yang diurutkan berdasarkan nama.
Syntax :
SELECT `pelanggan`.`nama` , `order`.`NoOrder`
FROM `pelanggan`
INNER JOIN `order` ON `pelanggan`.`P_Id` = `order`.`P_Id`
ORDER BY pelanggan.nama
Output :

2.       LEFT JOIN
Menampilkan nama dan nomor order yang diurutkan berdasarkan nama.
Syntax : SELECT `pelanggan`.`Nama` , `order`.`NoOrder`
       FROM `pelanggan`
       LEFT JOIN `order` ON `pelanggan`.`P_Id` = `order`.`P_Id`
       ORDER BY pelanggan.Nama;
Output :

3.       RIGHT  JOIN
Menampilkan nama dan nomor yang diurutkan berdasarkan nama.
Syntax : SELECT `pelanggan`.`Nama` , `order`.`NoOrder`
FROM `pelanggan`
RIGHT JOIN `order` ON `pelanggan`.`P_Id` = `order`.`P_Id`
ORDER BY pelanggan.Nama;


4.       FULL JOIN / CROSS JOIN
Menampilkan nama dan nomor order yang diurutkan berdasarkan nama.

Syntax :  SELECT `pelanggan`.`Nama` , `order`.`NoOrder`
FROM `pelanggan`
CROSS JOIN `order` ON `pelanggan`.`P_Id` = `order`.`P_Id`
ORDER BY pelanggan.Nama;
Output :

Penggunaan cross join tanpa menggunakan ON dan USING.
Contoh :
SELECT `pelanggan`.`Nama` , `order`.`NoOrder`
FROM `pelanggan`
CROSS JOIN `order`

Outputnya :

........................................................................


EXERCISE

Buatlah database animal..!
Buatlah tabel-tabel berikut dan cari hasil dari JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN..!

Tabel animal:
Id
Animal
1
Cat
2
Dog
3
Cow




Tabel food :
Id
Food
1
Milk
2
Bone
3
Grass


Ø  CREATE DATABASE
Syntax : CREATE DATABASE animal;


Ø  CREATE TABLE
Syntax : CREATE TABLE `animal`.`animal`(id INT(2)NULL, animal VARCHAR(12)NULL);

Ø  INSERTION
Syntax : INSERT INTO `animal`.`animal`(`id`,`animal`)VALUES ('1','Cat'), ('2','Dog'), ('3','Cow');

Ø  CREATE TABLE
Syntax : CREATE TABLE `animal`.`food`(id INT(2)NULL, food VARCHAR(12)NULL);
Ø  INSERTION
Syntax : INSERT INTO `animal`.`food`(`id`, `food`)VALUES ('1','Milk'), ('2','Bone'), ('3','Grass');
Output :

2.             JOIN / INNER JOIN
Menampilkan nama dan nomor order yang diurutkan berdasarkan nama.
Syntax : SELECT `animal`.`animal` , `food`.`food`
FROM `animal`
INNER JOIN `food`
ON `animal`.`id` = `food`.`id`
ORDER BY animal.animal;

Output :


2.            LEFT JOIN
Menampilkan nama dan nomor order yang diurutkan berdasarkan nama.
Syntax : SELECT `animal`.`animal` , `food`.`food`
FROM `animal`
INNER JOIN `food`
ON `animal`.`id` = `food`.`id`
ORDER BY animal.animal;

Output :


3.            RIGHT  JOIN
Menampilkan nama dan nomor yang diurutkan berdasarkan nama.
Syntax : SELECT `animal`.`animal` , `food`.`food`
FROM `animal`
RIGHT JOIN `food`
ON `animal`.`id` = `food`.`id`
ORDER BY animal.animal;
Output :


4.            FULL JOIN / CROSS JOIN
Menampilkan nama dan nomor order yang diurutkan berdasarkan nama.

Syntax : SELECT `animal`.`animal` , `food`.`food`
FROM `animal`
CROSS JOIN `food`
ON `animal`.`id` = `food`.`id`
ORDER BY animal.animal
Output :

Penggunaan cross join tanpa menggunakan ON dan USING.
Contoh :
SELECT `pelanggan`.`Nama` , `order`.`NoOrder`
FROM `pelanggan`
CROSS JOIN `order`
Outputnya :


-- J Sekian J --













Tidak ada komentar:

Posting Komentar