Dalam pangkalan data hubungan, INSERT INTO SELECT ialah pernyataan SQL biasa yang digunakan untuk memasukkan hasil pertanyaan ke dalam jadual lain. Struktur sintaks ini sangat berguna untuk menyalin data dengan mudah dari satu jadual ke jadual lain, atau untuk menapis dan memasukkan data berdasarkan beberapa syarat.
Struktur sintaks INSERT INTO SELECT adalah seperti berikut:
INSERT INTO 表名 (列1, 列2, 列3, ...) SELECT 列1, 列2, 列3, ... FROM 来源表 WHERE 条件;
Antaranya, klausa INSERT INTO menentukan jadual sasaran dan lajur sasaran untuk memasukkan data ke dalamnya. Klausa SELECT mentakrifkan jadual untuk memilih data daripada dan menentukan lajur yang hendak dimasukkan ke dalam jadual sasaran. Anda boleh memilih lajur yang sesuai mengikut keperluan supaya semua lajur tidak perlu dimasukkan ke dalam jadual sasaran.
Jadual sumber dalam klausa SELECT merujuk kepada jadual dari mana data akan dipilih. Ia boleh menjadi nama jadual tertentu atau set hasil pertanyaan. Apabila menggunakan INSERT INTO SELECT, anda boleh menyarangkan berbilang pernyataan pertanyaan seperti yang diperlukan untuk memenuhi keperluan pemindahan data dan penapisan.
Klausa WHERE adalah pilihan dan digunakan untuk menapis data yang memenuhi syarat tertentu dalam jadual sumber. Sebagai contoh, anda boleh menggunakan klausa WHERE untuk mengehadkan sisipan hanya baris yang memenuhi syarat tertentu atau menggunakan operator lain (seperti IN, LIKE, dll.) untuk menapis data selanjutnya.
Berikut ialah beberapa contoh penggunaan INSERT INTO SELECT:
Operasi sisip mudah:
Andaikan terdapat dua jadual A dan B. Jadual A mengandungi id lajur, nama dan umur, dan jadual B mengandungi id dan alamat lajur . Untuk memasukkan data daripada jadual A ke dalam lajur yang sepadan dalam jadual B, anda boleh menggunakan pernyataan berikut:
INSERT INTO B (id, address) SELECT id, name FROM A;
Dengan cara ini, nilai lajur id dalam jadual A akan dimasukkan ke dalam lajur id jadual B, dan nama dalam jadual A Nilai lajur akan dimasukkan ke dalam lajur alamat jadual B. Lajur lain akan diabaikan.
Gunakan klausa WHERE untuk menapis:
Jika anda hanya mahu memasukkan data yang memenuhi syarat tertentu, anda boleh menambah klausa WHERE dalam pernyataan SELECT. Sebagai contoh, untuk hanya memasukkan rekod yang umurnya melebihi 18 dalam jadual A ke dalam jadual B, anda boleh menggunakan pernyataan berikut:
INSERT INTO B (id, address) SELECT id, name FROM A WHERE age > 18;
Dengan cara ini, hanya baris yang memenuhi syarat akan dimasukkan ke dalam jadual B.
Memasukkan menggunakan subqueries:
Dalam klausa SELECT, anda juga boleh menggunakan subqueries untuk memilih data. Contohnya, untuk memasukkan baris yang memenuhi syarat ke dalam jadual lain, anda boleh menggunakan pernyataan berikut:
INSERT INTO C (id, address) SELECT id, address FROM B WHERE id IN (SELECT id FROM A WHERE age > 18);
Dengan cara ini, mula-mula pilih id yang memenuhi syarat daripada jadual A, dan kemudian pilih rekod yang sepadan daripada jadual B berdasarkan pada id ini, dan Masukkan ke dalam jadual C.
Ringkasan
INSERT INTO SELECT ialah pernyataan SQL yang berkuasa yang boleh menyalin data dengan mudah dari satu jadual ke jadual lain, atau menapis dan memasukkan data berdasarkan beberapa syarat. Fleksibilitinya menjadikannya sangat berguna dalam operasi pangkalan data dunia sebenar.
Atas ialah kandungan terperinci Penggunaan sisipan ke dalam pilih. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!