Node.js - MySQL Join: Panduan untuk Pemula

Halo, para pemrogram yang sedang belajar! Hari ini, kita akan memulai perjalanan menarik ke dunia Node.js dan MySQL joins. Jangan khawatir jika Anda baru belajar programming – saya akan menjadi panduan Anda, menjelaskan segala sesuatunya langkah demi langkah. Pada akhir tutorial ini, Anda akan dapat menggabungkan tabel seperti seorang ahli!

Node.js - MySQL Join

Mengenali dasar-dasar

Sebelum kita masuk ke dunia joins, mari kita siapkan panggung dengan beberapa konsep dasar. Bayangkan Anda mengatur pameran klub sekolah. Anda memiliki dua daftar: satu untuk siswa dan lainnya untuk klub. Menggabungkan daftar ini akan membantu Anda melihat siswa mana yang masuk ke dalam klub mana. Itu sebenarnya apa yang kita lakukan dengan database!

Menyiapkan lingkungan kerja

Pertama-tama, mari pastikan kita memiliki segala sesuatu yang diperlukan:

  1. Install Node.js dari situs resmi.
  2. Install MySQL dan buat database.
  3. Install modul MySQL untuk Node.js dengan menjalankan perintah:
npm install mysql

Sekarang, mari kita buat koneksi ke database kami:

const mysql = require('mysql');

const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'school_club_fair'
});

connection.connect((err) => {
if (err) throw err;
console.log('Terhubung ke database!');
});

Kode ini membuat koneksi kami ke database. Ganti 'your_username' dan 'your_password' dengan kredensial MySQL Anda.

Tabel Members

mari buat tabel pertama kita: Members. Ini akan mewakili siswa-siswa kita.

CREATE TABLE Members (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
);

INSERT INTO Members (name, email) VALUES
('Alice', '[email protected]'),
('Bob', '[email protected]'),
('Charlie', '[email protected]');

Untuk membuat tabel ini di Node.js:

connection.query(`
CREATE TABLE Members (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
)
`, (err) => {
if (err) throw err;
console.log('Tabel Members dibuat!');
});

const members = [
['Alice', '[email protected]'],
['Bob', '[email protected]'],
['Charlie', '[email protected]']
];

connection.query('INSERT INTO Members (name, email) VALUES ?', [members], (err) => {
if (err) throw err;
console.log('Members ditambahkan!');
});

Tabel Committees

Sekarang, mari buat tabel Committees kita, yang mewakili klub-klub:

CREATE TABLE Committees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
member_id INT,
FOREIGN KEY (member_id) REFERENCES Members(id)
);

INSERT INTO Committees (name, member_id) VALUES
('Chess Club', 1),
('Debate Team', 2),
('Drama Club', 3),
('Chess Club', 2);

Di Node.js:

connection.query(`
CREATE TABLE Committees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
member_id INT,
FOREIGN KEY (member_id) REFERENCES Members(id)
)
`, (err) => {
if (err) throw err;
console.log('Tabel Committees dibuat!');
});

const committees = [
['Chess Club', 1],
['Debate Team', 2],
['Drama Club', 3],
['Chess Club', 2]
];

connection.query('INSERT INTO Committees (name, member_id) VALUES ?', [committees], (err) => {
if (err) throw err;
console.log('Committees ditambahkan!');
});

Sekarang kita memiliki tabel-tabel yang siap, mari kita jelajahi jenis-jenis join yang berbeda!

MySQL INNER JOIN

INNER JOIN mengembalikan rekord yang memiliki nilai yang cocok di kedua tabel. Itu seperti mencari siswa yang pasti ada di sebuah klub.

connection.query(`
SELECT Members.name, Committees.name AS committee
FROM Members
INNER JOIN Committees ON Members.id = Committees.member_id
`, (err, results) => {
if (err) throw err;
console.table(results);
});

Query ini akan menunjukkan semua anggota dan komite yang mereka ikuti. Jika seorang anggota tidak ada di mana-mana komite, mereka tidak akan muncul dalam hasil.

MySQL LEFT JOIN

LEFT JOIN mengembalikan semua rekord dari tabel kiri (Members), dan rekord yang cocok dari tabel kanan (Committees). Itu seperti mencantumkan semua siswa, menunjukkan komite mereka jika mereka ada di salah satu.

connection.query(`
SELECT Members.name, Committees.name AS committee
FROM Members
LEFT JOIN Committees ON Members.id = Committees.member_id
`, (err, results) => {
if (err) throw err;
console.table(results);
});

Ini akan menunjukkan semua anggota, bahkan jika mereka tidak ada di komite manapun (komite mereka akan NULL).

MySQL RIGHT JOIN

RIGHT JOIN mengembalikan semua rekord dari tabel kanan (Committees), dan rekord yang cocok dari tabel kiri (Members). Itu seperti mencantumkan semua komite, menunjukkan anggota jika ada.

connection.query(`
SELECT Members.name, Committees.name AS committee
FROM Members
RIGHT JOIN Committees ON Members.id = Committees.member_id
`, (err, results) => {
if (err) throw err;
console.table(results);
});

Ini akan menunjukkan semua komite, bahkan jika mereka tidak memiliki anggota (nama anggota akan NULL).

Perbandingan jenis JOIN

Berikut adalah tabel ringkasan jenis-jenis JOIN yang berbeda:

Jenis JOIN Deskripsi Kasus penggunaan
INNER JOIN Mengembalikan rekord yang cocok dari kedua tabel Ketika Anda ingin data yang ada di kedua tabel
LEFT JOIN Mengembalikan semua dari tabel kiri, cocok dari tabel kanan Ketika Anda ingin semua rekord dari tabel pertama, terlepas dari kesesuaian
RIGHT JOIN Mengembalikan semua dari tabel kanan, cocok dari tabel kiri Ketika Anda ingin semua rekord dari tabel kedua, terlepas dari kesesuaian

Kesimpulan

Selamat! Anda telah belajar tentang MySQL joins di Node.js. Ingat, joins adalah seperti kerja detektif – Anda menghubungkan informasi dari sumber yang berbeda untuk mendapatkan gambaran utuh. Latih dengan berbagai jenis scenario, dan segera Anda akan menjadi ahli dalam hubungan database!

Terus coding, tetap bersemangat, dan jangan lupa untuk bersenang-senang dalam perjalanan. Selamat bergabung!

Credits: Image by storyset