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

Eine vollständige Anleitung zur Konfiguration von Linux-Umgebungsvariablen

Konfiguration der Linux-Umgebungsvariablen Beim A...

Beispiel einer JSON-Ausgabe im HTML-Format (Testschnittstelle)

Um die JSON-Daten in einem schönen eingerückten F...

Professionelles und nicht-professionelles Webdesign

Zunächst einmal hängt die Gestaltung des Webseiten...

6 ungewöhnliche HTML-Tags

Zuerst: <abbr> oder <acronym> Diese be...

Beispielcode von Vue + Element UI zur Realisierung der Player-Funktion

Die Anzeige ohne Effektbild ist nur leeres Gerede...

Zusammenfassung zum Ändern des Root-Passworts in MySQL 5.7 und MySQL 8.0

MySQL 5.7-Version: Methode 1: Verwenden Sie den B...

Linux 6 Schritte zum Ändern der Standard-Remote-Portnummer von SSH

Der Standard-SSH-Remote-Port in Linux ist 22. Man...

Ein kurzer Vortrag über den Diff-Algorithmus in Vue

Inhaltsverzeichnis Überblick Virtueller Dom Prinz...

Was sind die Kernmodule von node.js

Inhaltsverzeichnis Globales Objekt Globale Objekt...

Rhit effiziente Visualisierung Nginx-Protokollanzeigetool

Inhaltsverzeichnis Einführung Installieren Anzeig...