0% menganggap dokumen ini bermanfaat (0 suara)
23 tayangan30 halaman

Query SQL: Union, Intersect, Except

Diunggah oleh

Zack Pascal
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
23 tayangan30 halaman

Query SQL: Union, Intersect, Except

Diunggah oleh

Zack Pascal
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd

PROGRAM STUDI MATA KULIAH:

TEKNIK INFORMATIKA Sistem Basis Data

DISUSUN OLEH:
Tim Pengampu SBD TI

Query Antar Tabel


(Lanjut)
Capaian Pembelajaran
• Mahasiswa mampu:
• Menerapkan operator Union untuk menggabungkan hasil dari dua buah query.
• Menerapkan operator Intersect untuk memperoleh baris-baris yang terdapat pada dua tabel.
• Menerapkan opertaor Except/Minus untuk menghasilkan semua yang ada pada suatu tabel
tetapi tidak terdapat pada tabel satunya.
• Menerapkan konsep Natural Join
• Menerapkan konsep Left Join dan Right Join

TIM PENGAMPU SBD – TI UDINUS


Pokok Bahasan
• Operator Union, Intersect, Except/Minus, Natural Join
• SQL Join

TIM PENGAMPU SBD – TI UDINUS


Referensi
UTAMA
1. Silberschatz, A., Korth, H. F. & Sudarshan, S., 2022. Database System Concepts. 7th ed. New York:
McGraw-Hill Education
2. Connolly, T. & Begg, C., 2015. Database Systems Apracticial Approach to Design, Implementation, and
Management. Sixth Edition ed. s.l.:Pearson.
3. Elmasri, R. & Navathe, S. B., 2016. Fundamentalsmof Database Systems. 7th ed. s.l.:Pearson

PENDUKUNG
Aripin., 2005. Praktikum Basis Data Dengan Database Server MySQL. Semarang: Fakultas Ilmu Komputer

TIM PENGAMPU SBD – TI UDINUS


Tabel 1: Buku

Persiapan #1 ID Judul
B01 Dilan 1990
B02 Laskar Pelangi
Misal kita memiliki sebuah database sederhana yang hanya memiliki 2
buah tabel, yaitu: B03 Ayat-Ayat Cinta

 Tabel Buku: berisi id dan judul-judul buku B04 Pengantar Basis Data
B05 Big Data for Dummies
 Tabel Film: berisi id dan judul-judul film
MariaDB [(none)]> CREATE DATABASE
Latihan_1;
MariaDB [Latihan_1]> CREATE TABLE Buku
-> (
Tabel 2: Film
Query OK, 1 row affected (0.686 sec) -> ID CHAR(3),
-> Judul VARCHAR(30)
ID Judul
MariaDB [(none)]> USE Latihan_1; -> );
Database changed Query OK, 0 row affected (0.010 sec) F01 Dilan 1990
F02 Ayat-Ayat Cinta
MariaDB [Latihan_1]> CREATE TABLE Film
-> ( F03 Money Heist
-> ID CHAR(3),
-> Judul VARCHAR(30) F04 Squid Game
-> );
Query OK, 0 row affected (0.010 sec)
F05 Laskar Pelangi

TIM PENGAMPU SBD – TI UDINUS


Tabel 1: Buku

Persiapan #2 ID Judul
B01 Dilan 1990
MariaDB [Latihan_1]> INSERT INTO Buku MariaDB [Latihan_1]> SELECT * FROM Buku;
-> values +------+----------------------+ B02 Laskar Pelangi
-> ('B01', 'Dilan 1990'), | id | Judul |
-> ('B02', 'Laskar Pelangi'), +------+----------------------+ B03 Ayat-Ayat Cinta
-> ('B03', 'Ayat-Ayat Cinta'), | B01 | Dilan 1990 |
-> ('B04', 'Pengantar Basis Data'), | B02 | Laskar Pelangi | B04 Pengantar Basis Data
-> ('B05', 'Big Data for Dummies'); | B03 | Ayat-Ayat Cinta |
Query OK, 5 rows affected (0.002 sec) | B04 | Pengantar Basis Data | B05 Big Data for Dummies
Records: 5 Duplicates: 0 Warnings: 0 | B05 | Big Data for Dummies |
+------+----------------------+

MariaDB [Latihan_1]> INSERT INTO Film


5 rows in set (0.000 sec)
Tabel 2: Film
-> values ID Judul
-> ('F01', 'Dilan 1990'), MariaDB [Latihan_1]> SELECT * FROM Film;
-> ('F02', 'Ayat-Ayat Cinta'), +------+-----------------+ F01 Dilan 1990
-> ('F03', 'Money Heist'), | id | Judul |
-> ('F04', 'Squid Game'), +------+-----------------+ F02 Ayat-Ayat Cinta
-> ('F05', 'Laskar Pelangi'); | F01 | Dilan 1990 |
Query OK, 5 rows affected (0.003 sec) | F02 | Ayat-Ayat Cinta | F03 Money Heist
Records: 5 Duplicates: 0 Warnings: 0 | F03 | Money Heist |
| F04 | Squid Game | F04 Squid Game
| F05 | Laskar Pelangi |
+------+-----------------+ F05 Laskar Pelangi
5 rows in set (0.000 sec)

TIM PENGAMPU SBD – TI UDINUS


Hasil Tabel 1: Buku

Operator UNION Judul ID Judul


Dilan 1990 B01 Dilan 1990
Laskar Pelangi B02 Laskar Pelangi
Operator UNION digunakan untuk
Ayat-Ayat Cinta B03 Ayat-Ayat Cinta
menggabungkan dua perintah
SELECT ke dalam sebuah tabel Pengantar Basis Data B04 Pengantar Basis Data
sementara. Big Data for Dummies B05 Big Data for Dummies
Dengan menggunakan UNION, nilai Money Heist
yang dihasilkan bersifat UNIQUE. Squid Game Tabel 2: Film
ID Judul
Makna UNIQUE di sini adalah jika : Jika dari table 1 sudah
F01 Dilan 1990
ada data yang sama pada 2 tabel, muncul, maka judul yang
sama pada table 2 tidak F02 Ayat-Ayat Cinta
maka yang ditampilkan hanya salah perlu dimunculkan lagi
satu saja. F03 Money Heist
F04 Squid Game
F05 Laskar Pelangi

TIM PENGAMPU SBD – TI UDINUS


Hasil Tabel 1: Buku

Operator UNION Judul ID Judul


Dilan 1990 B01 Dilan 1990
Sintaks Penulisan: Laskar Pelangi B02 Laskar Pelangi

SELECT [kolom] FROM [Tabel_1] Ayat-Ayat Cinta B03 Ayat-Ayat Cinta


UNION Pengantar Basis Data B04 Pengantar Basis Data
SELECT [kolom] FROM [Tabel_2]; Big Data for Dummies B05 Big Data for Dummies
Money Heist
MariaDB [Latihan_1]> SELECT Judul FROM Buku
-> UNION Squid Game Tabel 2: Film
-> SELECT Judul FROM Film; ID Judul
+----------------------+ F01 Dilan 1990
| Judul |
+----------------------+ F02 Ayat-Ayat Cinta
| Dilan 1990 |
| Laskar Pelangi | F03 Money Heist
| Ayat-Ayat Cinta |
| Pengantar Basis Data |
| Big Data for Dummies |
F04 Squid Game
| Money Heist
| Squid Game
|
|
F05 Laskar Pelangi
+----------------------+
7 rows in set (0.001 sec)
TIM PENGAMPU SBD – TI UDINUS
Hasil Tabel 1: Buku

Operator UNION ALL Judul ID Judul


Dilan 1990 B01 Dilan 1990
Laskar Pelangi B02 Laskar Pelangi
Mempunyai fungsi yang hampir mirip
dengan operator UNION biasa, namun Ayat-Ayat Cinta B03 Ayat-Ayat Cinta
UNION ALL akan menampilkan seluruh data Pengantar Basis Data B04 Pengantar Basis Data
pada dua tabel (nilai yang ditampilkan tidak
Big Data for Dummies B05 Big Data for Dummies
bersifat UNIQUE).
Dilan 1990
Ayat-Ayat Cinta Tabel 2: Film
ID Judul
Money Heist
F01 Dilan 1990
Squid Game
F02 Ayat-Ayat Cinta
Laskar Pelangi
F03 Money Heist
F04 Squid Game
F05 Laskar Pelangi

TIM PENGAMPU SBD – TI UDINUS


Hasil Tabel 1: Buku

Operator UNION ALL Judul ID Judul


Dilan 1990 B01 Dilan 1990
Sintaks Penulisan: Laskar Pelangi B02 Laskar Pelangi
SELECT [kolom] FROM [Tabel_1] Ayat-Ayat Cinta B03 Ayat-Ayat Cinta
UNION ALL Pengantar Basis Data B04 Pengantar Basis Data
SELECT [kolom] FROM [Tabel_2];
Big Data for Dummies B05 Big Data for Dummies
MariaDB [Latihan_1]> SELECT Judul FROM Buku
-> UNION ALL Dilan 1990
-> SELECT Judul FROM Film;
+----------------------+ Ayat-Ayat Cinta Tabel 2: Film
| Judul | ID Judul
+----------------------+ Money Heist
| Dilan 1990 | F01 Dilan 1990
| Laskar Pelangi | Squid Game
| Ayat-Ayat Cinta | F02 Ayat-Ayat Cinta
| Pengantar Basis Data | Laskar Pelangi
| Big Data for Dummies | F03 Money Heist
| Dilan 1990 |
| Ayat-Ayat Cinta
| Money Heist
|
|
F04 Squid Game
| Squid Game
| Laskar Pelangi
|
|
F05 Laskar Pelangi
+----------------------+
10 rows in set (0.001 sec)
TIM PENGAMPU SBD – TI UDINUS
Tabel 1: Buku

Operator MINUS/EXCEPT ID Judul


B01 Dilan 1990
Hasil B02 Laskar Pelangi
Operator MINUS atau EXCEPT digunakan untuk
melihat data yang hanya ada di tabel 1, namun Judul B03 Ayat-Ayat Cinta
tidak ada di tabel 2. Pengantar Basis Data B04 Pengantar Basis Data
Pada contoh kasus di samping, dengan Big Data for Dummies B05 Big Data for Dummies
menggunakan operator MINUS/EXCEPT, judul
: tidak ditampilkan karena
buku yang tidak ada di dalam tabel film akan datanya beririsan Tabel 2: Film
dimunculkan. : tidak ditampilkan karena ID Judul
tidak ada di tabel 1
Ini sama artinya dengan menampilkan judul-judul F01 Dilan 1990
buku yang tidak di-film-kan.
F02 Ayat-Ayat Cinta
F03 Money Heist
F04 Squid Game
F05 Laskar Pelangi

TIM PENGAMPU SBD – TI UDINUS


Tabel 1: Buku

Operator MINUS/EXCEPT ID Judul


B01 Dilan 1990
Sintaks Penulisan: Hasil B02 Laskar Pelangi
SELECT [kolom] FROM [Tabel_1] Judul B03 Ayat-Ayat Cinta
EXCEPT Pengantar Basis Data B04 Pengantar Basis Data
SELECT [kolom] FROM [Tabel_2]; Big Data for Dummies B05 Big Data for Dummies
MariaDB [Latihan_1]> SELECT Judul FROM Buku : tidak ditampilkan karena
-> EXCEPT datanya beririsan Tabel 2: Film
-> SELECT Judul FROM Film;
: tidak ditampilkan karena ID Judul
+----------------------+ tidak ada di tabel 1
| Judul | F01 Dilan 1990
+----------------------+
| Pengantar Basis Data | F02 Ayat-Ayat Cinta
| Big Data for Dummies |
+----------------------+ F03 Money Heist
2 rows in set (0.001 sec)
F04 Squid Game
Catatan: F05 Laskar Pelangi
 MariaDB menggunakan operator EXCEPT
 Operator MINUS digunakan pada database ORACLE
TIM PENGAMPU SBD – TI UDINUS
Operator INTERSECT ID Judul
Hasil B01 Dilan 1990
Judul B02 Laskar Pelangi
Digunakan untuk menampilkan irisan data
dari dua tabel. Dilan 1990 B03 Ayat-Ayat Cinta

Pada contoh di samping, judul buku yang Laskar Pelangi B04 Pengantar Basis Data
sekaligus menjadi judul film lah yang akan Ayat-Ayat Cinta B05 Big Data for Dummies
dimunculkan.
: Tidak dipakai karena bukan
merupakan irisan dari 2
table
ID Judul
F01 Dilan 1990
F02 Ayat-Ayat Cinta
F03 Money Heist
F04 Squid Game
F05 Laskar Pelangi
Target operator INTERSECT

TIM PENGAMPU SBD – TI UDINUS


Operator INTERSECT ID Judul
Hasil B01 Dilan 1990
Sintaks Penulisan: Judul B02 Laskar Pelangi
SELECT [kolom] FROM [Tabel_1] Dilan 1990 B03 Ayat-Ayat Cinta
INTERSECT Laskar Pelangi B04 Pengantar Basis Data
SELECT [kolom] FROM [Tabel_2]; Ayat-Ayat Cinta B05 Big Data for Dummies

MariaDB [Latihan_1]> SELECT Judul FROM Buku


-> INTERSECT
-> SELECT Judul FROM Film;
ID Judul
+-----------------+
| Judul | F01 Dilan 1990
+-----------------+
| Dilan 1990 | F02 Ayat-Ayat Cinta
| Laskar Pelangi |
| Ayat-Ayat Cinta | F03 Money Heist
+-----------------+
3 rows in set (0.001 sec) F04 Squid Game
F05 Laskar Pelangi

TIM PENGAMPU SBD – TI UDINUS


SQL JOIN
Digunakan ketika kita ingin melakukan operasi
SELECT pada 2 atau lebih tabel dari suatu SQL Join
database, dengan ketentuan:
 Inner Join: table A harus memiliki kolom-
kolom yang memiliki nilai yang sama pada Inner Join Outer Join Self Join Cross Join
table B.
 Outer Join: table A tidak harus memiliki nilai
Right
yang sama pada table B. Equi Join Left Join Full Outer
Outer
 Self Join: menggabungkan table ke dirinya
sendiri menggunakan bantuan operator alias. Natural
Join
 Cross Join: menggabungkan tabel-tabel
dengan hasil berupa CARTESIAN PRODUCT
antar tabel

TIM PENGAMPU SBD – TI UDINUS


Tabel 1: Kategori
ID_Kategori* Jenis
001 Handphone

SQL JOIN - Persiapan 002 Laptop


003 Tablet
Buat database baru (Latihan_2) dengan 2 buah tabel sederhana, yaitu:
004 Kamera
 Tabel Kategori: berisi id kategori dan jenis produk
005 Gamming
 Tabel Produk: berisi id produk, merk dan id kategori

MariaDB [(none)]> create database Latihan_2; Tabel 2: Produk


Query OK, 1 row affected (0.002 sec)
ID_Produk* Merk ID_Kategori
MariaDB [(none)]> use Latihan_2;
Database changed P01 Xiaomi 001
MariaDB [Latihan_2]> CREATE TABLE Kategori MariaDB [Latihan_2]> DESC Kategori; P02 Samsung 001
+-------------+-------------+------+-----+---------+-------+
-> ( | Field | Type | Null | Key | Default | Extra |
-> ID_Kategori CHAR(3) PRIMARY KEY, +-------------+-------------+------+-----+---------+-------+ P03 Asus 002
-> Jenis VARCHAR(20) | ID_Kategori | char(3) | NO | PRI | NULL | |
| Jenis | varchar(20) | YES | | NULL | |
-> );
Query OK, 0 rows affected (0.012 sec)
+-------------+-------------+------+-----+---------+-------+
2 rows in set (0.005 sec)
P04 Dell 002
MariaDB [Latihan_2]> CREATE TABLE Produk MariaDB [Latihan_2]> DESC Produk;
+-------------+-------------+------+-----+---------+-------+
P05 Apple 003
-> ( | Field | Type | Null | Key | Default | Extra |
-> ID_Produk CHAR(3), +-------------+-------------+------+-----+---------+-------+
| ID_Produk | char(3) | NO | PRI | NULL | |
P06 Nikon 004
-> Merk VARCHAR(20),
| Merk | varchar(20) | YES | | NULL | |
-> ID_Kategori CHAR(3)
-> );
| ID_Kategori | char(3) | YES | | NULL | |
+-------------+-------------+------+-----+---------+-------+
Null Playstation Null
Query OK, 0 rows affected (0.011 sec) 3 rows in set (0.005 sec)

TIM PENGAMPU SBD – TI UDINUS


Tabel 1: Kategori
ID_Kategori* Jenis
001 Handphone

SQL JOIN - Persiapan 002 Laptop


003 Tablet
MariaDB [Latihan_2]> INSERT INTO Kategori MariaDB [Latihan_2]> INSERT INTO Produk 004 Kamera
-> VALUES -> VALUES
-> ('001','Handphone'), -> ('P01', 'Xiaomi', '001’), 005 Gamming
-> ('002','Laptop’), -> ('P02', 'Samsung', '001’),
-> ('003','Tablet’), -> ('P03', 'Asus', '002’),
-> ('004','Kamera’), -> ('P04', 'Dell', '002’),
-> ('005','Gamming');
Query OK, 5 rows affected (0.002 sec)
-> ('P05', 'Apple', '003’),
-> ('P06', 'Nikon', '004’),
Tabel 2: Produk
Records: 5 Duplicates: 0 Warnings: 0 -> ('P07', 'Playstation', Null); ID_Produk* Merk ID_Kategori
Query OK, 7 rows affected (0.001 sec)
MariaDB [Latihan_2]> SELECT * FROM Records: 7 Duplicates: 0 Warnings: 0 P01 Xiaomi 001
Kategori;
+-------------+-----------+ MariaDB [Latihan_2]> SELECT * FROM Produk;
| ID_Kategori | Jenis | +-----------+-------------+-------------+ P02 Samsung 001
+-------------+-----------+ | ID_Produk | Merk | ID_Kategori |
| 001 | Handphone | +-----------+-------------+-------------+ P03 Asus 002
| 002 | Laptop | | P01 | Xiaomi | 001 |
| 003 | Tablet | | P02 | Samsung | 001 | P04 Dell 002
| 004 | Kamera | | P03 | Asus | 002 |
| 005 | Gamming | | P04 | Dell | 002 | P05 Apple 003
+-------------+-----------+ | P05 | Apple | 003 |
5 rows in set (0.000 sec) | P06 | Nikon | 004 |
| P07 | Playstation | NULL |
P06 Nikon 004
+-----------+-------------+-------------+
7 rows in set (0.000 sec) P07 Playstation Null

TIM PENGAMPU SBD – TI UDINUS


Tabel 1: Kategori
ID_Kategori* Jenis
001 Handphone

Inner Join 002 Laptop


003 Tablet
 Digunakan untuk menampilkan baris-baris data yang sama pada 2 tabel atau 004 Kamera
lebih.
005 Gamming
 Syarat suatu baris data akan dimunculkan adalah jika memiliki key yang sama
(punya kolom penghubung).
Tabel 2: Produk
 Pada table di samping, kolom penghubungnya adalah ‘ID_Kategori’.
ID_Produk* Merk ID_Kategori
 EQUI JOIN merupakan subset dari INNER JOIN.
P01 Xiaomi 001
 Dalam menghubungkan 2 tabel, INNER JOIN mendukung penggunaan
operator ‘=‘, ‘<‘, dan ‘>’, sementara EQUI JOIN hanya mendukung operator ‘=‘. P02 Samsung 001
P03 Asus 002
Eksplisit P04 Dell 002
Innjer Inner Join P05 Apple 003
Tabel 1 Tabel 2
Join
Implisit P06 Nikon 004
P07 Playstation Null

Hasil TIM PENGAMPU SBD – TI UDINUS


Tabel 1: Kategori
ID_Kategori* Jenis
001 Handphone

Inner Join Eksplisit


002 Laptop
003 Tablet
MariaDB [Latihan_2]> SELECT * FROM Produk INNER JOIN Kategori
Inner Join
ON Produk.ID_Kategori = Kategori.ID_Kategori; 004 Kamera
+-----------+---------+-------------+-------------+----------- Operator yang digunakan:
+ … INNER JOIN … ON … 005 Gamming
| ID_Produk | Merk | ID_Kategori | ID_Kategori | Jenis
|
+-----------+---------+-------------+-------------+-----------
+
| P01 | Xiaomi | 001 | 001 | Handphone
Tabel 2: Produk
| ID_Produk* Merk ID_Kategori
| P02 | Samsung | 001 | 001 | Handphone
| P01 Xiaomi 001
| P03 | Asus | 002 | 002 | Laptop
| Implisit P02 Samsung 001
| P04 | Dell | 002 | 002 | Laptop
|
Inner Join
| P05 | Apple | 003 | 003 | Tablet P03 Asus 002
|
Operator yang digunakan:
| P06 | Nikon | 004 | 004 | Kamera … WHERE … P04 Dell 002
|
+-----------+---------+-------------+-------------+----------- P05 Apple 003
+
6 rows in set (0.001 sec) Query yang dihasilkan dari P06 Nikon 004
eksplisit dan implisit Inner
MariaDB [Latihan_2]> SELECT * FROM Produk, Kategori WHERE Join adalah sama P07 Playstation Null
Produk.ID_Kategori = Kategori.ID_Kategori;
+-----------+---------+-------------+-------------+-----------
+ TIM PENGAMPU SBD – TI UDINUS
Tabel 1: Kategori
ID_Kategori* Jenis
001 Handphone

Natural Join 002 Laptop


003 Tablet
NATURAL JOIN memiliki kemiripan dengan EQUI JOIN. 004 Kamera
Pada NATURAL JOIN, kolom yang sama hanya akan dimunculkan 1 (satu) kali. 005 Gamming
Pada contoh kali ini, kolom ID_Kategori hanya akan dimunculkan sekali,
meskipun dia ada di 2 (dua) tabel berbeda. Tabel 2: Produk
ID_Produk* Merk ID_Kategori
Dengan NATURAL JOIN, kita tidak bisa tahu kolom mana yang bertindak
sebagai penghubung antar tabel, jika kita tidak memeriksanya lebih dulu. P01 Xiaomi 001
P02 Samsung 001
MariaDB [latihan_2]> SELECT *
-> FROM Produk NATURAL JOIN Kategori; P03 Asus 002
+-------------+-----------+---------+-----------+
| ID_Kategori | ID_Produk | Merk | Jenis | P04 Dell 002
+-------------+-----------+---------+-----------+
| 001 | P01 | Xiaomi | Handphone | Natural Join P05 Apple 003
| 001 | P02 | Samsung | Handphone | NJ NJ
| 002 | P03 | Asus | Laptop |
EJ Equi Join P06 Nikon 004
| 002 | P04 | Dell | Laptop |
| 003 | P05 | Apple | Tablet |
| 004 | P06 | Nikon | Kamera |
P07 Playstation Null
+-------------+-----------+---------+-----------+
6 rows in set (0.001 sec)
TIM PENGAMPU SBD – TI UDINUS
Tabel 1: Kategori
ID_Kategori* Jenis
001 Handphone

Left Join 002 Laptop


003 Tablet
 Left Join akan menghasilkan data dari table sebelah kiri (tabel yang disebut 004 Kamera
pertama pada perintah SELECT), tidak peduli data di table kiri memiliki
kesamaan dengan table sebelah kanan (table yang disebut kedua) atau 005 Gamming
tidak.
 Pada Left Join ini juga akan menampilkan data-data dari table sebelah Tabel 2: Produk
kanan yang memiliki kesamaan dengan table sebelah kiri.
ID_Produk* Merk ID_Kategori
P01 Xiaomi 001
P02 Samsung 001
P03 Asus 002
P04 Dell 002
Tabel 1 (A) AՈB Tabel 2 (B) Left Join = A Ս (A Ո B)
P05 Apple 003
P06 Nikon 004
P07 Playstation Null

TIM PENGAMPU SBD – TI UDINUS


Tabel 1: Kategori
ID_Kategori* Jenis
MariaDB [Latihan_2]> SELECT * FROM Produk LEFT OUTER JOIN Kategori
-> ON Produk.ID_Kategori = Kategori.ID_Kategori; 001 Handphone

Left Join +-----------+-------------+-------------+-------------+-----------+


| ID_Produk | Merk | ID_Kategori | ID_Kategori | Jenis |
002 Laptop
+-----------+-------------+-------------+-------------+-----------+ 003 Tablet
| P01 | Xiaomi | 001 | 001 | Handphone |
| P02 | Samsung | 001 | 001 | Handphone | 004 Kamera
| P03 | Asus | 002 | 002 | Laptop |
| P04 | Dell | 002 | 002 | Laptop | 005 Gamming
| P05 | Apple | 003 | 003 | Tablet |
| P06 | Nikon | 004 | 004 | Kamera |
| P07 | Playstation | NULL | NULL | NULL |
+-----------+-------------+-------------+-------------+-----------+ Tabel 2: Produk
7 rows in set (0.000 sec)
ID_Produk* Merk ID_Kategori
MariaDB [Latihan_2]> SELECT
-> Produk.ID_Produk, Produk.Merk, Produk.ID_Kategori, Kategori.Jenis
P01 Xiaomi 001
-> FROM Produk LEFT OUTER JOIN Kategori
-> ON Produk.ID_Kategori = Kategori.ID_Kategori; P02 Samsung 001

+-----------+-------------+-------------+-----------+ P03 Asus 002


| ID_Produk | Merk | ID_Kategori | Jenis | Dengan nama
+-----------+-------------+-------------+-----------+ P04 Dell 002
| P01 | Xiaomi | 001 | Handphone | kolom disebutkan
| P02 | Samsung | 001 | Handphone | satu per satu, P05 Apple 003
| P03 | Asus | 002 | Laptop | maka tabel query
| P04 | Dell | 002 | Laptop | P06 Nikon 004
| P05 | Apple | 003 | Tablet | yang terbentuk
| P06 | Nikon | 004 | Kamera | menjadi lebih P07 Playstation Null
| P07 | Playstation | NULL | NULL | sederhana
+-----------+-------------+-------------+-----------+
7 rows in set (0.001 sec) TIM PENGAMPU SBD – TI UDINUS
Tabel 1: Kategori
ID_Kategori* Jenis
001 Handphone

Right Join 002 Laptop


003 Tablet
 Right Join akan menghasilkan seluruh data dari table sebelah kanan (tabel 004 Kamera
yang disebut kedua pada perintah SELECT), tidak peduli data di table kanan
memiliki kesamaan dengan table sebelah kiri (table yang disebut pertama) 005 Gamming
atau tidak.
 Pada Right Join ini juga akan menampilkan data-data dari table sebelah kiri Tabel 2: Produk
yang memiliki kesamaan dengan table sebelah kanan.
ID_Produk* Merk ID_Kategori
P01 Xiaomi 001
P02 Samsung 001
P03 Asus 002
P04 Dell 002
Tabel 1 (A) AՈB Tabel 2 (B) Left Join = B Ս (A Ո B)
P05 Apple 003
P06 Nikon 004
P07 Playstation Null

TIM PENGAMPU SBD – TI UDINUS


Tabel 1: Kategori
MariaDB [latihan_2]> SELECT *
-> FROM Produk RIGHT OUTER JOIN Kategori ID_Kategori* Jenis
-> ON Produk.ID_Kategori = Kategori.ID_Kategori;
001 Handphone
+-----------+---------+-------------+-------------+-----------+
Right Join | ID_Produk | Merk | ID_Kategori | ID_Kategori | Jenis |
+-----------+---------+-------------+-------------+-----------+
002 Laptop
| P01 | Xiaomi | 001 | 001 | Handphone | 003 Tablet
| P02 | Samsung | 001 | 001 | Handphone |
| P03 | Asus | 002 | 002 | Laptop | 004 Kamera
| P04 | Dell | 002 | 002 | Laptop |
| P05 | Apple | 003 | 003 | Tablet | 005 Gamming
| P06 | Nikon | 004 | 004 | Kamera |
| NULL | NULL | NULL | 005 | Gamming |
+-----------+---------+-------------+-------------+-----------+
7 rows in set (0.015 sec) Tabel 2: Produk
ID_Produk* Merk ID_Kategori
MariaDB [latihan_2]> SELECT
-> Produk.ID_Produk, Produk.Merk, Produk.ID_Kategori, Kategori.Jenis
P01 Xiaomi 001
-> FROM Produk RIGHT OUTER JOIN Kategori
-> ON Produk.ID_Kategori = Kategori.ID_Kategori; P02 Samsung 001
+-----------+---------+-------------+-----------+
| ID_Produk | Merk | ID_Kategori | Jenis | P03 Asus 002
+-----------+---------+-------------+-----------+ Dengan nama P04 Dell 002
| P01 | Xiaomi | 001 | Handphone |
| P02 | Samsung | 001 | Handphone | kolom disebutkan
| P03 | Asus | 002 | Laptop | satu per satu, P05 Apple 003
| P04 | Dell | 002 | Laptop | maka tabel query P06 Nikon 004
| P05 | Apple | 003 | Tablet |
| P06 | Nikon | 004 | Kamera | yang terbentuk
| NULL | NULL | NULL | Gamming | menjadi lebih P07 Playstation Null
+-----------+---------+-------------+-----------+ sederhana
7 rows in set (0.001 sec)
TIM PENGAMPU SBD – TI UDINUS
Tabel 1: Kategori
ID_Kategori* Jenis
001 Handphone

Full Join 002 Laptop


003 Tablet
 Full Join merupakan gabungan nilai antara LEFT JOIN dan RIGHT JOIN 004 Kamera
 MariaDB tidak mendukung konsep FULL JOIN/FULL OUTER JOIN 005 Gamming

Tabel 2: Produk
ID_Produk* Merk ID_Kategori
Tabel 1 (A) AՈB Tabel 2 (B) Full Join = (A Ո B) Ս (A - B) Ս (B - A)
P01 Xiaomi 001
P02 Samsung 001
P03 Asus 002
P04 Dell 002
Tabel 1 (A) AՈB Tabel 2 (B) P05 Apple 003
P06 Nikon 004
P07 Playstation Null

TIM PENGAMPU SBD – TI UDINUS


Tabel 1: Kategori
ID_Kategori* Jenis
001 Handphone

Full Join 002 Laptop


003 Tablet
Hasil dari FULL JOIN 004 Kamera
ID_Produk* Merk ID_Kategori Jenis 005 Gamming
P01 Xiaomi 001 Handphone
P02 Samsung 001 Handphone Tabel 2: Produk
ID_Produk* Merk ID_Kategori
P03 Asus 002 Laptop
P01 Xiaomi 001
P04 Dell 002 Laptop
P02 Samsung 001
P05 Apple 003 Tablet
P03 Asus 002
P06 Nikon 004 Kamera
P04 Dell 002
P07 Playstation Null Null
Tidak muncul di
P05 Apple 003
Null Null Null Gamming operasi query lain
P06 Nikon 004
P07 Playstation Null

TIM PENGAMPU SBD – TI UDINUS


Tabel 1: Kategori
ID_Kategori* Jenis
001 Handphone

Cross Join 002 Laptop


003 Tablet
CROSS JOIN digunakan untuk menggabungkan dua tabel atau 004 Kamera
lebih dengan hasil berupa CARTESIAN PRODUCT antar tabel.
005 Gamming

Tabel 2: Produk
ID_Produk* Merk ID_Kategori
Tabel 1 (A)
Tabel 2 (B)
P01 Xiaomi 001
P02 Samsung 001
P03 Asus 002
Eksplisit P04 Dell 002
Cross Join P05 Apple 003
Implisit P06 Nikon 004
P07 Playstation Null

TIM PENGAMPU SBD – TI UDINUS


Tabel 1: Kategori Tabel 2: Produk
ID_Kategori* Jenis ID_Produk* Merk ID_Kategori
001 Handphone P01 Xiaomi 001
002 Laptop P02 Samsung 001

Cross Join (Eksplisit) 003


004
Tablet
Kamera
P03
P04
Asus
Dell
002
002
MariaDB [latihan_2]> SELECT * 005 Gamming P05 Apple 003
-> FROM Produk
P06 Nikon 004
-> CROSS JOIN Kategori;
P07 Playstation Null
+-----------+-------------+-------------+-------------+-----------+
| ID_Produk | Merk | ID_Kategori | ID_Kategori | Jenis |
+-----------+-------------+-------------+-------------+-----------+ | P05 | Apple | 003 | 001 | Handphone |
| P01 | Xiaomi | 001 | 001 | Handphone | | P05 | Apple | 003 | 002 | Laptop |
| P01 | Xiaomi | 001 | 002 | Laptop | | P05 | Apple | 003 | 003 | Tablet |
| P01 | Xiaomi | 001 | 003 | Tablet | | P05 | Apple | 003 | 004 | Kamera |
| P01 | Xiaomi | 001 | 004 | Kamera | | P05 | Apple | 003 | 005 | Gamming |
| P01 | Xiaomi | 001 | 005 | Gamming | | P06 | Nikon | 004 | 001 | Handphone |
| P02 | Samsung | 001 | 001 | Handphone | | P06 | Nikon | 004 | 002 | Laptop |
| P02 | Samsung | 001 | 002 | Laptop | | P06 | Nikon | 004 | 003 | Tablet |
| P02 | Samsung | 001 | 003 | Tablet | | P06 | Nikon | 004 | 004 | Kamera |
| P02 | Samsung | 001 | 004 | Kamera | | P06 | Nikon | 004 | 005 | Gamming |
| P02 | Samsung | 001 | 005 | Gamming | | P07 | Playstation | NULL | 001 | Handphone |
| P03 | Asus | 002 | 001 | Handphone | | P07 | Playstation | NULL | 002 | Laptop |
| P03 | Asus | 002 | 002 | Laptop | | P07 | Playstation | NULL | 003 | Tablet |
| P03 | Asus | 002 | 003 | Tablet | | P07 | Playstation | NULL | 004 | Kamera |
| P03 | Asus | 002 | 004 | Kamera | | P07 | Playstation | NULL | 005 | Gamming |
| P03 | Asus | 002 | 005 | Gamming | +-----------+-------------+-------------+-------------+-----------+
| P04 | Dell | 002 | 001 | Handphone | 35 rows in set (0.007 sec)
| P04 | Dell | 002 | 002 | Laptop |
| P04 | Dell | 002 | 003 | Tablet |
| P04 | Dell | 002 | 004 | Kamera |
| P04 | Dell | 002 | 005 | Gamming | TIM PENGAMPU SBD – TI UDINUS
Tabel 1: Kategori Tabel 2: Produk
ID_Kategori* Jenis ID_Produk* Merk ID_Kategori
001 Handphone P01 Xiaomi 001
002 Laptop P02 Samsung 001

Cross Join (Implisit) 003


004
Tablet
Kamera
P03
P04
Asus
Dell
002
002
MariaDB [latihan_2]> SELECT * 005 Gamming P05 Apple 003
-> FROM Produk, Kategori;
P06 Nikon 004
+-----------+-------------+-------------+-------------+-----------+ P07 Playstation Null
| ID_Produk | Merk | ID_Kategori | ID_Kategori | Jenis |
+-----------+-------------+-------------+-------------+-----------+
| P01 | Xiaomi | 001 | 001 | Handphone | | P05 | Apple | 003 | 001 | Handphone |
| P01 | Xiaomi | 001 | 002 | Laptop | | P05 | Apple | 003 | 002 | Laptop |
| P01 | Xiaomi | 001 | 003 | Tablet | | P05 | Apple | 003 | 003 | Tablet |
| P01 | Xiaomi | 001 | 004 | Kamera | | P05 | Apple | 003 | 004 | Kamera |
| P01 | Xiaomi | 001 | 005 | Gamming | | P05 | Apple | 003 | 005 | Gamming |
| P02 | Samsung | 001 | 001 | Handphone | | P06 | Nikon | 004 | 001 | Handphone |
| P02 | Samsung | 001 | 002 | Laptop | | P06 | Nikon | 004 | 002 | Laptop |
| P02 | Samsung | 001 | 003 | Tablet | | P06 | Nikon | 004 | 003 | Tablet |
| P02 | Samsung | 001 | 004 | Kamera | | P06 | Nikon | 004 | 004 | Kamera |
| P02 | Samsung | 001 | 005 | Gamming | | P06 | Nikon | 004 | 005 | Gamming |
| P03 | Asus | 002 | 001 | Handphone | | P07 | Playstation | NULL | 001 | Handphone |
| P03 | Asus | 002 | 002 | Laptop | | P07 | Playstation | NULL | 002 | Laptop |
| P03 | Asus | 002 | 003 | Tablet | | P07 | Playstation | NULL | 003 | Tablet |
| P03 | Asus | 002 | 004 | Kamera | | P07 | Playstation | NULL | 004 | Kamera |
| P03 | Asus | 002 | 005 | Gamming | | P07 | Playstation | NULL | 005 | Gamming |
| P04 | Dell | 002 | 001 | Handphone | +-----------+-------------+-------------+-------------+-----------+
| P04 | Dell | 002 | 002 | Laptop | 35 rows in set (0.007 sec)
| P04 | Dell | 002 | 003 | Tablet |
| P04 | Dell | 002 | 004 | Kamera |
| P04 | Dell | 002 | 005 | Gamming |
TIM PENGAMPU SBD – TI UDINUS
TERIMA KASIH
ANY QUESTIONS?

Anda mungkin juga menyukai