Panduan Lengkap untuk "Insert Into Select" di MySQL untuk Pemula
Hai teman-teman, para ahli basis data masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia MySQL, khususnya fokus pada pernyataan "Insert Into Select" yang kuat. Jangan khawatir jika Anda baru belajar pemrograman – saya akan menjadi panduan temananda, menjelaskan segala sesuatu secara langkah demi langkah. Jadi, ambil secangkir kopi, dan mari kita masuk ke dalamnya!
Pernyataan MySQL Insert Into Select
Bayangkan Anda sedang mengatur rak bukunya. Anda punya seumpam buku baru ( mari kita sebut ini sebagai data sumber), dan Anda ingin menambahkannya ke rak yang sudah diatur (rak target kita). Itu sebenarnya apa yang dilakukan pernyataan "Insert Into Select" di MySQL – itu memungkinkan kita untuk menyalin data dari satu tabel dan memasukkannya ke tabel lain.
Penyintaks dasar tampak seperti ini:
INSERT INTO target_table (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM source_table
WHERE condition;
Bongkarlah ini:
-
INSERT INTO target_table
: Ini adalah tempat kita akan memasukkan data baru. -
(column1, column2, ...)
: Ini adalah kolom di tabel target kita yang akan kita isi. -
SELECT ...
: Ini adalah tempat kita mengambil data. -
FROM source_table
: Ini adalah tabel yang kita salin. -
WHERE condition
: Ini opsional, tapi ia memungkinkan kita untuk menyaring apa yang kita salin.
Memasukkan Data Dari Satu Tabel ke Tabel Lain
Sekarang, mari kita meluangkan tangan dengan beberapa kode nyata! Misal kita punya dua tabel: old_books
dan new_arrivals
. Kita ingin memindahkan semua buku fiksi fantasi dari old_books
ke new_arrivals
.
INSERT INTO new_arrivals (title, author, genre)
SELECT title, author, genre
FROM old_books
WHERE genre = 'Fantasy';
Dalam contoh ini:
- Kita memasukkan ke
new_arrivals
, menentukan kolom yang akan kita isi. - Kita memilih kolom yang sama dari
old_books
. - Kita hanya memilih buku-buku dimana genre nya 'Fantasy'.
Query ini akan menyalin semua buku fiksi fantasi dari old_books
ke new_arrivals
. Itu seperti secara magis menteleportkan semua buku fiksi fantasi Anda ke rak baru!
Memasukkan Baris dengan LIMIT
kadang-kadang, kita tidak ingin memindahkan semua sekaligus. Mungkin kita sedang mencoba hal-hal, atau kita hanya punya ruang untuk beberapa buku. Itu di mana LIMIT
sangat berguna.
INSERT INTO bestsellers (title, author, sales)
SELECT title, author, sales
FROM all_books
WHERE sales > 1000000
ORDER BY sales DESC
LIMIT 10;
Query ini:
- Memasukkan ke tabel
bestsellers
. - Memilih dari
all_books
dimana penjualan lebih dari satu juta. - Mengurutkan mereka menurut penjualan dalam urutan turun.
- Hanya mengambil 10 teratas.
Itu seperti memilih keju buatan – hanya 10 penjualan terbaik yang mencapai rak khusus kita!
Memasukkan Semua Kolom Dari Satu Tabel ke Tabel Lain
kadang-kadang, kita ingin menyalin segala sesuatu – setiap detail. Kita juga bisa melakukan itu! mari kita katakan kita sedang mengarsipkan seluruh data penjualan tahun 2022:
INSERT INTO sales_archive_2022
SELECT *
FROM current_sales
WHERE YEAR(sale_date) = 2022;
Apa yang terjadi adalah:
- Kita tidak menentukan kolom dalam bagian
INSERT INTO
. - Kita menggunakan
SELECT *
untuk memilih semua kolom. - Kita menyaring hanya untuk mencakup penjualan tahun 2022.
Itu seperti mengambil snapshot dari seluruh rak buku Anda tahun 2022 dan merekreatinya tepat di lokasi baru.
INSERT INTO SELECT Menggunakan Program Klien
Sekarang, mari kita bicarakan bagaimana kita bisa melakukan ini di luar MySQL, menggunakan program klien. Saya akan memberikan contoh menggunakan Python, yang adalah bahasa populer untuk operasi basis data.
import mysql.connector
# Menghubungkan ke basis data
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
mycursor = mydb.cursor()
# Query INSERT INTO SELECT kita
sql = """
INSERT INTO new_arrivals (title, author, genre)
SELECT title, author, genre
FROM old_books
WHERE genre = 'Fantasy'
"""
# Menjalankan query
mycursor.execute(sql)
# Menyimpan perubahan
mydb.commit()
print(mycursor.rowcount, "rekord dimasukkan.")
Skrip ini:
- Menghubungkan ke basis data MySQL Anda.
- Membuat objek kursor untuk berinteraksi dengan basis data.
- Menentukan query
INSERT INTO SELECT
. - Menjalankan query.
- Menyimpan perubahan (sangat penting!).
- Menampilkan berapa banyak rekord yang dimasukkan.
Itu seperti memiliki asisten robot yang dapat mengatur rak bukunya untuk Anda!
Kesimpulan
Dan itu adalah, teman-teman! Kita telah berpergian melalui negeri "Insert Into Select" di MySQL. Dari konsep dasar hingga aplikasi praktis, kita telah meliput semua. Ingat, latihan membuat sempurna, jadi jangan khawatir untuk mencoba query ini.
Berikut adalah tabel referensi ringkas dari metode yang kita diskusikan:
Metode | Deskripsi | Contoh |
---|---|---|
Basic Insert Into Select | Menyalin data dari satu tabel ke tabel lain | INSERT INTO target SELECT * FROM source |
Memasukkan Kolom tertentu | Menyalin hanya beberapa kolom | INSERT INTO target (col1, col2) SELECT col1, col2 FROM source |
Memasukkan dengan Kondisi | Menyalin data yang memenuhi syarat tertentu | INSERT INTO target SELECT * FROM source WHERE condition |
Memasukkan dengan LIMIT | Menyalin jumlah baris terbatas | INSERT INTO target SELECT * FROM source LIMIT 10 |
Memasukkan Semua Kolom | Menyalin semua kolom tanpa menentukan | INSERT INTO target SELECT * FROM source |
Menggunakan Program Klien | Menjalankan Insert Into Select dari luar MySQL | Lihat contoh Python di atas |
Selamat mencari dan mayarak Anda selalu teratur dan efisien!
Credits: Image by storyset