Heim Datenbank MySQL-Tutorial sql delete删除语句详细语法

sql delete删除语句详细语法

Jun 07, 2016 pm 05:47 PM
delete sql 删除 详细 语句 语法

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 ...目前,您不能从一个表中删除,同时又在子查询中从同一个表中选择。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So löschen Sie Xiaohongshu-Notizen So löschen Sie Xiaohongshu-Notizen Mar 21, 2024 pm 08:12 PM

Wie lösche ich Xiaohongshu-Notizen? Die meisten Benutzer wissen nicht, wie man Xiaohongshu-Notizen löscht. Als nächstes bringt der Editor den Benutzern Bilder und Texte zum Löschen von Xiaohongshu-Notizen ein Blick! Tutorial zur Verwendung von Xiaohongshu So löschen Sie Xiaohongshu-Notizen 1. Öffnen Sie zunächst die Xiaohongshu-App und rufen Sie die Hauptseite auf. Wählen Sie in der unteren rechten Ecke [Ich] aus, um den speziellen Bereich aufzurufen. 2. Klicken Sie dann im Bereich „Mein“ auf die Notizseite als Wählen Sie wie unten gezeigt die Notiz aus, die Sie löschen möchten. 3. Rufen Sie die Notizseite auf und klicken Sie auf [drei Punkte] in der oberen rechten Ecke. 4. Schließlich wird die Funktionsleiste unten erweitert. Klicken Sie zum Abschluss auf [Löschen].

Was ist der Unterschied zwischen HQL und SQL im Hibernate-Framework? Was ist der Unterschied zwischen HQL und SQL im Hibernate-Framework? Apr 17, 2024 pm 02:57 PM

HQL und SQL werden im Hibernate-Framework verglichen: HQL (1. Objektorientierte Syntax, 2. Datenbankunabhängige Abfragen, 3. Typsicherheit), während SQL die Datenbank direkt betreibt (1. Datenbankunabhängige Standards, 2. Komplexe ausführbare Datei). Abfragen und Datenmanipulation).

Stimmt es, dass Sie auf WeChat blockiert und gelöscht werden können und dauerhaft nicht hinzugefügt werden können? Stimmt es, dass Sie auf WeChat blockiert und gelöscht werden können und dauerhaft nicht hinzugefügt werden können? Apr 08, 2024 am 11:41 AM

1. Zunächst einmal ist es falsch, jemanden dauerhaft zu blockieren und zu löschen und ihn nicht dauerhaft hinzuzufügen. Wenn Sie die andere Partei hinzufügen möchten, nachdem Sie sie blockiert und gelöscht haben, benötigen Sie lediglich die Zustimmung der anderen Partei. 2. Wenn ein Benutzer jemanden blockiert, kann die andere Partei keine Nachrichten an den Benutzer senden, den Freundeskreis des Benutzers anzeigen oder mit dem Benutzer telefonieren. 3. Das Blockieren bedeutet nicht, dass die andere Partei aus der WeChat-Kontaktliste des Benutzers gelöscht wird. 4. Wenn der Benutzer den anderen Teilnehmer aus der WeChat-Kontaktliste des Benutzers löscht, nachdem er ihn blockiert hat, gibt es nach dem Löschen keine Möglichkeit, ihn wiederherzustellen. 5. Wenn der Benutzer die andere Partei erneut als Freund hinzufügen möchte, muss die andere Partei zustimmen und den Benutzer erneut hinzufügen.

Wie lösche ich Xiaohongshu-Veröffentlichungen? Wie kann ich nach dem Löschen wiederherstellen? Wie lösche ich Xiaohongshu-Veröffentlichungen? Wie kann ich nach dem Löschen wiederherstellen? Mar 21, 2024 pm 05:10 PM

Als beliebte soziale E-Commerce-Plattform hat Xiaohongshu eine große Anzahl von Nutzern angezogen, die ihr tägliches Leben und ihre Einkaufserlebnisse teilen. Manchmal veröffentlichen wir versehentlich unangemessene Inhalte, die rechtzeitig gelöscht werden müssen, um unser persönliches Image besser zu wahren oder die Plattformvorschriften einzuhalten. 1. Wie lösche ich Xiaohongshu-Veröffentlichungen? 1. Melden Sie sich bei Ihrem Xiaohongshu-Konto an und geben Sie Ihre persönliche Homepage ein. 2. Suchen Sie unten auf der persönlichen Homepage die Option „Meine Kreationen“ und klicken Sie zur Eingabe. 3. Auf der Seite „Meine Kreationen“ können Sie alle veröffentlichten Inhalte sehen, einschließlich Notizen, Videos usw. 4. Suchen Sie den Inhalt, der gelöscht werden muss, und klicken Sie rechts auf die Schaltfläche „…“. 5. Wählen Sie im Popup-Menü die Option „Löschen“. 6. Nach Bestätigung des Löschvorgangs verschwinden die Inhalte von Ihrer persönlichen Homepage und öffentlichen Seite.

Wie kann ich den gelöschten Kommentar einer anderen Person zu Xiaohongshu wiederherstellen? Wird es angezeigt, wenn der Kommentar einer anderen Person gelöscht wird? Wie kann ich den gelöschten Kommentar einer anderen Person zu Xiaohongshu wiederherstellen? Wird es angezeigt, wenn der Kommentar einer anderen Person gelöscht wird? Mar 21, 2024 pm 10:46 PM

Xiaohongshu ist eine beliebte Social-E-Commerce-Plattform und interaktive Kommentare zwischen Benutzern sind eine unverzichtbare Kommunikationsmethode auf der Plattform. Gelegentlich stellen wir möglicherweise fest, dass unsere Kommentare von anderen gelöscht wurden, was verwirrend sein kann. 1. Wie kann ich die gelöschten Kommentare einer anderen Person zu Xiaohongshu wiederherstellen? Wenn Sie feststellen, dass Ihre Kommentare gelöscht wurden, können Sie zunächst versuchen, direkt nach relevanten Beiträgen oder Produkten auf der Plattform zu suchen, um zu sehen, ob Sie den Kommentar noch finden können. Wenn der Kommentar nach dem Löschen immer noch angezeigt wird, wurde er möglicherweise vom ursprünglichen Beitragseigentümer gelöscht. Sie können jetzt versuchen, den ursprünglichen Beitragseigentümer zu kontaktieren, um ihn nach dem Grund für das Löschen des Kommentars zu fragen und die Wiederherstellung des Kommentars zu beantragen. Wenn ein Kommentar vollständig gelöscht wurde und nicht im ursprünglichen Beitrag gefunden werden kann, sind die Chancen, dass er wieder auf der Plattform eingestellt wird, relativ gering. Sie können andere Wege ausprobieren

So löschen Sie den TikTok-Chatverlauf vollständig So löschen Sie den TikTok-Chatverlauf vollständig May 07, 2024 am 11:14 AM

1. Öffnen Sie die Douyin-App, klicken Sie unten in der Benutzeroberfläche auf [Nachricht] und dann auf den Chat-Konversationseintrag, der gelöscht werden muss. 2. Drücken Sie lange auf einen beliebigen Chat-Datensatz, klicken Sie auf [Mehrfachauswahl] und markieren Sie die Chat-Datensätze, die Sie löschen möchten. 3. Klicken Sie auf die Schaltfläche [Löschen] in der unteren rechten Ecke und wählen Sie im Popup-Fenster [Löschen bestätigen] aus, um diese Datensätze dauerhaft zu löschen.

Wie sende ich Dateien an andere auf TikTok? Wie lösche ich an andere gesendete Dateien? Wie sende ich Dateien an andere auf TikTok? Wie lösche ich an andere gesendete Dateien? Mar 22, 2024 am 08:30 AM

Auf Douyin können Benutzer nicht nur ihre Lebensdetails und Talente teilen, sondern auch mit anderen Benutzern interagieren. In diesem Prozess müssen wir manchmal Dateien wie Bilder, Videos usw. an andere Benutzer senden. Wie kann man also auf Douyin Dateien an andere senden? 1. Wie kann ich auf Douyin Dateien an andere senden? 1. Öffnen Sie Douyin und rufen Sie die Chat-Oberfläche auf, an die Sie Dateien senden möchten. 2. Klicken Sie in der Chat-Oberfläche auf das „+“-Zeichen und wählen Sie „Datei“. 3. In den Dateioptionen können Sie auswählen, ob Sie Bilder, Videos, Audiodateien und andere Dateien senden möchten. Nachdem Sie die Datei ausgewählt haben, die Sie senden möchten, klicken Sie auf „Senden“. 4. Warten Sie, bis die andere Partei Ihre Datei akzeptiert. Sobald die andere Partei sie akzeptiert, wird die Datei erfolgreich übertragen. 2. Wie lösche ich Dateien, die auf Douyin an andere gesendet wurden? 1. Öffnen Sie Douyin und geben Sie den von Ihnen gesendeten Text ein.

PHP-Praxistipp: Entfernen Sie das letzte Semikolon in Ihrem Code PHP-Praxistipp: Entfernen Sie das letzte Semikolon in Ihrem Code Mar 27, 2024 pm 02:24 PM

Praktische PHP-Tipps: Letztes Semikolon im Code löschen Beim Schreiben von PHP-Code kommt es häufig vor, dass Sie das letzte Semikolon im Code löschen müssen. Dies kann daran liegen, dass beim Kopieren und Einfügen zusätzliche Semikolons eingeführt werden oder dass Codestil und -struktur optimiert werden sollen. In diesem Artikel stellen wir einige Methoden zum Entfernen des letzten Semikolons im PHP-Code vor und stellen spezifische Codebeispiele bereit. Methode 1: Verwenden der Substr-Funktion Die Substr-Funktion kann einen Teilstring einer angegebenen Länge aus einem String zurückgeben. wir können

See all articles