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
--