PENGANTAR BASIS DATA
Join Query
Arif Wicaksono Septyanto, [Link] Email : [Link]@[Link]
1. Overview Perkuliahan
Join Query
CPMK
Mahasiswa mampu memahami dan
menggunakan perintah Join Query
Basis Data Halaman : 2
Query JOIN di SQL
Tujuan: Menggabungkan data dari beberapa tabel.
Selain JOIN, penggabungan juga bisa dilakukan dengan WHERE.
Jenis-jenis JOIN:
● INNER JOIN – menampilkan data yang cocok di kedua tabel.
● LEFT JOIN – menampilkan semua data dari tabel kiri.
● RIGHT JOIN – menampilkan semua data dari tabel kanan.
SELECT nama_kolom FROM tabel1 JOIN tabel2
WHERE tabel1.kolom1 = tabel2.kolom1
Basis Data Halaman : 3
Membuat tabel universitas
CREATE TABLE universitas (
jurusan VARCHAR(20),
tgl_berdiri DATE,
nama_dekan VARCHAR(50),
jum_mhs SMALLINT UNSIGNED,
akr ENUM('A', 'B', 'C', 'N/A')
);
INSERT INTO universitas VALUES
('Kimia', '1987-07-12', 'Prof. Mulyono, [Link].', 662, 'B'),
('Ilmu Komputer', '2003-02-23', 'Dr. Syahrial, [Link].', 412, 'A'),
Mahasiswa
('Akuntansi', '1985-03-19', 'Maya Fitrianti, M.M.', mampu memahami dan
895, 'B'),
menggunakan
('Farmasi', '1997-05-30', 'Prof. Silvia Nst, [Link].', perintah Join Query
312, 'C'),
('Fisika', '1989-12-10', 'Dr. Umar Agustinus, [Link].', 275, 'A'),
('Hukum', '1983-08-08', 'Prof. Gunarto, M.H.', 754, 'B');
Basis Data Halaman : 4
CREATE TABLE mahasiswa (
nama VARCHAR(50),
asal VARCHAR(50),
kel ENUM('L','P'),
tinggi TINYINT UNSIGNED,
jurusan VARCHAR (20),
nilai_uan DEC(5,2));
INSERT INTO mahasiswa VALUES
('Riana Putria', 'Padang', 'P', 155, 'Kimia', 339.20),
('Rudi Permana', 'Bandung', 'L', 163, 'Ilmu Komputer', 290.44),
('Sari Citra Lestari', 'Jakarta', 'P', 161, 'Manajemen', 310.60),
('Rina Kumala Sari', 'Jakarta', 'P', 158, 'Akuntansi', 337.99),
Mahasiswa mampu memahami dan
('James Situmorang', 'Medan', 'L', 168, 'Kedokteran Gigi', 341.10),
('Sandri Fatmala', 'Bandung', 'P', 165, 'Ilmu Komputer', 322.91),
menggunakan
('Husli Khairan', 'Jakarta', 'L', 170, 'Akuntansi', perintah Join Query
288.55),
('Christine Wijaya', 'Medan', 'P', 157, 'Manajemen', 321.74),
('Ikhsan Prayoga', 'Jakarta', 'L', 172, 'Ilmu Komputer', 300.16),
('Bobby Permana', 'Medan', 'L', 161, 'Ilmu Komputer', 280.82);
Basis Data Halaman : 5
Tidak semua jurusan dari tabel
mahasiswa ada di tabel universitas
dan begitu juga sebaliknya.
Di tabel mahasiswa, terdapat jurusan
Kedokteran Gigi dan Manajemen.
Jurusan ini tidak ada di tabel
universitas. Sedangkan di tabel
universitas terdapat jurusan Farmasi,
Fisika dan Hukum. Ketiga jurusan ini
juga tidak dipilih mahasiswa di tabel
Mahasiswa mampuHubungan
mahasiswa. memahami ini dan
merupakan
menggunakan perintah
kunci kita agar bisaJoin Query
memahami
berbagai query JOIN.
Basis Data Halaman : 6
SELECT [Link], [Link], universitas.nama_dekan
FROM mahasiswa, universitas
WHERE [Link] = [Link];
Basis Data Halaman : 7
Mahasiswa mampu memahami dan
menggunakan perintah Join Query
Basis Data Halaman : 8
Prinsip yang sama juga dipakai untuk query INNER JOIN.
Perintah diatas bisa dikonversi menjadi query berikut ini:
Prinsip utama dari INNER
JOIN adalah nilai dari kolom
jurusan harus tersedia di
kedua tabel. Di lain pihak,
query LEFT JOIN dan RIGHT
JOIN akan memaksa salah
satu tabel untuk tetap
ditampilkan nilainya
(meskipun tidak memiliki
Mahasiswa mampu pasangan).
memahami dan
menggunakan perintah Join Query
Basis Data Halaman : 9
Dengan query LEFT JOIN, seluruh nama mahasiswa akan ditampilkan, termasuk yang
memiliki jurusan Manajemen dan Kedokteran Gigi. Informasi mengenai nama dekan
untuk kedua jurusan ini tidak tersedia di tabel universitas, karena itulah nilainya diganti
menjadi NULL.
Basis Data Halaman :
10
Query LEFT JOIN, juga berarti: “Ambil seluruh data dari tabel sebelah kiri, dan tampilkan nilainya
meskipun tidak berpasangan”. Tabel sebelah kiri ini adalah tabel mahasiswa, karena pada saat
penulisan query, tabel mahasiswa-lah yang saya tempatkan di sisi kiri: FROM mahasiswa LEFT JOIN
universitas
Basis Data Halaman :
11
Sebaliknya, query RIGHT JOIN akan menampilkan seluruh tabel di sisi kanan, yakni tabel
universitas, Meskipun tidak ada mahasiswa yang memilih jurusan tersebut:
SELECT [Link], [Link],
universitas.nama_dekan
FROM mahasiswa RIGHT JOIN universitas
ON [Link] = [Link];
Basis Data Halaman :
12
Basis Data Halaman :
13
Basis Data Halaman :
14
Basis Data Halaman :
15
Basis Data Halaman :
16
THANKS!
[Link]@[Link]
+62 852 1308 1309