SQLite - JOINS: Memahami Seni Menggabungkan Tabel

Hai teman-teman, bakal maestro database! Hari ini, kita akan mendalamkan salah satu aspek yang paling menarik (dan kadang-kadang menakutkan) dalam SQLite: JOINS. Jangan khawatir jika Anda masih baru; pada akhir panduan ini, Anda akan bisa menggabungkan tabel seperti seorang pro!

SQLite - JOINS

Pengenalan ke JOINS

Sebelum kita melompat ke lubuknya, mari bicarakan mengapa kita memerlukan JOINS. Bayangkan Anda mengatur pesta ulang tahun besar (siapa yang tidak menyukai pesta yang bagus, kan?). Anda memiliki satu daftar dengan nama tamu dan lainnya dengan rasa kue kesukaan mereka. Warna-warni jika Anda dapat menggabungkan daftar ini untuk memastikan setiap orang mendapat kue kesukaannya? Itu tepat apa yang JOINS lakukan dalam basis data - mereka membantu kita menggabungkan informasi dari tabel yang berbeda dalam cara yang berarti.

Sekarang, mari kita jelajahi tiga jenis utama JOINS dalam SQLite:

  1. CROSS JOIN
  2. INNER JOIN
  3. OUTER JOIN

CROSS JOIN: Penyusun Pesta

Apa itu CROSS JOIN?

CROSS JOIN seperti mengundang semua orang untuk berkenalan dengan semua orang lain di pesta Anda. Itu menggabungkan setiap baris dari satu tabel dengan setiap baris dari tabel lain. Itu seperti mengatakan, "Hey, semua orang, kenal semua orang lain!"

Syntax CROSS JOIN

SELECT * FROM table1 CROSS JOIN table2;

Contoh CROSS JOIN

Buatlah dua tabel sederhana untuk rencana pesta kami:

CREATE TABLE guests (
guest_id INTEGER PRIMARY KEY,
guest_name TEXT
);

CREATE TABLE cakes (
cake_id INTEGER PRIMARY KEY,
cake_flavor TEXT
);

INSERT INTO guests (guest_name) VALUES ('Alice'), ('Bob'), ('Charlie');
INSERT INTO cakes (cake_flavor) VALUES ('Chocolate'), ('Vanilla'), ('Strawberry');

Sekarang, gunakan CROSS JOIN:

SELECT guests.guest_name, cakes.cake_flavor
FROM guests CROSS JOIN cakes;

Query ini akan menghasilkan:

guest_name cake_flavor
Alice Chocolate
Alice Vanilla
Alice Strawberry
Bob Chocolate
Bob Vanilla
Bob Strawberry
Charlie Chocolate
Charlie Vanilla
Charlie Strawberry

Seperti yang Anda lihat, setiap tamu digabungkan dengan setiap rasa kue. Seperti memberikan setiap orang rasa dari semua kue!

Kapan Menggunakan CROSS JOIN

CROSS JOIN jarang digunakan dalam kasus dunia nyata karena mereka dapat menghasilkan set data yang sangat besar. Namun, mereka bagus untuk menghasilkan kombinasi atau membuat data tes.

INNER JOIN: Pasangan yang sempurna

Apa itu INNER JOIN?

INNER JOIN seperti memasangkan pasangan tari yang keduanya tahu tari yang sama. Itu menggabungkan baris dari dua tabel berdasarkan kolom yang terkait antaranya.

Syntax INNER JOIN

SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;

Contoh INNER JOIN

Mari modifikasi skenario pesta rencana kami. Sekarang kita memiliki tamu dan preferensi kue mereka:

CREATE TABLE guests (
guest_id INTEGER PRIMARY KEY,
guest_name TEXT,
preferred_cake_id INTEGER
);

CREATE TABLE cakes (
cake_id INTEGER PRIMARY KEY,
cake_flavor TEXT
);

INSERT INTO guests (guest_name, preferred_cake_id) VALUES
('Alice', 1), ('Bob', 2), ('Charlie', 3), ('David', 1);
INSERT INTO cakes (cake_flavor) VALUES
('Chocolate'), ('Vanilla'), ('Strawberry');

Sekarang, gunakan INNER JOIN untuk mencocokkan tamu dengan kue kesukaan mereka:

SELECT guests.guest_name, cakes.cake_flavor
FROM guests INNER JOIN cakes ON guests.preferred_cake_id = cakes.cake_id;

Query ini akan menghasilkan:

guest_name cake_flavor
Alice Chocolate
Bob Vanilla
Charlie Strawberry
David Chocolate

Sempurna! Setiap tamu dicocokkan dengan rasa kue kesukaannya.

Kapan Menggunakan INNER JOIN

INNER JOIN adalah jenis JOIN yang paling umum digunakan. Gunakan mereka jika Anda ingin mengambil data yang cocok di kedua tabel.

OUTER JOIN: Tidak meninggalkan siapa pun

Apa itu OUTER JOIN?

OUTER JOIN seperti memastikan tidak ada yang merasa ditinggal di pesta. Itu mengembalikan semua baris dari satu atau kedua tabel, bahkan jika tidak ada cocokan di tabel lain.

Ada tiga jenis OUTER JOIN:

  1. LEFT OUTER JOIN
  2. RIGHT OUTER JOIN (tidak didukung di SQLite)
  3. FULL OUTER JOIN (tidak langsung didukung di SQLite)

Kita akan fokus pada LEFT OUTER JOIN, karena ini yang paling umum digunakan di SQLite.

Syntax LEFT OUTER JOIN

SELECT * FROM table1 LEFT OUTER JOIN table2 ON table1.column = table2.column;

Contoh LEFT OUTER JOIN

Buatkan tamu yang tidak memiliki preferensi kue:

INSERT INTO guests (guest_name, preferred_cake_id) VALUES ('Eve', NULL);

Sekarang, gunakan LEFT OUTER JOIN:

SELECT guests.guest_name, cakes.cake_flavor
FROM guests LEFT OUTER JOIN cakes ON guests.preferred_cake_id = cakes.cake_id;

Query ini akan menghasilkan:

guest_name cake_flavor
Alice Chocolate
Bob Vanilla
Charlie Strawberry
David Chocolate
Eve NULL

Lihat bagaimana Eve dimasukkan dalam hasil, meskipun dia tidak memiliki preferensi kue? Itu keajaiban LEFT OUTER JOIN!

Kapan Menggunakan OUTER JOIN

Gunakan OUTER JOIN jika Anda ingin mencakup semua rekord dari satu tabel, terlepas dari apakah mereka memiliki rekord yang cocok di tabel lain.

Kesimpulan

Dan begitu, teman-teman! Anda telah mengambil langkah pertama ke dalam dunia yang menakjubkan dari SQLite JOINS. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba query ini.

Berikut adalah tabel referensi cepat dari JOIN yang kita pelajari:

Jenis JOIN Use Case
CROSS JOIN Gabungkan setiap baris dengan setiap baris lainnya
INNER JOIN Cocokkan baris berdasarkan kondisi
LEFT JOIN Sertakan semua baris dari tabel kiri, cocok jika mungkin

Terus menggabungkan tabel, dan segera Anda akan menjadi pemandu pesta basis data! Selamat menanyakan!

Credits: Image by storyset