SlideShare a Scribd company logo
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

Pbo
PboPbo
pertemuan 7 basis data relational.ppt
pertemuan 7 basis data relational.pptpertemuan 7 basis data relational.ppt
pertemuan 7 basis data relational.ppt
bagjanugraha15
Ā 
Basis Data Client-Server
Basis Data Client-ServerBasis Data Client-Server
Basis Data Client-Server
Desty Yani
Ā 
Soal essay basis data xi
Soal essay basis data xiSoal essay basis data xi
Soal essay basis data xi
tia irma
Ā 
Kk8 melakukan instalasi software
Kk8 melakukan instalasi softwareKk8 melakukan instalasi software
Kk8 melakukan instalasi softwareWahyu S
Ā 
Pemodelan berorientasi objek
Pemodelan berorientasi objekPemodelan berorientasi objek
Pemodelan berorientasi objek
Adhikara Asmoro
Ā 
Struktur direktori
Struktur direktoriStruktur direktori
Struktur direktoriAnggi DHARMA
Ā 
Pertemuan 1 Pemodelan Perangkat Lunak
Pertemuan 1 Pemodelan Perangkat LunakPertemuan 1 Pemodelan Perangkat Lunak
Pertemuan 1 Pemodelan Perangkat Lunak
Disma Ariyanti W
Ā 
Modul Ajar 3 ( Pert 5 - 7 ).docx
Modul Ajar 3 ( Pert 5 - 7 ).docxModul Ajar 3 ( Pert 5 - 7 ).docx
Modul Ajar 3 ( Pert 5 - 7 ).docx
SmksYapimTebingSyahb
Ā 
Pengolahan transaksi pada MySQL
Pengolahan transaksi pada  MySQLPengolahan transaksi pada  MySQL
Pengolahan transaksi pada MySQL
Putra Andry
Ā 
Ragam Model Proses Perangkat Lunak
Ragam Model Proses Perangkat LunakRagam Model Proses Perangkat Lunak
Ragam Model Proses Perangkat Lunak
SMK Kartika XX-1 Makassar
Ā 
Laporan praktikum 1 pemrograman mobile
Laporan praktikum 1 pemrograman mobileLaporan praktikum 1 pemrograman mobile
Laporan praktikum 1 pemrograman mobile
Ali Ikhsan
Ā 
SQL database client server
SQL database client serverSQL database client server
SQL database client server
Desty Yani
Ā 
Laporan Makalah Pembuatan Website E-Commerce-Basis Data
Laporan Makalah Pembuatan Website E-Commerce-Basis DataLaporan Makalah Pembuatan Website E-Commerce-Basis Data
Laporan Makalah Pembuatan Website E-Commerce-Basis Data
Shofura Kamal
Ā 
REKAYASA PERANGKAT LUNAK (REQUIREMENTS ANALYSIS FUNDAMENTALS)
REKAYASA PERANGKAT LUNAK (REQUIREMENTS ANALYSIS FUNDAMENTALS)REKAYASA PERANGKAT LUNAK (REQUIREMENTS ANALYSIS FUNDAMENTALS)
REKAYASA PERANGKAT LUNAK (REQUIREMENTS ANALYSIS FUNDAMENTALS)Listyowatik (Yanie)
Ā 
Rpp pbo kelas 12 semester ganjil
Rpp pbo kelas 12 semester ganjilRpp pbo kelas 12 semester ganjil
Rpp pbo kelas 12 semester ganjil
Saprudin Eskom
Ā 
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQLKelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Dejiko Chaem
Ā 
Class Diagram
Class DiagramClass Diagram
Class Diagram
Sherly Uda
Ā 
Introduction to oracle database (basic concepts)
Introduction to oracle database (basic concepts)Introduction to oracle database (basic concepts)
Introduction to oracle database (basic concepts)
Bilal Arshad
Ā 

What's hot (20)

Software Requirements
Software RequirementsSoftware Requirements
Software Requirements
Ā 
Pbo
PboPbo
Pbo
Ā 
pertemuan 7 basis data relational.ppt
pertemuan 7 basis data relational.pptpertemuan 7 basis data relational.ppt
pertemuan 7 basis data relational.ppt
Ā 
Basis Data Client-Server
Basis Data Client-ServerBasis Data Client-Server
Basis Data Client-Server
Ā 
Soal essay basis data xi
Soal essay basis data xiSoal essay basis data xi
Soal essay basis data xi
Ā 
Kk8 melakukan instalasi software
Kk8 melakukan instalasi softwareKk8 melakukan instalasi software
Kk8 melakukan instalasi software
Ā 
Pemodelan berorientasi objek
Pemodelan berorientasi objekPemodelan berorientasi objek
Pemodelan berorientasi objek
Ā 
Struktur direktori
Struktur direktoriStruktur direktori
Struktur direktori
Ā 
Pertemuan 1 Pemodelan Perangkat Lunak
Pertemuan 1 Pemodelan Perangkat LunakPertemuan 1 Pemodelan Perangkat Lunak
Pertemuan 1 Pemodelan Perangkat Lunak
Ā 
Modul Ajar 3 ( Pert 5 - 7 ).docx
Modul Ajar 3 ( Pert 5 - 7 ).docxModul Ajar 3 ( Pert 5 - 7 ).docx
Modul Ajar 3 ( Pert 5 - 7 ).docx
Ā 
Pengolahan transaksi pada MySQL
Pengolahan transaksi pada  MySQLPengolahan transaksi pada  MySQL
Pengolahan transaksi pada MySQL
Ā 
Ragam Model Proses Perangkat Lunak
Ragam Model Proses Perangkat LunakRagam Model Proses Perangkat Lunak
Ragam Model Proses Perangkat Lunak
Ā 
Laporan praktikum 1 pemrograman mobile
Laporan praktikum 1 pemrograman mobileLaporan praktikum 1 pemrograman mobile
Laporan praktikum 1 pemrograman mobile
Ā 
SQL database client server
SQL database client serverSQL database client server
SQL database client server
Ā 
Laporan Makalah Pembuatan Website E-Commerce-Basis Data
Laporan Makalah Pembuatan Website E-Commerce-Basis DataLaporan Makalah Pembuatan Website E-Commerce-Basis Data
Laporan Makalah Pembuatan Website E-Commerce-Basis Data
Ā 
REKAYASA PERANGKAT LUNAK (REQUIREMENTS ANALYSIS FUNDAMENTALS)
REKAYASA PERANGKAT LUNAK (REQUIREMENTS ANALYSIS FUNDAMENTALS)REKAYASA PERANGKAT LUNAK (REQUIREMENTS ANALYSIS FUNDAMENTALS)
REKAYASA PERANGKAT LUNAK (REQUIREMENTS ANALYSIS FUNDAMENTALS)
Ā 
Rpp pbo kelas 12 semester ganjil
Rpp pbo kelas 12 semester ganjilRpp pbo kelas 12 semester ganjil
Rpp pbo kelas 12 semester ganjil
Ā 
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQLKelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Ā 
Class Diagram
Class DiagramClass Diagram
Class Diagram
Ā 
Introduction to oracle database (basic concepts)
Introduction to oracle database (basic concepts)Introduction to oracle database (basic concepts)
Introduction to oracle database (basic concepts)
Ā 

More from Fakhrian Fadlia Adiwijaya

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
Fakhrian Fadlia Adiwijaya
Ā 
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
Fakhrian Fadlia Adiwijaya
Ā 
Algoritma & Pemograman - 01.Pendahuluan
Algoritma & Pemograman - 01.PendahuluanAlgoritma & Pemograman - 01.Pendahuluan
Algoritma & Pemograman - 01.Pendahuluan
Fakhrian Fadlia Adiwijaya
Ā 
07. menggunakan fungsi
07. menggunakan fungsi07. menggunakan fungsi
07. menggunakan fungsi
Fakhrian Fadlia Adiwijaya
Ā 
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
Fakhrian Fadlia Adiwijaya
Ā 
04. manipulasi data perintah insert
04. manipulasi data   perintah insert04. manipulasi data   perintah insert
04. manipulasi data perintah insert
Fakhrian Fadlia Adiwijaya
Ā 
03. index
03. index03. index
00. instalasi dan penggunaan mysql
00. instalasi dan penggunaan mysql00. instalasi dan penggunaan mysql
00. instalasi dan penggunaan mysql
Fakhrian Fadlia Adiwijaya
Ā 
02. relational model dan query languages
02. relational model dan query languages02. relational model dan query languages
02. relational model dan query languages
Fakhrian Fadlia Adiwijaya
Ā 
02. primary key, foreign key
02. primary key, foreign key02. primary key, foreign key
02. primary key, foreign key
Fakhrian Fadlia Adiwijaya
Ā 
01. pengelolaan database, tabel upload
01. pengelolaan database, tabel upload01. pengelolaan database, tabel upload
01. pengelolaan database, tabel upload
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

Bahan Sosialisasi PPDB_1 2024/2025 Bandung
Bahan Sosialisasi PPDB_1 2024/2025 BandungBahan Sosialisasi PPDB_1 2024/2025 Bandung
Bahan Sosialisasi PPDB_1 2024/2025 Bandung
Galang Adi Kuncoro
Ā 
Modul Ajar PAI dan Budi Pekerti Kelas 2 Fase A Kurikulum Merdeka
Modul Ajar PAI dan Budi Pekerti Kelas 2 Fase A Kurikulum MerdekaModul Ajar PAI dan Budi Pekerti Kelas 2 Fase A Kurikulum Merdeka
Modul Ajar PAI dan Budi Pekerti Kelas 2 Fase A Kurikulum Merdeka
Fathan Emran
Ā 
Sebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
Sebuah buku foto yang berjudul Lensa Kampung Ondel-OndelSebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
Sebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
ferrydmn1999
Ā 
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docxSOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
MuhammadBagusAprilia1
Ā 
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdfTugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
muhammadRifai732845
Ā 
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docxForm B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
EkoPutuKromo
Ā 
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagjaPi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
agusmulyadi08
Ā 
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdfNUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
DataSupriatna
Ā 
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptx
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptxBab 3 Sejarah Kerajaan Hindu-Buddha.pptx
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptx
nawasenamerta
Ā 
Sapawarga - Manual Guide PPDB Tahun 2024.pdf
Sapawarga - Manual Guide PPDB Tahun 2024.pdfSapawarga - Manual Guide PPDB Tahun 2024.pdf
Sapawarga - Manual Guide PPDB Tahun 2024.pdf
TarkaTarka
Ā 
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
widyakusuma99
Ā 
PETUNJUK TEKNIS PPDB JATIM 2024-sign.pdf
PETUNJUK TEKNIS PPDB JATIM 2024-sign.pdfPETUNJUK TEKNIS PPDB JATIM 2024-sign.pdf
PETUNJUK TEKNIS PPDB JATIM 2024-sign.pdf
Hernowo Subiantoro
Ā 
ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_
setiatinambunan
Ā 
tugas pai kelas 10 rangkuman bab 10 smk madani bogor
tugas pai kelas 10 rangkuman bab 10 smk madani bogortugas pai kelas 10 rangkuman bab 10 smk madani bogor
tugas pai kelas 10 rangkuman bab 10 smk madani bogor
WILDANREYkun
Ā 
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docxRUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
kinayaptr30
Ā 
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
agusmulyadi08
Ā 
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdfLK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
UditGheozi2
Ā 
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docxRUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
lastri261
Ā 
Laporan Kegiatan Pramuka Tugas Tambahan PMM.pdf
Laporan Kegiatan Pramuka Tugas Tambahan PMM.pdfLaporan Kegiatan Pramuka Tugas Tambahan PMM.pdf
Laporan Kegiatan Pramuka Tugas Tambahan PMM.pdf
UmyHasna1
Ā 
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdfRHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
asyi1
Ā 

Recently uploaded (20)

Bahan Sosialisasi PPDB_1 2024/2025 Bandung
Bahan Sosialisasi PPDB_1 2024/2025 BandungBahan Sosialisasi PPDB_1 2024/2025 Bandung
Bahan Sosialisasi PPDB_1 2024/2025 Bandung
Ā 
Modul Ajar PAI dan Budi Pekerti Kelas 2 Fase A Kurikulum Merdeka
Modul Ajar PAI dan Budi Pekerti Kelas 2 Fase A Kurikulum MerdekaModul Ajar PAI dan Budi Pekerti Kelas 2 Fase A Kurikulum Merdeka
Modul Ajar PAI dan Budi Pekerti Kelas 2 Fase A Kurikulum Merdeka
Ā 
Sebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
Sebuah buku foto yang berjudul Lensa Kampung Ondel-OndelSebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
Sebuah buku foto yang berjudul Lensa Kampung Ondel-Ondel
Ā 
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docxSOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
SOAL SHB PKN SEMESTER GENAP TAHUN 2023-2024.docx
Ā 
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdfTugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Tugas Mandiri 1.4.a.4.3 Keyakinan Kelas.pdf
Ā 
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docxForm B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Ā 
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagjaPi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Ā 
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdfNUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
NUMERASI KOMPETENSI PENDIDIK TAHAP CAKAP DAN MAHIR.pdf
Ā 
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptx
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptxBab 3 Sejarah Kerajaan Hindu-Buddha.pptx
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptx
Ā 
Sapawarga - Manual Guide PPDB Tahun 2024.pdf
Sapawarga - Manual Guide PPDB Tahun 2024.pdfSapawarga - Manual Guide PPDB Tahun 2024.pdf
Sapawarga - Manual Guide PPDB Tahun 2024.pdf
Ā 
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
Ā 
PETUNJUK TEKNIS PPDB JATIM 2024-sign.pdf
PETUNJUK TEKNIS PPDB JATIM 2024-sign.pdfPETUNJUK TEKNIS PPDB JATIM 2024-sign.pdf
PETUNJUK TEKNIS PPDB JATIM 2024-sign.pdf
Ā 
ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_
Ā 
tugas pai kelas 10 rangkuman bab 10 smk madani bogor
tugas pai kelas 10 rangkuman bab 10 smk madani bogortugas pai kelas 10 rangkuman bab 10 smk madani bogor
tugas pai kelas 10 rangkuman bab 10 smk madani bogor
Ā 
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docxRUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
Ā 
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
Ā 
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdfLK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
LK 1 - 5T Keputusan Berdampak PERMATA BUNDA.pdf
Ā 
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docxRUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
Ā 
Laporan Kegiatan Pramuka Tugas Tambahan PMM.pdf
Laporan Kegiatan Pramuka Tugas Tambahan PMM.pdfLaporan Kegiatan Pramuka Tugas Tambahan PMM.pdf
Laporan Kegiatan Pramuka Tugas Tambahan PMM.pdf
Ā 
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdfRHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
Ā 

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' );