Rumah > pangkalan data > tutorial mysql > Analisis ringkas kaedah pemadaman MySQL: perbezaan antara padam, potong, dan lepas

Analisis ringkas kaedah pemadaman MySQL: perbezaan antara padam, potong, dan lepas

青灯夜游
Lepaskan: 2022-06-08 13:49:18
ke hadapan
2495 orang telah melayarinya

Analisis ringkas kaedah pemadaman MySQL: perbezaan antara padam, potong, dan lepas

Dalam MySQL, terdapat tiga kaedah pemadaman: padam, potong dan lepas, dan senario penggunaan dan penggunaan ketiga-tiganya adalah berbeza sama sekali secara terperinci.

1.delete

detele boleh digunakan untuk memadam beberapa atau semua data dalam jadual adalah seperti berikut:

delete from table_name [where...] [order by...] [limit...]
Salin selepas log masuk

PS: Perintah dalam [] adalah pilihan dan boleh ditinggalkan.

Jika kita ingin memadamkan 3 pelajar terbaik dengan markah matematik tertinggi dalam jadual pelajar, kita boleh menggunakan SQL berikut:

delete from student order by math desc limit 3;
Salin selepas log masuk

1.1 padam pelaksanaan prinsip

Dalam enjin InnoDB, operasi pemadaman sebenarnya tidak memadamkan data, tetapi menandakan data untuk pemadaman dan menandakannya sebagai dipadam Kita boleh melakukan ini dengan menetapkan MySQL kepada mod penyerahan bukan automatik Mari uji dan sahkan. Tetapan SQL untuk mod komit bukan automatik adalah seperti berikut:

set autocommit=0;
Salin selepas log masuk

Kemudian padamkan data dahulu, kemudian gunakan rollback untuk melancarkan semula, dan akhirnya sahkan sama ada data yang kami padamkan sebelum ini masih wujud masih wujud Kewujudan bermakna pemadaman tidak benar-benar memadamkan data, ia hanya menandakan data sebagai dipadamkan Hasil pengesahan SQL dan pelaksanaan adalah seperti yang ditunjukkan di bawah:

Analisis ringkas kaedah pemadaman MySQL: perbezaan antara padam, potong, dan lepas

<🎜. > 1.2 Mengenai lajur kenaikan automatik

Dalam enjin InnoDB, selepas menggunakan padam untuk memadam semua data, lajur kenaikan automatik tidak akan ditetapkan semula kepada nilai awalnya Kami boleh mengesahkannya dengan perkara berikut arahan:

Analisis ringkas kaedah pemadaman MySQL: perbezaan antara padam, potong, dan lepas

2.truncate

Kesan pelaksanaan truncate adalah serupa dengan delete Ia juga digunakan untuk memadam semua baris data dalam jadual. Sintaks penggunaannya adalah seperti berikut:

truncate [table] table_name
Salin selepas log masuk
Perbezaan terbesar antara truncate dan delete sedang digunakan ialah

delete boleh menggunakan ungkapan bersyarat untuk memadam sebahagian daripada data, manakala truncate tidak boleh menambah ungkapan bersyarat, jadi ia hanya boleh memadamkan semua baris data, contohnya, truncate berikut akan melaporkan ralat selepas menambah perintah where:

Analisis ringkas kaedah pemadaman MySQL: perbezaan antara padam, potong, dan lepas

2.1 prinsip pelaksanaan truncate

truncate nampaknya hanya memadamkan baris data, tetapi ia adalah pernyataan DDL, iaitu Bahasa Definisi Data Ia digunakan untuk mengekalkan arahan struktur untuk menyimpan data, jadi ini juga berbeza daripada Perintah padam. Pernyataan padam adalah milik DML, Bahasa Manipulasi Data, yang digunakan untuk beroperasi pada data. Mengapakah pemangkasan hanya memadamkan data baris tetapi bukan data lajur (medan, indeks, dll.) tetapi ia adalah bahasa DDL? Ini kerana truncate pada asasnya mencipta struktur jadual baharu dan kemudian memadamkan jadual asal, jadi ia tergolong dalam bahasa DDL, bukan bahasa DML.

2.2 Tetapkan semula lajur kenaikan automatik

truncate akan menetapkan semula lajur kenaikan automatik dalam enjin InnoDB, seperti ditunjukkan dalam arahan berikut:

Analisis ringkas kaedah pemadaman MySQL: perbezaan antara padam, potong, dan lepas

3.drop

drop adalah berbeza daripada dua arahan pertama yang hanya memadamkan data baris jadual akan memadamkan data baris keseluruhan jadual bersama-sama dengan struktur jadual , sintaksnya adalah seperti berikut:

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [,tbl_name]
Salin selepas log masuk
di mana SEMENTARA bermaksud jadual sementara.

Contoh penggunaan drop adalah seperti berikut:

Analisis ringkas kaedah pemadaman MySQL: perbezaan antara padam, potong, dan lepas

Perbezaan antara ketiganya

  • Pemulihan data: padam boleh memulihkan data yang dipadam, tetapi potong dan lepas tidak boleh memulihkan data yang dipadam.

  • Kelajuan pelaksanaan: lepaskan >

  • Dari segi pemadaman data: drop memadamkan keseluruhan jadual, termasuk data baris, medan, indeks dan data lain, manakala potong dan lepas hanya memadamkan data baris.

  • Dari segi penambahan syarat: padam boleh menggunakan ungkapan where untuk menambah syarat pertanyaan, manakala truncate dan drop tidak boleh menambah keadaan pertanyaan.

  • Menetapkan semula lajur kenaikan automatik: Dalam enjin InnoDB, truncate boleh menetapkan semula lajur kenaikan automatik, tetapi pemadaman tidak boleh menetapkan semula lajur kenaikan automatik.

Ringkasan

padam dan potong boleh digunakan untuk memadamkan data baris dalam jadual, manakala drop memadamkan keseluruhan jadual , medan, indeks dan data lain Data yang dipadamkan dengan pemadaman boleh dipulihkan, manakala pemotongan dan pengguguran tidak boleh dipulihkan Namun, dari segi kecekapan pelaksanaan, dua kaedah pemadaman yang terakhir mempunyai kelebihan yang besar, jadi ia harus berdasarkan senario sebenar. . Untuk memilih arahan pemadaman yang sepadan, anda juga harus berhati-hati apabila menggunakan truncate dan drop, yang merupakan kaedah pemadaman data yang tidak boleh dipulihkan.

[Cadangan berkaitan: tutorial video mysql]

Atas ialah kandungan terperinci Analisis ringkas kaedah pemadaman MySQL: perbezaan antara padam, potong, dan lepas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:juejin.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan