Rumah pangkalan data tutorial mysql sql delete删除语句详细语法

sql delete删除语句详细语法

Jun 07, 2016 pm 05:47 PM
delete sql padam terperinci kenyataan tatabahasa

delete语法
单表语法:

delete [low_priority] [quick] [ignore] from tbl_name    [where where_definition]    [order by ...]    [limit row_count]多表语法:

delete [low_priority] [quick] [ignore]    tbl_name[.*] [, tbl_name[.*] ...]    from table_references    [where where_definition]或:

delete [low_priority] [quick] [ignore]    from tbl_name[.*] [, tbl_name[.*] ...]    using table_references    [where where_definition]tbl_name中有些行满足由where_definition给定的条件。delete用于删除这些行,并返回被删除的记录的数目。

如果您编写的delete语句中没有where子句,则所有的行都被删除。当您不想知道被删除的行的数目时,有一个更快的方法,即使用truncate table。请参见13.2.9节,“truncate语法”。

如果您删除的行中包括用于auto_increment列的最大值,则该值被重新用于bdb表,但是不会被用于myisam表或innodb表。如果您在autocommit模式下使用delete from tbl_name(不含where子句)删除表中的所有行,则对于所有的表类型(除innodb和myisam外),序列重新编排。对于innodb表,此项操作有一些例外,在15.2.6.3节,“auto_increment列如何在innodb中运行”中进行了讨论。

对于myisam和bdb表,您可以把auto_increment次级列指定到一个多列关键字中。在这种情况下,从序列的顶端被删除的值被再次使用,甚至对于myisam表也如此。请参见3.6.9节,“使用auto_increment”。

delete语句支持以下修饰符:

·         如果您指定low_priority,则delete的执行被延迟,直到没有其它客户端读取本表时再执行。

·         对于myisam表,如果您使用quick关键词,则在删除过程中,存储引擎不会合并索引端结点,这样可以加快部分种类的删除操作的速度。

·         在删除行的过程中,ignore关键词会使忽略所有的错误。(在分析阶段遇到的错误会以常规方式处理。)由于使用本选项而被忽略的错误会作为警告返回。

删除操作的速度会受到一些因素的影响,这些因素在7.2.18节,“delete语句的速度”中进行了讨论。

在myisam表中,被删除的记录被保留在一个带链接的清单中,后续的insert操作会重新使用旧的记录位置。要重新使用未使用的空间并减小文件的尺寸,则使用optimize table语句或myisamchk应用程序重新编排表。optimize table更简便,但是myisamchk速度更快。请参见13.5.2.5节,“optimize table语法”和第7章:优化。

quick修饰符会影响到在删除操作中索引端结点是否合并。当用于被删除的行的索引值被来自后插入的行的相近的索引值代替时,delete quick最为适用。在此情况下,被删除的值留下来的空穴被重新使用。

未充满的索引块跨越某一个范围的索引值,会再次发生新的插入。当被删除的值导致出现未充满的索引块时,delete quick没有作用。在此情况下,使用quick会导致未利用的索引中出现废弃空间。下面是此种情况的举例说明:

1.    创建一个表,表中包含已编索引的auto_increment列。

2.    在表中插入很多记录。每次插入会产生一个索引值,此索引值被添加到索引的高端处。

3.    使用delete quick从列的低端处删除一组记录。

在此情况下,与被删除的索引值相关的索引块变成未充满的状态,但是,由于使用了quick,这些索引块不会与其它索引块合并。当插入新值时,这些索引块仍为未充满的状态,原因是新记录不含有在被删除的范围内的索引值。另外,即使您此后使用delete时不包含quick,这些索引块也仍是未充满的,除非被删除的索引值中有一部分碰巧位于这些未充满的块的之中,或与这些块相邻。在这些情况下,如果要重新利用未使用的索引空间,需使用optimize table。

如果您打算从一个表中删除许多行,使用delete quick再加上optimize table可以加快速度。这样做可以重新建立索引,而不是进行大量的索引块合并操作。

用于delete的mysql唯一的limit row_count选项用于告知服务器在控制命令被返回到客户端前被删除的行的最大值。本选项用于确保一个delete语句不会占用过多的时间。您可以只重复delete语句,直到相关行的数目少于limit值为止。

如果delete语句包括一个order by子句,则各行按照子句中指定的顺序进行删除。此子句只在与limit联用是才起作用。例如,以下子句用于查找与where子句对应的行,使用timestamp_column进行分类,并删除第一(最旧的)行:

delete from somelogwhere user = 'jcole'order by timestamp_columnlimit 1;您可以在一个delete语句中指定多个表,根据多个表中的特定条件,从一个表或多个表中删除行。不过,您不能在一个多表delete语句中使用order by或limit。

table_references部分列出了包含在联合中的表。此语法在13.2.7.1节,“join语法”中进行了说明。

对于第一个语法,只删除列于from子句之前的表中的对应的行。对于第二个语法,只删除列于from子句之中(在using子句之前)的表中的对应的行。作用是,您可以同时删除许多个表中的行,并使用其它的表进行搜索:

delete t1, t2 from t1, t2, t3 where t1.id=t2.id and t2.id=t3.id;或:

delete from t1, t2 using t1, t2, t3 where t1.id=t2.id and t2.id=t3.id;当搜索待删除的行时,这些语句使用所有三个表,但是只从表t1和表t2中删除对应的行。

以上例子显示了使用逗号操作符的内部联合,但是多表delete语句可以使用select语句中允许的所有类型的联合,比如left join。

本语法允许在名称后面加.*,以便与access相容。

如果您使用的多表delete语句包括innodb表,并且这些表受外键的限制,则mysql优化程序会对表进行处理,改变原来的从属关系。在这种情况下,该语句出现错误并返回到前面的步骤。要避免此错误,您应该从单一表中删除,并依靠innodb提供的on delete功能,对其它表进行相应的修改。

注释:当引用表名称时,您必须使用别名(如果已给定):

delete t1 from test as t1, test2 where ...进行多表删除时支持跨删除,但是在此情况下,您在引用表时不能使用别名。举例说明:

delete test1.tmp1, test2.tmp2 from test1.tmp1, test2.tmp2 where ...目前,您不能从一个表中删除,同时又在子查询中从同一个表中选择。

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk memadam nota Xiaohongshu Bagaimana untuk memadam nota Xiaohongshu Mar 21, 2024 pm 08:12 PM

Bagaimana untuk memadamkan nota Xiaohongshu? pandangan! Tutorial penggunaan Xiaohongshu Cara memadam nota Xiaohongshu 1. Mula-mula buka APP Xiaohongshu dan masukkan halaman utama, pilih [Saya] di sudut kanan bawah untuk memasuki kawasan khas 2. Kemudian di kawasan Saya, klik pada halaman nota sebagai ditunjukkan di bawah , pilih nota yang anda mahu padamkan;

Apakah perbezaan antara HQL dan SQL dalam rangka kerja Hibernate? Apakah perbezaan antara HQL dan SQL dalam rangka kerja Hibernate? Apr 17, 2024 pm 02:57 PM

HQL dan SQL dibandingkan dalam rangka kerja Hibernate: HQL (1. Sintaks berorientasikan objek, 2. Pertanyaan bebas pangkalan data, 3. Keselamatan jenis), manakala SQL mengendalikan pangkalan data secara langsung (1. Piawaian bebas pangkalan data, 2. Boleh laku kompleks pertanyaan dan manipulasi data).

Adakah benar anda boleh disekat dan dipadamkan pada WeChat dan tidak dapat ditambahkan secara kekal? Adakah benar anda boleh disekat dan dipadamkan pada WeChat dan tidak dapat ditambahkan secara kekal? Apr 08, 2024 am 11:41 AM

1. Pertama sekali, adalah palsu untuk menyekat dan memadam seseorang secara kekal dan tidak menambahkannya secara kekal. Jika anda ingin menambah pihak lain selepas anda menyekat dan memadamkannya, anda hanya memerlukan persetujuan pihak lain. 2. Jika pengguna menyekat seseorang, pihak yang satu lagi tidak akan dapat menghantar mesej kepada pengguna, melihat kalangan rakan pengguna atau membuat panggilan dengan pengguna. 3. Menyekat tidak bermakna memadamkan pihak lain daripada senarai kenalan WeChat pengguna. 4. Jika pengguna memadamkan pihak lain daripada senarai kenalan WeChat pengguna selepas menyekat mereka, tiada cara untuk pulih selepas pemadaman. 5. Jika pengguna ingin menambah pihak yang satu lagi sebagai rakan semula, pihak yang satu lagi perlu bersetuju dan menambah pengguna itu semula.

Bagaimana untuk memadam keluaran Xiaohongshu? Bagaimana untuk memulihkan selepas pemadaman? Bagaimana untuk memadam keluaran Xiaohongshu? Bagaimana untuk memulihkan selepas pemadaman? Mar 21, 2024 pm 05:10 PM

Sebagai platform e-dagang sosial yang popular, Xiaohongshu telah menarik sejumlah besar pengguna untuk berkongsi kehidupan harian dan pengalaman membeli-belah mereka. Kadangkala kami mungkin secara tidak sengaja menerbitkan beberapa kandungan yang tidak sesuai, yang perlu dipadamkan dalam masa untuk mengekalkan imej peribadi kami dengan lebih baik atau mematuhi peraturan platform. 1. Bagaimana untuk memadam keluaran Xiaohongshu? 1. Log masuk ke akaun Xiaohongshu anda dan masukkan halaman utama peribadi anda. 2. Di bahagian bawah halaman utama peribadi, cari pilihan "Ciptaan Saya" dan klik untuk masuk. 3. Pada halaman "Ciptaan Saya", anda boleh melihat semua kandungan yang diterbitkan, termasuk nota, video, dsb. 4. Cari kandungan yang perlu dipadamkan dan klik butang "..." di sebelah kanan. 5. Dalam menu pop timbul, pilih pilihan "Padam". 6. Selepas mengesahkan pemadaman, kandungan akan hilang dari laman utama peribadi anda dan halaman awam.

Bagaimana untuk memadam sepenuhnya sejarah sembang TikTok Bagaimana untuk memadam sepenuhnya sejarah sembang TikTok May 07, 2024 am 11:14 AM

1. Buka apl Douyin, klik [Mesej] di bahagian bawah antara muka dan klik entri perbualan sembang yang perlu dipadamkan. 2. Tekan lama mana-mana rekod sembang, klik [Multiple Select], dan semak rekod sembang yang ingin anda padamkan. 3. Klik butang [Padam] di penjuru kanan sebelah bawah dan pilih [Sahkan pemadaman] dalam tetingkap pop timbul untuk memadam rekod ini secara kekal.

Langkah khusus untuk memadam anak panah ke bawah dalam Word! Langkah khusus untuk memadam anak panah ke bawah dalam Word! Mar 19, 2024 pm 08:50 PM

Dalam kerja pejabat harian, jika anda menyalin sekeping teks dari tapak web dan menampalnya terus ke Word, anda akan sering melihat [anak panah ke bawah] ini boleh dipadamkan dengan memilihnya, tetapi jika terdapat terlalu banyak simbol sedemikian, Jadi adakah terdapat cara cepat untuk memadam semua anak panah? Jadi hari ini saya akan berkongsi dengan anda langkah-langkah khusus untuk memadamkan anak panah ke bawah dalam Word! Pertama sekali, [Anak Panah Bawah] dalam Word sebenarnya mewakili [Pemotongan Baris Manual]. Kita boleh menggantikan semua [Anak Panah Bawah] dengan simbol [Markah Perenggan], seperti yang ditunjukkan dalam rajah di bawah. 2. Kemudian, kami memilih pilihan [Cari dan Ganti] pada bar menu (seperti yang ditunjukkan dalam bulatan merah dalam rajah di bawah). 3. Kemudian, klik arahan [Ganti], kotak pop timbul akan muncul, klik [Simbol Khas]

Cara memadam sepenuhnya Pembantu Pemindahan Fail WeChat_Pengenalan kepada cara menutup Pembantu Pemindahan Fail WeChat Cara memadam sepenuhnya Pembantu Pemindahan Fail WeChat_Pengenalan kepada cara menutup Pembantu Pemindahan Fail WeChat Mar 20, 2024 pm 08:31 PM

Pembantu pemindahan fail WeChat tersedia untuk setiap pengguna Sesetengah pengguna menggunakannya sebagai memo untuk merekodkan beberapa perkara. Jadi bagaimana untuk memadam sepenuhnya Pembantu Pemindahan Fail WeChat? Izinkan saya memperkenalkannya kepada anda secara terperinci di bawah. Bagaimana untuk memadam sepenuhnya Pembantu Pemindahan Fail WeChat Jawapan: [WeChat]-[Tekan lama Pembantu Pemindahan Fail]-[Padam sembang ini]. Langkah-langkah khusus: 1. Mula-mula buka perisian WeChat Selepas memasuki halaman utama, kami mencari [Pembantu Pemindahan Fail] dan tekan dan tahan 2. Kemudian pop timbul akan ditandakan sebagai belum dibaca, sematkan sembang ke bahagian atas, lakukan tidak memaparkan sembang, dan memadam sembang Di sini Kita boleh klik [Padam sembang ini];

Bagaimana untuk menghantar fail kepada orang lain di TikTok? Bagaimana untuk memadam fail yang dihantar kepada orang lain? Bagaimana untuk menghantar fail kepada orang lain di TikTok? Bagaimana untuk memadam fail yang dihantar kepada orang lain? Mar 22, 2024 am 08:30 AM

Di Douyin, pengguna bukan sahaja boleh berkongsi butiran kehidupan dan bakat mereka, tetapi juga berinteraksi dengan pengguna lain. Dalam proses ini, kadangkala kita perlu menghantar fail kepada pengguna lain, seperti gambar, video, dll. Jadi, bagaimana untuk menghantar fail kepada orang lain di Douyin? 1. Bagaimana untuk menghantar fail kepada orang lain di Douyin? 1. Buka Douyin dan masukkan antara muka sembang di mana anda ingin menghantar fail. 2. Klik tanda "+" dalam antara muka sembang dan pilih "Fail". 3. Dalam pilihan fail, anda boleh memilih untuk menghantar gambar, video, audio dan fail lain. Selepas memilih fail yang ingin anda hantar, klik "Hantar". 4. Tunggu pihak lain menerima fail anda Setelah pihak lain menerimanya, fail tersebut akan berjaya dipindahkan. 2. Bagaimana untuk memadam fail yang dihantar kepada orang lain di Douyin? 1. Buka Douyin dan masukkan teks yang anda hantar.

See all articles