Last Updated on September 22, 2023 by
SQL (Structured Query Language) adalah bahasa pemrograman yang digunakan untuk mengelola dan mengambil data dari database. Salah satu perintah SQL yang sering digunakan adalah “INSERT INTO SELECT,” yang memungkinkan kalian untuk menyalin data dari satu tabel dan memasukkannya ke dalam tabel lain. Dalam tutorial ini, kita akan menjelaskan cara menggunakan perintah SQL INSERT INTO SELECT beserta contohnya. Yuk simak!
Table of Contents
Apa Itu Perintah SQL INSERT INTO SELECT?
Perintah SQL “INSERT INTO SELECT” digunakan untuk menyalin data dari satu tabel ke dalam tabel lain. Ini sangat berguna ketika kalian perlu menggandakan data dari satu tabel ke dalam tabel lain atau saat kalian ingin menggabungkan data dari beberapa tabel ke dalam satu tabel. Perintah ini mengambil data dari tabel sumber (disebut juga sebagai “tabel asal”) dan memasukkannya ke dalam tabel target.
Images by Freepik
Sintaksis Perintah SQL INSERT INTO SELECT
Berikut adalah sintaksis umum dari perintah SQL “INSERT INTO SELECT”
INSERT INTO target_table (column1, column2, ...) SELECT column1, column2, ... FROM source_table WHERE condition;
- target_table: Nama tabel yang akan menjadi tujuan untuk data yang akan dimasukkan.
- column1, column2, …: Kolom-kolom dalam tabel tujuan yang akan diisi dengan data.
- source_table: Nama tabel sumber dari mana data akan diambil.
- condition (opsional): Kondisi yang digunakan untuk memfilter data yang akan disalin.
Contoh Penggunaan SQL INSERT INTO SELECT
SQL INSERT INTO SELECT adalah perintah yang kuat dalam mengelola data dalam database. Yuk kita pahami bagaimana perintah ini dapat digunakan dalam situasi yang berbeda.
- Menggandakan Data ke Tabel Baru
Misalkan kalian memiliki tabel “employees” yang berisi data karyawan dan kalian ingin membuat salinan semua data karyawan ke dalam tabel “employees_archive” sebagai tindakan pencadangan. Kalian dapat menggunakan perintah SQL INSERT INTO SELECT untuk melakukan ini.
INSERT INTO employees_archive (employee_id, first_name, last_name, hire_date) SELECT employee_id, first_name, last_name, hire_date FROM employees;
Dalam contoh ini kita menyalin semua kolom data karyawan (employee_id, first_name, last_name, dan hire_date) dari tabel “employees” ke dalam tabel “employees_archive.” Ini adalah cara efektif untuk membuat cadangan data kalian secara berkala.
- Menggabungkan Data dari Beberapa Tabel
Kadang-kadang kalian mungkin memiliki data yang tersebar di beberapa tabel dan ingin menggabungkannya ke dalam satu tabel untuk analisis lebih lanjut. Misalnya kalian memiliki tabel “sales_2021” dan “sales_2022” yang berisi data penjualan untuk tahun yang berbeda. Kalian ingin menggabungkan data penjualan dari kedua tabel ini ke dalam satu tabel “total_sales” untuk analisis lintas tahun. Yuk lihat contohnya dibawah ini.
INSERT INTO total_sales (sales_date, product_id, amount) SELECT sales_date, product_id, amount FROM sales_2021 UNION ALL SELECT sales_date, product_id, amount FROM sales_2022;
Dalam contoh ini kita menggunakan perintah SQL UNION ALL untuk menggabungkan data dari kedua tabel “sales_2021” dan “sales_2022” berdasarkan kolom yang sesuai.
- Menyalin Data dengan Kondisi
Kalian dapat menggunakan SQL INSERT INTO SELECT dengan klausa WHERE untuk menyalin data yang memenuhi kondisi tertentu. Misalkan kalian hanya ingin menyalin pelanggan yang memiliki total pembelian di atas $1,000 ke dalam tabel “loyal_customers”. Yuk lihat contohnya dibawah ini.
INSERT INTO loyal_customers (customer_id, customer_name, total_purchase) SELECT customer_id, customer_name, total_purchase FROM customers WHERE total_purchase > 1000;
Dalam contoh ini hanya data pelanggan dengan total pembelian di atas $1,000 yang akan disalin ke dalam tabel “loyal_customers.”
- Menyalin Data dengan Penggantian Nilai
Kalian dapat menggunakan SQL INSERT INTO SELECT dengan mengubah nilai tertentu saat menyalin data. Misalnya kalian ingin menyalin data pelanggan ke tabel “new_customers,” tetapi kalian ingin mengganti nilai di kolom “status” dari “Pending” menjadi “Active”.
INSERT INTO new_customers (customer_id, customer_name, email, status) SELECT customer_id, customer_name, email, 'Active' FROM customers WHERE status = 'Pending';
Dalam contoh ini, kita mengganti nilai kolom “status” selama proses penyalinan data.
- Penggunaan Agregasi Data
Dalam beberapa situasi kalian mungkin ingin menggabungkan data dari beberapa baris menjadi satu baris saat menyalinnya. Misalnya kalian ingin membuat laporan total penjualan per produk dari tabel “sales”.
INSERT INTO product_sales_summary (product_id, total_sales) SELECT product_id, SUM(amount) FROM sales GROUP BY product_id;
Dalam contoh ini kita menggabungkan data penjualan yang memiliki produk yang sama dan menghitung total penjualan untuk masing-masing produk.
Hal yang Perlu di Perhatikan Dalam SQL INSERT INTO SELECT
Ketika menggunakan perintah SQL INSERT INTO SELECT, ada beberapa hal yang perlu diperhatikan untuk memastikan bahwa operasi penyalinan data berjalan dengan baik dan sesuai dengan kebutuhan kalian, yuk simak selengkapnya dibawah ini!
Kesesuaian Kolom
Pastikan kolom yang kalian pilih dalam perintah SELECT sesuai dengan kolom yang ada dalam tabel yang kalian masukkan dalam perintah INSERT INTO. Pastikan urutan kolom juga benar. Setiap kolom dalam perintah SELECT harus memiliki tipe data yang cocok dengan kolom yang sesuai dalam tabel tujuan.
Images by Freepik
Kemungkinan Duplikasi
Perhatikan kemungkinan duplikasi data jika tidak ada kendala unik yang diterapkan pada tabel tujuan. Jika kalian tidak ingin menduplikasi data, pastikan untuk menerapkan kendala atau gunakan perintah INSERT INTO … ON DUPLICATE KEY UPDATE (untuk MySQL) atau perintah serupa yang sesuai dengan basis data yang kalian gunakan.
Kondisi WHERE (Opsional)
Jika kalian menggunakan klausa WHERE dalam perintah SELECT, pastikan kondisi tersebut sesuai dengan data yang ingin kalian salin. Kalian juga dapat menggunakan kondisi ini untuk memfilter data sebelum menyalinnya.
Grup dan Agregasi (Opsional)
Jika kalian menggunakan agregasi atau pengelompokan data dalam perintah SELECT, pastikan hasilnya sesuai dengan yang diharapkan. Misalnya pastikan pengelompokan data dengan menggunakan GROUP BY sesuai dengan kebutuhan analisis kalian.
Kemungkinan Perubahan Data
Jika kalian mengubah data selama operasi penyalinan (misalnya mengganti nilai kolom), pastikan perubahan tersebut sesuai dengan tujuan kalian dan tidak akan menyebabkan kesalahan atau kerusakan data.
Indeks dan Kinerja
Perhatikan kinerja operasi penyalinan data, terutama jika tabel memiliki banyak data. Pastikan tabel memiliki indeks yang sesuai untuk kolom yang digunakan dalam perintah SELECT dan pastikan operasi tersebut tidak memengaruhi kinerja basis data secara negatif.
Transaksi (Opsional)
Jika kalian menggunakan perintah ini dalam transaksi yang lebih kompleks, pastikan untuk mengelola transaksi dengan benar termasuk penggunaan COMMIT atau ROLLBACK jika diperlukan.
Kendali Kesalahan
Siapkan penanganan kesalahan yang memadai untuk mengatasi situasi di mana operasi penyalinan gagal. Ini bisa mencakup penggunaan blok TRY…CATCH dalam SQL Server atau penanganan kesalahan lainnya sesuai dengan basis data yang kalian gunakan.
Pembaruan Statistik
Setelah operasi penyalinan selesai pertimbangkan untuk memperbarui statistik tabel untuk memastikan query berjalan dengan baik pada data yang baru saja disalin.
Backup Data
Selalu disarankan untuk membuat cadangan data sebelum menjalankan operasi penyalinan besar-besaran untuk menghindari kehilangan data yang tidak diinginkan.
Kesimpulan
SQL (Structured Query Language) adalah bahasa pemrograman yang digunakan untuk mengelola dan mengambil data dari database. Salah satu perintah SQL yang berguna adalah “INSERT INTO SELECT,” yang memungkinkan kalian menyalin data dari satu tabel ke tabel lain.
Perintah SQL “INSERT INTO SELECT” digunakan untuk menyalin data dari satu tabel ke tabel lain. Ini bermanfaat untuk menggandakan data, menggabungkan data dari beberapa tabel atau menyalin data dengan kondisi atau perubahan tertentu.
Beberapa faktor yang perlu diperhatikan saat menggunakan perintah ini yaitu kesesuaian kolom, kemungkinan duplikasi data, kondisi WHERE (opsional), pengelompokan dan agregasi data (opsional), perubahan data, indeks dan kinerja, penggunaan transaksi (opsional), kendali kesalahan, pembaruan statistik dan pentingnya membuat cadangan data sebelum operasi penyalinan.
Temukan lebih banyak artikel seri belajar SQL maupun bahasa pemrograman lainnya hanya di CODEKEY. Klik https://codekey.id/ sekarang juga untuk langsung belajar gratis dan tak ketinggalan tutorial pemrograman menarik lainnya. Sampai bertemu lagi!
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.