Press ESC to close

Cara Merge Data di SQL

Sebelum membahas cara merge data di SQL, kita perlu paham dulu apa itu merge. Merge adalah proses menggabungkan data dari dua sumber atau lebih ke dalam satu tabel tujuan, dengan mempertimbangkan kondisi tertentu.

Biasanya, merge digunakan untuk meng-update data yang sudah ada, menambahkan data baru, atau menghapus data yang tidak diperlukan. SQL menyediakan perintah MERGE, yang sangat berguna untuk menyatukan operasi INSERT, UPDATE, dan DELETE dalam satu perintah.

Memiliki Sertifikasi Data Analyst membuktikan bahwa seseorang tidak hanya mampu membaca data, tetapi juga bisa mengolah dan menyajikannya menjadi insight yang bernilai.

Manfaat Menggunakan MERGE di SQL

Menggunakan perintah MERGE memberikan banyak keuntungan dibandingkan menggunakan perintah INSERT atau UPDATE secara terpisah.

Salah satu manfaat utamanya adalah efisiensi dalam pengolahan data, karena kita bisa menghemat waktu dan sumber daya sistem.

Selain itu, query menjadi lebih mudah dibaca dan dikelola karena tidak perlu membuat logika IF EXISTS atau multiple statement.

Persiapan Sebelum Melakukan Merge Data

Sebelum masuk ke bagian teknis cara merge data di SQL, penting untuk menyiapkan struktur tabel dan memastikan data yang akan digabungkan memiliki relasi yang jelas.

Biasanya, kolom seperti ID atau primary key digunakan sebagai acuan untuk mencocokkan data antar tabel. Pastikan juga data yang akan digabungkan memiliki tipe data dan format yang sesuai agar tidak menimbulkan error saat proses merge berlangsung.

Contoh Struktur Tabel

Untuk memahami cara merge data di SQL dengan lebih mudah, mari kita lihat contoh dua tabel: produk dan produk_baru. Tabel produk adalah tabel utama, sedangkan produk_baru adalah data terbaru yang ingin kita gabungkan.

CREATE TABLE produk (

  produk_id INT PRIMARY KEY,

  nama VARCHAR(100),

  harga DECIMAL(10,2),

  stok INT

);

CREATE TABLE produk_baru (

  produk_id INT,

  nama VARCHAR(100),

  harga DECIMAL(10,2),

  stok INT

);

Cara Dasar Merge Data di SQL

Salah satu cara merge data di SQL yang paling umum adalah menggunakan perintah MERGE. Berikut contoh query MERGE sederhana:

MERGE INTO produk AS target

USING produk_baru AS source

  ON target.produk_id = source.produk_id

WHEN MATCHED THEN

  UPDATE SET

    nama = source.nama,

    harga = source.harga,

    stok = source.stok

WHEN NOT MATCHED THEN

  INSERT (produk_id, nama, harga, stok)

  VALUES (source.produk_id, source.nama, source.harga, source.stok);

Dengan query ini, SQL akan mengecek apakah produk_id dari tabel produk_baru sudah ada di produk. Jika ada, maka data akan diperbarui. Jika tidak, maka data akan ditambahkan.

Menambahkan Logika DELETE dalam MERGE

Kadang kita juga ingin menghapus data yang sudah tidak relevan. SQL Server dan Oracle mendukung klausa WHEN NOT MATCHED BY SOURCE THEN DELETE, yang berarti data di tabel target akan dihapus jika tidak ditemukan di sumber.

MERGE INTO produk AS target

USING produk_baru AS source

  ON target.produk_id = source.produk_id

WHEN MATCHED THEN

  UPDATE SET

    nama = source.nama,

    harga = source.harga,

    stok = source.stok

WHEN NOT MATCHED THEN

  INSERT (produk_id, nama, harga, stok)

  VALUES (source.produk_id, source.nama, source.harga, source.stok)

WHEN NOT MATCHED BY SOURCE THEN

  DELETE;

Menambahkan Kondisi Khusus Saat Merge

Dalam beberapa kasus, kita mungkin ingin menambahkan kondisi tertentu untuk memperbarui data. Misalnya, kita hanya ingin meng-update harga jika harga baru berbeda dari harga lama.

WHEN MATCHED AND target.harga <> source.harga THEN

  UPDATE SET harga = source.harga;

Kondisi ini memungkinkan kita untuk lebih selektif dalam mengatur data yang diperbarui saat melakukan merge.

Studi Kasus Merge Data di Aplikasi Inventory

Misalnya, kita memiliki sistem inventory di mana data barang diperbarui setiap hari berdasarkan laporan dari tim gudang. Data ini disimpan di tabel sementara seperti produk_baru, dan perlu digabungkan ke tabel utama produk. Dengan menggunakan cara merge data di SQL, kita bisa memperbarui data, menambahkan item baru, atau menghapus item yang sudah tidak ada.

MERGE INTO produk AS target

USING produk_baru AS source

  ON target.produk_id = source.produk_id

WHEN MATCHED AND source.stok = 0 THEN

  DELETE

WHEN MATCHED THEN

  UPDATE SET

    nama = source.nama,

    harga = source.harga,

    stok = source.stok

WHEN NOT MATCHED THEN

  INSERT (produk_id, nama, harga, stok)

  VALUES (source.produk_id, source.nama, source.harga, source.stok);

Dengan satu query ini, semua operasi penggabungan data dapat dilakukan secara efisien dan otomatis.

Kesimpulan

Melalui artikel ini, kita telah membahas cara merge data di SQL mulai dari konsep dasar, manfaat, hingga implementasi praktis dengan syntax MERGE.

Merge sangat berguna untuk menyederhanakan proses update, insert, dan delete secara bersamaan, serta menjaga integritas data dengan cara yang efisien. Jangan lupa untuk selalu menyesuaikan syntax dengan jenis database yang digunakan, dan lakukan pengujian terlebih dahulu sebelum menjalankan query merge dalam skala besar.

Leave a Reply

Your email address will not be published. Required fields are marked *

Sertifikasi Kompetensi Teknologi Pilihan
This error message is only visible to WordPress admins

Error: No feed with the ID 1 found.

Please go to the Instagram Feed settings page to create a feed.

@Katen on Instagram
This error message is only visible to WordPress admins

Error: No feed with the ID 1 found.

Please go to the Instagram Feed settings page to create a feed.