Detaillierte Erklärung zur Verwendung von MySQL DML-Anweisungen

Detaillierte Erklärung zur Verwendung von MySQL DML-Anweisungen

Vorwort:

Im vorherigen Artikel haben wir hauptsächlich die Verwendung von DDL-Anweisungen vorgestellt, die aufmerksamen Studenten möglicherweise aufgefallen sind. Dieser Artikel konzentriert sich auf DML-Anweisungen und erläutert tabellendatenbezogene Vorgänge.

Hier erklären wir die Klassifizierung von DDL- und DML-Anweisungen. Für manche Schüler ist dies möglicherweise nicht klar.

DDL (Data Definition Language): Datendefinitionssprache, die zum Erstellen, Löschen, Ändern von Datenbank- oder Tabellenstrukturen und zum Bearbeiten der Struktur von Datenbanken oder Tabellen verwendet wird. Zu den gängigen Methoden gehören „Erstellen“, „Ändern“, „Löschen“ usw.

DML (Data Manipulation Language): Datenmanipulationssprache, die hauptsächlich zum Aktualisieren (Hinzufügen, Löschen, Ändern) von Tabellendatensätzen verwendet wird. Zu den gängigen Befehlen gehören Einfügen, Aktualisieren, Löschen usw.

1. Daten einfügen

Die Insert-Syntax wird hauptsächlich zum Einfügen von Daten verwendet. Die offizielle Dokumentation bietet auch viele Optionen:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [PARTITION (partition_name [, partition_name] ...)] [(col_name [, col_name] ...)] {VALUES | VALUE} (value_list) [, (value_list)] ... [ON DUPLICATE KEY UPDATE assignment_list]
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [PARTITION (partition_name [, partition_name] ...)] SET assignment_list [ON DUPLICATE KEY UPDATE assignment_list]
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [PARTITION (partition_name [, partition_name] ...)] [(col_name [, col_name] ...)] SELECT ... [ON DUPLICATE KEY UPDATE assignment_list]
Wert: {expr | DEFAULT}
Werteliste: Wert [, Wert] …
Zuweisung: col_name = Wert
Zuweisungsliste: Zuweisung [, Zuweisung] …

Interessierte Studierende können die oben genannten Optionen konsultieren und studieren. Im Folgenden werde ich Ihnen in Kategorien mehrere häufig verwendete Syntaxen vorstellen.

EINFÜGEN IN ... WERTE (...)

Dies ist wahrscheinlich die häufigste Art, Insert-Anweisungen zu schreiben. Die Standardverwendung ist:

INSERT INTO <Tabellenname> [ <Spaltenname 1> [ , … <Spaltenname n>] ]VALUES (Wert 1) [… , (Wert n) ];
INSERT INTO Tabelle (Spalte1, Spalte2 ...) VALUES (Wert1, Wert2, ...), (Wert1, Wert2, ...), ...;

Die Syntax lautet wie folgt:

  • <Tabellenname>: Gibt den Namen der zu bearbeitenden Tabelle an.
  • <Spaltenname>: Geben Sie den Spaltennamen an, in den Daten eingefügt werden müssen. Wenn Sie Daten in alle Spalten einer Tabelle einfügen möchten, können alle Spaltennamen weggelassen werden und Sie können direkt INSERT <Tabellenname> VALUES(…) verwenden.
  • VALUES- oder VALUE-Klausel: Diese Klausel enthält die Liste der einzufügenden Daten. Die Reihenfolge der Daten in der Datenliste sollte der Reihenfolge der Spalten entsprechen.

EINFÜGEN ... FESTLEGEN ...

Die Anweisung insert ... set kann jeweils nur ein Datenelement einfügen. Sie kann Werte einiger Spalten in die Tabelle einfügen, was flexibler ist.

INSERT INTO <Tabellenname> SET <Spaltenname 1> = <Wert 1>, <Spaltenname 2> = <Wert 2>, …

EINFÜGEN IN ... AUSWÄHLEN ...

Mit der Anweisung INSERT INTO…SELECT…FROM können Sie schnell Daten aus einer oder mehreren Tabellen abrufen und als Zeilendaten in eine andere Tabelle einfügen.

Die SELECT-Klausel gibt einen Abfrageergebnissatz zurück und die INSERT-Anweisung fügt diesen Ergebnissatz in die angegebene Tabelle ein. Die Anzahl der Felder und der Datentyp jeder Datenzeile im Ergebnissatz müssen genau mit denen der bearbeiteten Tabelle übereinstimmen.

Wenn beispielsweise die Testtabelle und die Test_bak-Tabelle dieselbe Struktur haben und wir die Daten aus der Testtabelle in die Test_bak-Tabelle einfügen möchten, können wir Folgendes tun:

INSERT INTO test_bak, wähle * aus Test;

EINFÜGEN ... BEIM UPDATE DES DOPPELTEN SCHLÜSSELS

Wenn die neu einzufügende Zeile den Primärschlüssel (PRIMARY KEY) oder die UNIQUE-Einschränkung verletzt, meldet MySQL einen Fehler. Mit dieser Syntax lässt sich dieser Fehler beheben. Wenn in der Datenbank ein Datensatz vorhanden ist, wird dieser durch die Ausführung dieser Anweisung aktualisiert, und wenn er nicht vorhanden ist, wird er eingefügt.

Hier ist ein Beispiel, um den Effekt zu demonstrieren:

TABELLE `Student` erstellen ( `xuehao` int(11) Primärschlüssel, `Name` varchar(255) STANDARD NULL, `Alter` int(11) STANDARD NULL) ENGINE=InnoDB STANDARD CHARSET=utf8;
mysql> wähle * von Student;+--------+------+------+| xuehao | Name | Alter |+--------+------+------+| 1001 | aaa | 18 || 1002 | bbb | 19 || 1003 | ccc | 20 |+--------+------+------+
Füge in den Schüler (xuehao, Name, Alter) die Werte (1003, 'ccc', 19) bei DUPLICATE KEY UPDATE ein: Alter = 19;
mysql> wähle * von Student;+--------+------+------+| xuehao | Name | Alter |+--------+------+------+| 1001 | aaa | 18 || 1002 | bbb | 19 || 1003 | ccc | 19 |+--------+------+------+
Aktualisiere das Alter des Schülers = 19, wobei xuehao = 1003;

ERSETZEN IN ... WERTE …

„Replace into“ ähnelt „Insert“, außer dass „Replace into“ zuerst versucht, Daten in die Tabelle einzufügen. 1. Wenn festgestellt wird, dass die Datenzeile bereits in der Tabelle vorhanden ist (basierend auf dem Primärschlüssel oder dem eindeutigen Index), wird die Datenzeile gelöscht und anschließend die neuen Daten eingefügt. 2. Andernfalls fügen Sie die neuen Daten direkt ein.

Nehmen wir zur Veranschaulichung ein Beispiel:

mysql> wähle * von Student;+--------+------+------+| xuehao | Name | Alter |+--------+------+------+| 1001 | aaa | 18 || 1002 | bbb | 19 || 1003 | ccc | 19 |+--------+------+------+
ersetzen durch Studentenwerte (1003, 'ccc', 17);
mysql> wähle * von Student;+--------+------+------+| xuehao | Name | Alter |+--------+------+------+| 1001 | aaa | 18 || 1002 | bbb | 19 || 1003 | ccc | 17 |+--------+------+------+

2. Daten aktualisieren

Mit der Update-Anweisung werden Tabellendaten aktualisiert. Die offiziell empfohlene Syntax lautet:

UPDATE [LOW_PRIORITY] [IGNORE] Tabellenreferenz SET Zuweisungsliste [WHERE Where_Bedingung] [ORDER BY ...] [LIMIT Zeilenanzahl]
Wert: {expr | DEFAULT}
Zuweisung: col_name = Wert
Zuweisungsliste: Zuweisung [, Zuweisung] …

In ähnlicher Weise stellen wir hier nur die häufig verwendete Aktualisierungssyntax für einzelne Tabellen vor:

UPDATE <Tabellenname> SET Feld1=Wert1 [,Feld2=Wert2…] [WHERE-Klausel][ORDER BY-Klausel] [LIMIT-Klausel]

Die Syntax lautet wie folgt:

  • <Tabellenname>: wird verwendet, um den Namen der zu aktualisierenden Tabelle anzugeben.
  • SET-Klausel: Wird verwendet, um den Spaltennamen und den Spaltenwert anzugeben, die in der Tabelle geändert werden sollen. Jeder angegebene Spaltenwert kann ein Ausdruck oder der der Spalte entsprechende Standardwert sein. Wenn ein Standardwert angegeben ist, kann das Schlüsselwort DEFAULT verwendet werden, um den Spaltenwert darzustellen.
  • WHERE-Klausel: Optional. Wird verwendet, um die zu ändernden Zeilen in der Tabelle einzuschränken. Wenn nicht angegeben, werden alle Zeilen in der Tabelle geändert.
  • ORDER BY-Klausel: Optional. Wird verwendet, um die Reihenfolge einzuschränken, in der Zeilen in einer Tabelle geändert werden.
  • LIMIT-Klausel: Optional. Wird verwendet, um die Anzahl der zu ändernden Zeilen zu begrenzen.

3. Daten löschen

Mit der Delete-Anweisung werden Tabellendaten gelöscht. Das offizielle Dokument empfiehlt folgende Syntax:

LÖSCHEN [NIEDRIGE_PRIORITÄT] [SCHNELL] [IGNORIEREN] VON Tabellenname [PARTITION (Partitionsname [, Partitionsname] ...)] [WHERE Where-Bedingung] [ORDER BY ...] [LIMIT Zeilenanzahl]

Mit der DELETE-Anweisung können Sie Daten aus einer einzelnen Tabelle löschen. Die Syntax lautet:

DELETE FROM <Tabellenname> [WHERE-Klausel] [ORDER BY-Klausel] [LIMIT-Klausel]

Die Syntax lautet wie folgt:

  • <Tabellenname>: Geben Sie den Namen der Tabelle an, aus der Daten gelöscht werden sollen.
  • ORDER BY-Klausel: Optional. Beim Löschen werden die Zeilen der Tabelle in der in der Klausel angegebenen Reihenfolge gelöscht.
  • WHERE-Klausel: Optional. Gibt an, dass die Löschbedingungen für den Löschvorgang eingeschränkt sind. Wenn diese Klausel weggelassen wird, bedeutet dies, dass alle Zeilen in der Tabelle gelöscht werden.
  • LIMIT-Klausel: Optional. Wird verwendet, um dem Server die maximale Anzahl der zu löschenden Zeilen mitzuteilen, bevor die Kontrolle an den Client zurückgegeben wird.

Zusammenfassen:

In diesem Artikel wird hauptsächlich die Syntax von drei DML-Anweisungen vorgestellt. Obwohl sie einfach erscheinen, sind die verschiedenen Optionen tatsächlich sehr komplex, insbesondere die Insert-Anweisung, die viele häufig verwendete Optionen enthält. An dieser Stelle möchten wir auch alle daran erinnern, dass Sie beim Ausführen von Update- oder Delete-Anweisungen vorsichtig sein müssen. Wenn Sie die Where-Bedingung nicht verwenden, werden alle Daten aktualisiert oder gelöscht.

Oben finden Sie eine ausführliche Erläuterung der Verwendung von MySQL-DML-Anweisungen. Weitere Informationen zu MySQL-DML-Anweisungen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Zusammenfassung der MySQL-DML-Anweisungen
  • MySQL-Datenoperation – Verwendung von DML-Anweisungen
  • MySQL-Grundlagen-Tutorial: Detaillierte Erklärung der DML-Anweisungen

<<:  js zur Realisierung einer einfachen Scheibenuhr

>>:  Detaillierte Schritte zum Konfigurieren des Tomcat-Servers in IDEA 2020

Artikel empfehlen

Bootstrap 3.0 - Schaltflächenstil für Lernnotizen

In diesem Artikel wird hauptsächlich der Stil der...

Detaillierte Erklärung verschiedener Join-Zusammenfassungen von SQL

SQL Left Join, Right Join, Inner Join und Natural...

Vue-Komponente zur Realisierung einer Karussell-Animation

In diesem Artikelbeispiel wird der spezifische Co...

Zwei Möglichkeiten, damit IE6 Bilder im PNG-24-Format normal anzeigt

Methode 1: Bitte fügen Sie den folgenden Code nach...

Zusammenfassung der mobilen Anpassungslösung von webpack

Inhaltsverzeichnis rem vw An UI-Frameworks von Dr...

MySQL 8.0.13 Installations- und Konfigurations-Tutorial unter CentOS7.3

1. Grundlegende Umgebung 1. Betriebssystem: CentO...

So starten Sie ein Java-Programm im Docker

Erstellen Sie ein einfaches Spring Boot-Webprojek...

JS-Dekorationsmuster und TypeScript-Dekoratoren

Inhaltsverzeichnis Einführung in das Decorator-Mu...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.12

Das Download- und Installationstutorial für MySQL...

js, um einen Ein- und Ausblendeffekt des Bildes zu erzielen

In diesem Artikel wird der spezifische Code von j...

Implementierung von Wasserfall-Layout + dynamischem Rendering

Inhaltsverzeichnis Typische Wasserfall-Website Wa...