Penyataan INSERT MySQL: Penjelasan terperinci tentang perbezaan antara NILAI dan SET
Dalam operasi pangkalan data, dua sintaks sering digunakan semasa memasukkan data: INSERT INTO table VALUES...
dan INSERT INTO table SET
. Memahami perbezaan halus antara kedua-dua sintaks ini boleh meningkatkan kemahiran SQL anda dan mengoptimumkan interaksi pangkalan data.
Struktur tatabahasa dan kesetaraan
Sintaks kedua-dua pernyataan adalah seperti berikut:
INSERT INTO table (column1, column2, ...) VALUES (...)
INSERT INTO table SET column1 = value1, column2 = value2, ...
VALUES
mematuhi standard SQL, manakala sintaks SET
ialah sambungan khusus MySQL. Pada asasnya, kedua-dua pernyataan mencapai matlamat yang sama: masukkan baris baharu ke dalam jadual berdasarkan nilai yang ditentukan.
Impak prestasi
Bertentangan dengan kepercayaan popular, prestasi kedua-dua sintaks ini pada asasnya adalah sama. Dokumentasi MySQL mengesahkan kesetaraan ini, dengan menyatakan bahawa "kedua-dua pernyataan INSERT ... VALUES
dan INSERT ... SET
membentuk baris sisipan berdasarkan nilai yang dinyatakan secara eksplisit" dan mempunyai ciri prestasi yang serupa.
Arahan tambahan dalam dokumentasi MySQL
Dokumentasi MySQL menyediakan arahan lanjut:
Perbezaan antara borang sintaks SET
dan VALUES
ialah sintaks SET
membolehkan anda memasukkan nilai ke dalam jadual walaupun tiada nama lajur dinyatakan semasa memasukkan data daripada fail CSV atau lain-lain sumber data yang tidak memberikan nama lajur Ini sangat berguna ”
Contoh
Untuk menggambarkan kesetaraan mereka, pertimbangkan contoh berikut:
<code class="language-sql">INSERT INTO table (a, b, c) VALUES (1, 2, 3)</code>
<code class="language-sql">INSERT INTO table SET a = 1, b = 2, c = 3</code>
Kedua-dua pernyataan akan memasukkan baris data baharu ke dalam jadual "jadual", dengan nilai lajur a, b dan c masing-masing ialah 1, 2 dan 3.
Kesimpulan
Memahami perbezaan halus antara INSERT INTO table VALUES...
dan INSERT INTO table SET
dalam MySQL membolehkan pembangun menggunakan sintaks ini secara bergantian bergantung pada keutamaan atau kes penggunaan khusus mereka. Keputusan prestasi untuk kedua-dua struktur adalah sama, membolehkan pemasukan data yang cekap dan dioptimumkan.
Atas ialah kandungan terperinci MySQL INSERT: NILAI lwn. SET – Apakah Perbezaan Sebenar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!