MySQL - Insert Into Select: Panduan Komprehensif untuk Pemula

Hai teman-teman, para ahli basis data masa depan! Hari ini, kita akan memulai sebuah 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 ramah Anda, menjelaskan segala sesuatunya langkah demi langkah. Jadi, ambillah secangkir kopi, dan mari kita masuk ke dalamnya!

MySQL - Insert Into Select

Pernyataan MySQL Insert Into Select

Bayangkan Anda sedang mengatur rak bukunya. Anda punya sesampar buku baru ( mari kita sebut ini 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.

Syntax dasar tampak seperti ini:

INSERT INTO target_table (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM source_table
WHERE condition;

mari kitauraikan ini:

  • INSERT INTO target_table: Ini tempat kita memasukkan data baru.
  • (column1, column2, ...): Ini kolom-kolom di tabel target kita yang akan kita isi.
  • SELECT ...: Ini tempat kita mengambil data.
  • FROM source_table: Ini tabel yang kita salin.
  • WHERE condition: Ini opsional, tetapi memungkinkan kita menyaring apa yang kita salin.

Menyisipkan Data Dari Tabel ke Tabel Lain

Sekarang, mari kita melihat kode nyata! Anggap kita memiliki dua tabel: old_books dan new_arrivals. Kita ingin memindahkan semua buku fiksi 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-kolom yang akan kita isi.
  • Kita memilih kolom yang sama dari old_books.
  • Kita hanya memilih buku-buku di mana genre-nya 'Fantasy'.

Kueri ini akan menyalin semua buku fiksi dari old_books ke new_arrivals. Itu seperti secara magis mengirimkan semua buku fiksi Anda ke rak baru!

Menyisipkan 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 saat LIMIT berguna.

INSERT INTO bestsellers (title, author, sales)
SELECT title, author, sales
FROM all_books
WHERE sales > 1000000
ORDER BY sales DESC
LIMIT 10;

Kueri ini:

  • Memasukkan ke tabel bestsellers.
  • Memilih dari all_books di mana penjualan lebih dari satu juta.
  • Mengurutkan mereka menurut penjualan dalam urutan turun.
  • Hanya mengambil 10 teratas.

Itu seperti memilih keju buatan - hanya 10 penjual terbaik yang masuk ke rak khusus kita!

Menyisipkan Semua Kolom Dari 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 2022:

INSERT INTO sales_archive_2022
SELECT *
FROM current_sales
WHERE YEAR(sale_date) = 2022;

Apa yang terjadi:

  • Kita tidak menentukan kolom di bagian INSERT INTO.
  • Kita menggunakan SELECT * untuk memilih semua kolom.
  • Kita menyaring hanya penjualan dari tahun 2022.

Itu seperti mengambil foto rak buku Anda seluruh 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

# Menyambungkan ke basis data
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)

mycursor = mydb.cursor()

# Kueri INSERT INTO SELECT kita
sql = """
INSERT INTO new_arrivals (title, author, genre)
SELECT title, author, genre
FROM old_books
WHERE genre = 'Fantasy'
"""

# Menjalankan kueri
mycursor.execute(sql)

# Menyimpan perubahan
mydb.commit()

print(mycursor.rowcount, "rekor disisipkan.")

Skrip ini:

  1. Menyambungkan ke basis data MySQL Anda.
  2. Membuat objek cursor untuk berinteraksi dengan basis data.
  3. Mendefinisikan kueri INSERT INTO SELECT kita.
  4. Menjalankan kueri.
  5. Menyimpan perubahan (sangat penting!).
  6. Mencetak berapa banyak rekord yang disisipkan.

Itu seperti memiliki asisten robot yang dapat mengatur rak bukunya untuk Anda!

Kesimpulan

Dan begitu, teman-teman! Kita telah berpergian melalui negeri "Insert Into Select" di MySQL. Dari konsep dasar hingga aplikasi praktis, kita telah meliputi semuanya. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba kueri ini.

Berikut adalah tabel rujukan singkat metode yang kita diskusikan:

Metode Deskripsi Contoh
Insert Into Select Dasar Menyalin data dari satu tabel ke tabel lain INSERT INTO target SELECT * FROM source
Menyisipkan Kolom Tertentu Menyalin hanya kolom tertentu INSERT INTO target (col1, col2) SELECT col1, col2 FROM source
Menyisipkan Dengan Kondisi Menyalin data yang memenuhi syarat tertentu INSERT INTO target SELECT * FROM source WHERE condition
Menyisipkan Dengan LIMIT Menyalin jumlah baris terbatas INSERT INTO target SELECT * FROM source LIMIT 10
Menyisipkan Semua Kolom Menyalin semua kolom tanpa penentuan INSERT INTO target SELECT * FROM source
Menggunakan Program Klien Menjalankan Insert Into Select dari luar MySQL Lihat contoh Python di atas

Selamat menanyakan, dan semoga basis data Anda selalu teratur dan efisien!

Credits: Image by storyset