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!
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:
- CROSS JOIN
- INNER JOIN
- 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:
- LEFT OUTER JOIN
- RIGHT OUTER JOIN (tidak didukung di SQLite)
- 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