SlideShare a Scribd company logo
1 of 31
Download to read offline
Mengakses Banyak Tabel
Fakhrian Fadlia Adiwijaya, S.Kom
MYSQL mendukung beberapa metode yang dapat mengakses beberapa tabel
sekaligus dengan sebuah statement SQL.
cara yang dapat digunakan adalah dengan menggunakan JOIN atau dapat
menambah SUBQUERY pada statement utama SQL.
Mengakses Banyak Tabel
Mengakses Menggunakan Join Tabel
Id Title Year Category
1 ASSASSIN'S CREED: EMBERS 2011 Animations
2 Real Steel 2012 Animations
3 Alvin and the Chipmunks 2007 Animations
4 The Adventures of Tin Tin 2011 Animations
5 Safe 2012 Action
6 Safe House 2012 Action
7 GIA 1998 18+
8 Deadline 2009 18+
9 The Dirty Picture 2011 18+
10 Marley and me 2008 Romance
Tabel Movies
Mengakses Menggunakan Join Tabel
Tabel Movies
CREATE TABLE movies (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(30),
year YEAR,
category VARCHAR(15)
)ENGINE=Innodb;
INSERT INTO movies VALUES
(1,'ASSASSIN'S CREED : EMBERS','2011','Animations'),
(2,'Real Steel','2012','Animations'),
(3,'Alvin and the Chipmunks','2007','Animations'),
(4,'The Adventures of Tin Tin','2011','Animations'),
(5,'Safe','2012','Action'),
(6,'Safe House','2012','Action'),
(7,'GIA','1998','18+'),
(8,'Deadline','2009','18+'),
(9,'The Dirty Picture','2011','18+'),
(10,'Marley and me','2008','Romance');
Mengakses Menggunakan Join Tabel
id first_name last_name movie_id
1 Adam Smith 1
2 Ravi Kumar 2
3 Susan Davidson 5
4 Jenny Adrianna 8
6 Lee Pong 10
Tabel Members
Mengakses Menggunakan Join Tabel
Tabel Members
CREATE TABLE members (
id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(15) NOT NULL,
last_name VARCHAR(15) NOT NULL,
movie_id INT,
FOREIGN KEY (movie_id) REFERENCES
movies(id) ON DELETE CASCADE ON
UPDATE CASCADE
)ENGINE=Innodb;
INSERT INTO members VALUES
(1,'Adam','Smith',1),
(2,'Ravi','Kumar',2),
(3,'Susan','Davidson',5),
(4,'Jenny','Adrianna',8),
(5,'Lee','Pong',10);
Full Cross Join
Movies Members Movies MembersMovies Members
All Rows from both Tables
Full Cross Join
Cross JOIN adalah bentuk JOIN yang paling sederhana yang cocok dengan setiap
baris dari satu tabel database ke semua baris baris lainnya.
Dengan kata lain, Cross Join memberi kita kombinasi setiap baris tabel pertama
dengan semua baris di tabel kedua.
Misalkan kita ingin mendapatkan semua catatan anggota terhadap semua
rekaman film, kita bisa menggunakan script yang ditunjukkan di bawah ini untuk
mendapatkan hasil yang kita inginkan.
SELECT * FROM movies CROSS JOIN members
Full Inner Join
Movies Members Movies Members
Only matching rows
Full Inner Join
INNER JOIN digunakan untuk mengembalikan baris dari kedua tabel yang
memenuhi kondisi yang diberikan.
Misalkan, Anda ingin mendapatkan daftar anggota yang telah menyewa film
bersama dengan judul film yang disewa oleh mereka. Anda bisa menggunakan
INNER JOIN untuk itu, yang mengembalikan baris dari kedua tabel yang sesuai
dengan kondisi yang ada.
Full Inner Join
SELECT members.first_name , members.last_name , movies.title FROM members
,movies
WHERE movies.id = members.movie_id
SELECT A.first_name, A.last_name, B.title FROM members AS A
INNER JOIN movies AS B ON B.id = A.movie_id
Left Outer Join
Movies Members Movies Members
All rows from left table
Movies
Right Outer Join
Movies Members Movies Members
All rows from right table
Members
Left / Right Outer Join
SELECT A.title , B.first_name , B.last_name FROM movies AS A
LEFT JOIN members AS B ON B.movie_id = A.id
SELECT A.title , B.first_name , B.last_name FROM movies AS A
RIGHT JOIN members AS B ON B.movie_id = A.id
SELECT A.first_name , A.last_name, B.title FROM members AS A
LEFT JOIN movies AS B ON B.id = A.movie_id
SELECT A.first_name , A.last_name, B.title FROM members AS A
RIGHT JOIN movies AS B ON B.id = A.movie_id
LEFT JOIN
RIGHT JOIN
SELECT A.title , B.first_name , B.last_name FROM movies AS A
RIGHT JOIN members AS B ON B.movie_id = A.id
ON
Digunakan untuk kunci relasi yang memiliki nama atribut berbeda
USING
Digunakan untuk kunci relasi yang memiliki nama atribut yang sama.
“ON” & “Using” pada klausa Join
ALTER TABLE `movies` CHANGE `id` `movie_id` INT( 11 ) NOT NULL AUTO_INCREMENT;
“ON” & “Using” pada klausa Join
SELECT A.first_name, A.last_name, B.title FROM members AS A
INNER JOIN movies AS B ON B.id = A.movie_id
SELECT A.first_name, A.last_name, B.title FROM members AS A
INNER JOIN movies AS B USING(movie_id)
ALTER TABLE movies CHANGE id movie_id INT(1) NOT NULL AUTO_INCREMENT;
Natural JOIN dapat menspesifikasikan letak JOIN (FULL, LEFT, RIGHT).
Pada NATURAL JOIN tidak ada kondisi ON / USING. Hal ini dikarenakan NATURAL
JOIN secara otomatis menghubungkan kata kunci yang sama antar tabel yang
berelasi.
Natural Join
SELECT A.first_name , A.last_name, B.title FROM members AS A
NATURAL RIGHT JOIN movies AS B
SELECT A.first_name , A.last_name, B.title FROM members AS A
NATURAL JOIN movies AS B
Subquery adalah query nested / sebuah query yang ada di dalam query.
Subquery digunakan untuk menangani masalah dalam query yang kompleks
bahkan untuk nilai yang tidak diketahui berapa yang akan di select atau di insert.
Mengakses Menggunakan Subquery
Kegunaan :
1. Untuk menyelesaikan persoalan dimana terdapat suatu nilai yang
tidak diketahui (unknown values)
2. Meng-copy data dari satu tabel ke tabel lain
3. Mengubah / Menghapus baris dari satu tabel berdasarkan baris dari
tabel lain.
Bentuk Umum Subquery
Tabel Music
Musicid Judul TahunTerbit
11001Tak Ada Yang Abadi 2005
22002Diantara Kalian 2006
33003Jangan Menyerah 2005
44004Sang Mantan 2008
55005Saat Kau Jauh 2009
66006Okelah Klo Begitu 2007
77007Menghapus Jejakmu 2007
Tabel Studio
StudioID NamaStudio Pemilik Studio
0010 Sony Music Sony
0011 Burning Studio Audy
0012 Abadi Music Abdi
0013 Sunny Music Mutia
0014 Ceria Studio Risna
0015 Persib Studio Kadiman
0016 Logitech Spectrum Taufik
Tabel Album
StudioID MusicID
0010 33003
0011 44004
0012 77007
0013 11001
0014 22002
0015 55005
0016 66006
Insert Menggunakan Subquery
CREATE TABLE studio2(
StudioID INT NOT NULL PRIMARY KEY,
NamaStudio VARCHAR(50) NOT NULL,
PemilikStudio VARCHAR(50) NOT NULL
)ENGINE=InnoDB;
INSERT INTO studio2 SELECT * FROM studio;
INSERT INTO studio2 (StudioID,NamaStudio,PemilikStudio) SELECT
StudioID,NamaStudio,PemilikStudio from studio;
Contoh Subquery
SELECT NamaStudio FROM studio WHERE studioid=(SELECT a.studioid FROM
album AS a, music AS m WHERE a.musicid=m.musicid AND judul='diantara
kalian');
Bagaimana menampilkan hal yang sama menggunakan join ???
SELECT namastudio FROM studio
INNER JOIN album ON album.studioid=studio.studioid
INNER JOIN music ON music.musicid=album.musicid
WHERE judul='diantara kalian';
Join VS Subquery
SELECT NamaStudio FROM studio WHERE studioid=(SELECT a.studioid FROM
album AS a, music AS m WHERE a.musicid=m.musicid);
SELECT namastudio FROM studio
INNER JOIN album ON album.studioid=studio.studioid
INNER JOIN music ON music.musicid=album.musicid;
Dalam segi pemanfaatan penggunana JOIN lebih baik daripada SUBQUERY
karena jika menggunakan SUBQUERY terdapat dua / lebih data yang sama, maka
data tersebut tidak dapat ditampilkan, berbeda dengan JOIN.
Contoh Subquery
SELECT judul,tahunterbit
FROM music WHERE tahunterbit < (SELECT MAX(Tahunterbit)-1 FROM music);
Operator pada Subquery
1. Operator Any dan Some
SELECT judul,tahunterbit
FROM music WHERE tahunterbit > ANY | SOME(
SELECT m.tahunterbit
FROM music AS m JOIN album AS a USING (musicid)
JOIN studio AS s USING(studioid)
WHERE judul='menghapus jejakmu‘
);
Operator pada Subquery
2. Operator ALL
SELECT judul,tahunterbit
FROM music WHERE tahunterbit > ALL (
SELECT m.tahunterbit
FROM music AS m JOIN album AS a USING (musicid)
JOIN studio AS s USING(studioid)
WHERE judul='menghapus jejakmu‘
);
Operator pada Subquery
3. Operator IN dan NOT IN
SELECT judul,tahunterbit
FROM music WHERE tahunterbit IN | NOT IN (
SELECT m.tahunterbit
FROM music AS m JOIN album AS a USING (musicid)
JOIN studio AS s USING(studioid)
WHERE judul='menghapus jejakmu‘
);
Operator pada Subquery
3. Operator EXISTS dan NOT EXISTS
SELECT MusicID, Judul
FROM music AS m
WHERE EXISTS (
SELECT MusicID
FROM album AS a
WHERE m.MusicID=a.MusicID
);
SELECT MusicID, Judul
FROM music AS m
WHERE EXISTS (
SELECT a.musicid from album AS a
INNER JOIN music AS m
ON a.MusicID=m.Musicid
);
Hapus terlebih dahulu data album yang memiliki musicid 22002
Contoh Update Multiple Table
UPDATE album
INNER JOIN studio ON studio.StudioID=album.StudioID
INNER JOIN music ON music.Musicid=album.MusicID
SET NamaStudio='angkasa'
WHERE judul='jangan menyerah';
UPDATE studio SET NamaStudio='angkasa'
WHERE StudioID=(
SELECT StudioID FROM music AS m, album AS a
WHERE m.musicid=a.musicid AND judul='jangan menyerah'
);
Contoh Delete Multiple Table
DELETE a,s FROM studio as s
INNER JOIN album AS a ON s.StudioID=a.StudioID
INNER JOIN music AS m ON m.Musicid=a.MusicID
WHERE judul='jangan menyerah';
DELETE a,s FROM studio as s, album AS a
WHERE s.StudioID=(SELECT s.StudioID FROM music AS m
WHERE m.musicid=a.musicid AND judul='jangan menyerah'
);
TERIMA KASIH

More Related Content

What's hot

ppt Tipe data,variabel, operator
ppt Tipe data,variabel, operatorppt Tipe data,variabel, operator
ppt Tipe data,variabel, operator
Iwank Odarlean
 

What's hot (20)

Pewarisan (inheritance) pada JAVA
Pewarisan (inheritance) pada JAVAPewarisan (inheritance) pada JAVA
Pewarisan (inheritance) pada JAVA
 
[PBO] Pertemuan 6 - Interface
[PBO] Pertemuan 6 - Interface[PBO] Pertemuan 6 - Interface
[PBO] Pertemuan 6 - Interface
 
[PBO] Pertemuan 6 - Abstrak
[PBO] Pertemuan 6 - Abstrak[PBO] Pertemuan 6 - Abstrak
[PBO] Pertemuan 6 - Abstrak
 
Modul Ajar Basis Data
Modul Ajar Basis DataModul Ajar Basis Data
Modul Ajar Basis Data
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
 
[PBO] Pertemuan 11 - GUI Java Desktop
[PBO] Pertemuan 11 - GUI Java Desktop[PBO] Pertemuan 11 - GUI Java Desktop
[PBO] Pertemuan 11 - GUI Java Desktop
 
Materi struktur hirarki basis data
Materi struktur hirarki basis dataMateri struktur hirarki basis data
Materi struktur hirarki basis data
 
Script Writting dan Story Board (Materi Mengajar Kelas 10 SMK Prod. Multimedia)
Script Writting dan Story Board (Materi Mengajar Kelas 10 SMK Prod. Multimedia)Script Writting dan Story Board (Materi Mengajar Kelas 10 SMK Prod. Multimedia)
Script Writting dan Story Board (Materi Mengajar Kelas 10 SMK Prod. Multimedia)
 
Algoritma Pemrograman - Variabel, Konstanta & Tipe Data
Algoritma Pemrograman - Variabel, Konstanta & Tipe DataAlgoritma Pemrograman - Variabel, Konstanta & Tipe Data
Algoritma Pemrograman - Variabel, Konstanta & Tipe Data
 
JOIN
JOINJOIN
JOIN
 
Metode proses pengembangan perangkat lunak
Metode proses pengembangan perangkat lunakMetode proses pengembangan perangkat lunak
Metode proses pengembangan perangkat lunak
 
ppt Tipe data,variabel, operator
ppt Tipe data,variabel, operatorppt Tipe data,variabel, operator
ppt Tipe data,variabel, operator
 
Kd15 menganalisis struktur penyimpanan pada rdbms
Kd15 menganalisis struktur penyimpanan pada rdbmsKd15 menganalisis struktur penyimpanan pada rdbms
Kd15 menganalisis struktur penyimpanan pada rdbms
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
 
[RPL2] Deployment Diagram
[RPL2] Deployment Diagram[RPL2] Deployment Diagram
[RPL2] Deployment Diagram
 
Variabel, Tipe Data dan Operator - Pemrograman I
Variabel, Tipe Data dan Operator - Pemrograman IVariabel, Tipe Data dan Operator - Pemrograman I
Variabel, Tipe Data dan Operator - Pemrograman I
 
Materi : Struktur Data (2 Array)
Materi : Struktur Data (2 Array)Materi : Struktur Data (2 Array)
Materi : Struktur Data (2 Array)
 
Pemrograman Mobile Unit 2 : Dasar-dasar Flutter
Pemrograman Mobile Unit 2 : Dasar-dasar FlutterPemrograman Mobile Unit 2 : Dasar-dasar Flutter
Pemrograman Mobile Unit 2 : Dasar-dasar Flutter
 
[PBO] Pertemuan 10 - Generic Programming & Collection
[PBO] Pertemuan 10 - Generic Programming & Collection[PBO] Pertemuan 10 - Generic Programming & Collection
[PBO] Pertemuan 10 - Generic Programming & Collection
 
Pengujian Perangkat Lunak
Pengujian Perangkat LunakPengujian Perangkat Lunak
Pengujian Perangkat Lunak
 

More from Fakhrian Fadlia Adiwijaya

More from Fakhrian Fadlia Adiwijaya (11)

Algoritma & Pemograman - 02. Variabel dan Tipe Data
Algoritma & Pemograman - 02. Variabel dan Tipe DataAlgoritma & Pemograman - 02. Variabel dan Tipe Data
Algoritma & Pemograman - 02. Variabel dan Tipe Data
 
Basis Data I - 01. Pendahuluan Basis Data
Basis Data I - 01. Pendahuluan Basis DataBasis Data I - 01. Pendahuluan Basis Data
Basis Data I - 01. Pendahuluan Basis Data
 
Algoritma & Pemograman - 01.Pendahuluan
Algoritma & Pemograman - 01.PendahuluanAlgoritma & Pemograman - 01.Pendahuluan
Algoritma & Pemograman - 01.Pendahuluan
 
07. menggunakan fungsi
07. menggunakan fungsi07. menggunakan fungsi
07. menggunakan fungsi
 
05. manipulasi data update,delete &amp; seleksi
05. manipulasi data   update,delete &amp; seleksi05. manipulasi data   update,delete &amp; seleksi
05. manipulasi data update,delete &amp; seleksi
 
04. manipulasi data perintah insert
04. manipulasi data   perintah insert04. manipulasi data   perintah insert
04. manipulasi data perintah insert
 
03. index
03. index03. index
03. index
 
00. instalasi dan penggunaan mysql
00. instalasi dan penggunaan mysql00. instalasi dan penggunaan mysql
00. instalasi dan penggunaan mysql
 
02. relational model dan query languages
02. relational model dan query languages02. relational model dan query languages
02. relational model dan query languages
 
02. primary key, foreign key
02. primary key, foreign key02. primary key, foreign key
02. primary key, foreign key
 
01. pengelolaan database, tabel upload
01. pengelolaan database, tabel upload01. pengelolaan database, tabel upload
01. pengelolaan database, tabel upload
 

Recently uploaded

Kenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).pptKenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).ppt
novibernadina
 
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptxPPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
dpp11tya
 
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxBAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
JuliBriana2
 
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdfAksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
JarzaniIsmail
 
Contoh PPT Seminar Proposal Teknik Informatika.pptx
Contoh PPT Seminar Proposal Teknik Informatika.pptxContoh PPT Seminar Proposal Teknik Informatika.pptx
Contoh PPT Seminar Proposal Teknik Informatika.pptx
IvvatulAini
 

Recently uploaded (20)

Membaca dengan Metode Fonik - Membuat Rancangan Pembelajaran dengan Metode Fo...
Membaca dengan Metode Fonik - Membuat Rancangan Pembelajaran dengan Metode Fo...Membaca dengan Metode Fonik - Membuat Rancangan Pembelajaran dengan Metode Fo...
Membaca dengan Metode Fonik - Membuat Rancangan Pembelajaran dengan Metode Fo...
 
Kanvas BAGJA prakarsa perubahan Ahyar.pdf
Kanvas BAGJA prakarsa perubahan Ahyar.pdfKanvas BAGJA prakarsa perubahan Ahyar.pdf
Kanvas BAGJA prakarsa perubahan Ahyar.pdf
 
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfSalinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
 
RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...
RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...
RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...
 
Kenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).pptKenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).ppt
 
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxPEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
 
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdfProv.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
 
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptxPPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
 
Modul Projek - Batik Ecoprint - Fase B.pdf
Modul Projek  - Batik Ecoprint - Fase B.pdfModul Projek  - Batik Ecoprint - Fase B.pdf
Modul Projek - Batik Ecoprint - Fase B.pdf
 
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptxPPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
 
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdfModul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
 
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptxOPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
 
E-modul Materi Ekosistem untuk kelas X SMA
E-modul Materi Ekosistem untuk kelas X SMAE-modul Materi Ekosistem untuk kelas X SMA
E-modul Materi Ekosistem untuk kelas X SMA
 
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxBAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
 
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdfAksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
 
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdfMODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
 
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
 
power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"
 
Contoh PPT Seminar Proposal Teknik Informatika.pptx
Contoh PPT Seminar Proposal Teknik Informatika.pptxContoh PPT Seminar Proposal Teknik Informatika.pptx
Contoh PPT Seminar Proposal Teknik Informatika.pptx
 
Materi Sosialisasi US 2024 Sekolah Dasar pptx
Materi Sosialisasi US 2024 Sekolah Dasar pptxMateri Sosialisasi US 2024 Sekolah Dasar pptx
Materi Sosialisasi US 2024 Sekolah Dasar pptx
 

08. mengakses multiple tabel

  • 1. Mengakses Banyak Tabel Fakhrian Fadlia Adiwijaya, S.Kom
  • 2. MYSQL mendukung beberapa metode yang dapat mengakses beberapa tabel sekaligus dengan sebuah statement SQL. cara yang dapat digunakan adalah dengan menggunakan JOIN atau dapat menambah SUBQUERY pada statement utama SQL. Mengakses Banyak Tabel
  • 3. Mengakses Menggunakan Join Tabel Id Title Year Category 1 ASSASSIN'S CREED: EMBERS 2011 Animations 2 Real Steel 2012 Animations 3 Alvin and the Chipmunks 2007 Animations 4 The Adventures of Tin Tin 2011 Animations 5 Safe 2012 Action 6 Safe House 2012 Action 7 GIA 1998 18+ 8 Deadline 2009 18+ 9 The Dirty Picture 2011 18+ 10 Marley and me 2008 Romance Tabel Movies
  • 4. Mengakses Menggunakan Join Tabel Tabel Movies CREATE TABLE movies ( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(30), year YEAR, category VARCHAR(15) )ENGINE=Innodb; INSERT INTO movies VALUES (1,'ASSASSIN'S CREED : EMBERS','2011','Animations'), (2,'Real Steel','2012','Animations'), (3,'Alvin and the Chipmunks','2007','Animations'), (4,'The Adventures of Tin Tin','2011','Animations'), (5,'Safe','2012','Action'), (6,'Safe House','2012','Action'), (7,'GIA','1998','18+'), (8,'Deadline','2009','18+'), (9,'The Dirty Picture','2011','18+'), (10,'Marley and me','2008','Romance');
  • 5. Mengakses Menggunakan Join Tabel id first_name last_name movie_id 1 Adam Smith 1 2 Ravi Kumar 2 3 Susan Davidson 5 4 Jenny Adrianna 8 6 Lee Pong 10 Tabel Members
  • 6. Mengakses Menggunakan Join Tabel Tabel Members CREATE TABLE members ( id INT PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(15) NOT NULL, last_name VARCHAR(15) NOT NULL, movie_id INT, FOREIGN KEY (movie_id) REFERENCES movies(id) ON DELETE CASCADE ON UPDATE CASCADE )ENGINE=Innodb; INSERT INTO members VALUES (1,'Adam','Smith',1), (2,'Ravi','Kumar',2), (3,'Susan','Davidson',5), (4,'Jenny','Adrianna',8), (5,'Lee','Pong',10);
  • 7. Full Cross Join Movies Members Movies MembersMovies Members All Rows from both Tables
  • 8. Full Cross Join Cross JOIN adalah bentuk JOIN yang paling sederhana yang cocok dengan setiap baris dari satu tabel database ke semua baris baris lainnya. Dengan kata lain, Cross Join memberi kita kombinasi setiap baris tabel pertama dengan semua baris di tabel kedua. Misalkan kita ingin mendapatkan semua catatan anggota terhadap semua rekaman film, kita bisa menggunakan script yang ditunjukkan di bawah ini untuk mendapatkan hasil yang kita inginkan. SELECT * FROM movies CROSS JOIN members
  • 9. Full Inner Join Movies Members Movies Members Only matching rows
  • 10. Full Inner Join INNER JOIN digunakan untuk mengembalikan baris dari kedua tabel yang memenuhi kondisi yang diberikan. Misalkan, Anda ingin mendapatkan daftar anggota yang telah menyewa film bersama dengan judul film yang disewa oleh mereka. Anda bisa menggunakan INNER JOIN untuk itu, yang mengembalikan baris dari kedua tabel yang sesuai dengan kondisi yang ada.
  • 11. Full Inner Join SELECT members.first_name , members.last_name , movies.title FROM members ,movies WHERE movies.id = members.movie_id SELECT A.first_name, A.last_name, B.title FROM members AS A INNER JOIN movies AS B ON B.id = A.movie_id
  • 12. Left Outer Join Movies Members Movies Members All rows from left table Movies
  • 13. Right Outer Join Movies Members Movies Members All rows from right table Members
  • 14. Left / Right Outer Join SELECT A.title , B.first_name , B.last_name FROM movies AS A LEFT JOIN members AS B ON B.movie_id = A.id SELECT A.title , B.first_name , B.last_name FROM movies AS A RIGHT JOIN members AS B ON B.movie_id = A.id SELECT A.first_name , A.last_name, B.title FROM members AS A LEFT JOIN movies AS B ON B.id = A.movie_id SELECT A.first_name , A.last_name, B.title FROM members AS A RIGHT JOIN movies AS B ON B.id = A.movie_id LEFT JOIN RIGHT JOIN
  • 15. SELECT A.title , B.first_name , B.last_name FROM movies AS A RIGHT JOIN members AS B ON B.movie_id = A.id ON Digunakan untuk kunci relasi yang memiliki nama atribut berbeda USING Digunakan untuk kunci relasi yang memiliki nama atribut yang sama. “ON” & “Using” pada klausa Join ALTER TABLE `movies` CHANGE `id` `movie_id` INT( 11 ) NOT NULL AUTO_INCREMENT;
  • 16. “ON” & “Using” pada klausa Join SELECT A.first_name, A.last_name, B.title FROM members AS A INNER JOIN movies AS B ON B.id = A.movie_id SELECT A.first_name, A.last_name, B.title FROM members AS A INNER JOIN movies AS B USING(movie_id) ALTER TABLE movies CHANGE id movie_id INT(1) NOT NULL AUTO_INCREMENT;
  • 17. Natural JOIN dapat menspesifikasikan letak JOIN (FULL, LEFT, RIGHT). Pada NATURAL JOIN tidak ada kondisi ON / USING. Hal ini dikarenakan NATURAL JOIN secara otomatis menghubungkan kata kunci yang sama antar tabel yang berelasi. Natural Join SELECT A.first_name , A.last_name, B.title FROM members AS A NATURAL RIGHT JOIN movies AS B SELECT A.first_name , A.last_name, B.title FROM members AS A NATURAL JOIN movies AS B
  • 18. Subquery adalah query nested / sebuah query yang ada di dalam query. Subquery digunakan untuk menangani masalah dalam query yang kompleks bahkan untuk nilai yang tidak diketahui berapa yang akan di select atau di insert. Mengakses Menggunakan Subquery Kegunaan : 1. Untuk menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui (unknown values) 2. Meng-copy data dari satu tabel ke tabel lain 3. Mengubah / Menghapus baris dari satu tabel berdasarkan baris dari tabel lain.
  • 20. Tabel Music Musicid Judul TahunTerbit 11001Tak Ada Yang Abadi 2005 22002Diantara Kalian 2006 33003Jangan Menyerah 2005 44004Sang Mantan 2008 55005Saat Kau Jauh 2009 66006Okelah Klo Begitu 2007 77007Menghapus Jejakmu 2007 Tabel Studio StudioID NamaStudio Pemilik Studio 0010 Sony Music Sony 0011 Burning Studio Audy 0012 Abadi Music Abdi 0013 Sunny Music Mutia 0014 Ceria Studio Risna 0015 Persib Studio Kadiman 0016 Logitech Spectrum Taufik Tabel Album StudioID MusicID 0010 33003 0011 44004 0012 77007 0013 11001 0014 22002 0015 55005 0016 66006
  • 21. Insert Menggunakan Subquery CREATE TABLE studio2( StudioID INT NOT NULL PRIMARY KEY, NamaStudio VARCHAR(50) NOT NULL, PemilikStudio VARCHAR(50) NOT NULL )ENGINE=InnoDB; INSERT INTO studio2 SELECT * FROM studio; INSERT INTO studio2 (StudioID,NamaStudio,PemilikStudio) SELECT StudioID,NamaStudio,PemilikStudio from studio;
  • 22. Contoh Subquery SELECT NamaStudio FROM studio WHERE studioid=(SELECT a.studioid FROM album AS a, music AS m WHERE a.musicid=m.musicid AND judul='diantara kalian'); Bagaimana menampilkan hal yang sama menggunakan join ??? SELECT namastudio FROM studio INNER JOIN album ON album.studioid=studio.studioid INNER JOIN music ON music.musicid=album.musicid WHERE judul='diantara kalian';
  • 23. Join VS Subquery SELECT NamaStudio FROM studio WHERE studioid=(SELECT a.studioid FROM album AS a, music AS m WHERE a.musicid=m.musicid); SELECT namastudio FROM studio INNER JOIN album ON album.studioid=studio.studioid INNER JOIN music ON music.musicid=album.musicid; Dalam segi pemanfaatan penggunana JOIN lebih baik daripada SUBQUERY karena jika menggunakan SUBQUERY terdapat dua / lebih data yang sama, maka data tersebut tidak dapat ditampilkan, berbeda dengan JOIN.
  • 24. Contoh Subquery SELECT judul,tahunterbit FROM music WHERE tahunterbit < (SELECT MAX(Tahunterbit)-1 FROM music);
  • 25. Operator pada Subquery 1. Operator Any dan Some SELECT judul,tahunterbit FROM music WHERE tahunterbit > ANY | SOME( SELECT m.tahunterbit FROM music AS m JOIN album AS a USING (musicid) JOIN studio AS s USING(studioid) WHERE judul='menghapus jejakmu‘ );
  • 26. Operator pada Subquery 2. Operator ALL SELECT judul,tahunterbit FROM music WHERE tahunterbit > ALL ( SELECT m.tahunterbit FROM music AS m JOIN album AS a USING (musicid) JOIN studio AS s USING(studioid) WHERE judul='menghapus jejakmu‘ );
  • 27. Operator pada Subquery 3. Operator IN dan NOT IN SELECT judul,tahunterbit FROM music WHERE tahunterbit IN | NOT IN ( SELECT m.tahunterbit FROM music AS m JOIN album AS a USING (musicid) JOIN studio AS s USING(studioid) WHERE judul='menghapus jejakmu‘ );
  • 28. Operator pada Subquery 3. Operator EXISTS dan NOT EXISTS SELECT MusicID, Judul FROM music AS m WHERE EXISTS ( SELECT MusicID FROM album AS a WHERE m.MusicID=a.MusicID ); SELECT MusicID, Judul FROM music AS m WHERE EXISTS ( SELECT a.musicid from album AS a INNER JOIN music AS m ON a.MusicID=m.Musicid ); Hapus terlebih dahulu data album yang memiliki musicid 22002
  • 29. Contoh Update Multiple Table UPDATE album INNER JOIN studio ON studio.StudioID=album.StudioID INNER JOIN music ON music.Musicid=album.MusicID SET NamaStudio='angkasa' WHERE judul='jangan menyerah'; UPDATE studio SET NamaStudio='angkasa' WHERE StudioID=( SELECT StudioID FROM music AS m, album AS a WHERE m.musicid=a.musicid AND judul='jangan menyerah' );
  • 30. Contoh Delete Multiple Table DELETE a,s FROM studio as s INNER JOIN album AS a ON s.StudioID=a.StudioID INNER JOIN music AS m ON m.Musicid=a.MusicID WHERE judul='jangan menyerah'; DELETE a,s FROM studio as s, album AS a WHERE s.StudioID=(SELECT s.StudioID FROM music AS m WHERE m.musicid=a.musicid AND judul='jangan menyerah' );