MySQL-Grundlagen-Tutorial: Detaillierte Erklärung der DML-Anweisungen

MySQL-Grundlagen-Tutorial: Detaillierte Erklärung der DML-Anweisungen

DML-Anweisungen

DML-Anweisung (Data Manipulation Language): Anweisung zur Datenmanipulation.

Zweck: Wird zum Hinzufügen, Ändern, Löschen und Abfragen von Datenbankeinträgen und zum Überprüfen der Datenintegrität verwendet.

Häufige Schlüsselwörter: Einfügen, Aktualisieren, Löschen, Auswählen usw.

Das Objekt der DML-Operation sind die Daten (Datensätze) der Bibliothekstabelle.

Es umfasst hauptsächlich Einfügen, Aktualisieren, Löschen und Abfragen.

DML-Anweisungen sind die von Entwicklern am häufigsten verwendeten Operationen.

1. Datensätze einfügen

Einfügen eines Datensatzes

in Tabellenname (Feld1, Feld2, ..., Feldn) Werte (Wert1, Wert2, ..., Werten) einfügen;

Mehrere Datensätze gleichzeitig einfügen

in Tabellennamen einfügen

 (Feld1,Feld2,...,Feldn)

Werte

 (Wert1,Wert2,...,Werten),

 (Wert1,Wert2,...,Werten);

2. Datensätze aktualisieren

Aktualisieren Sie einzelne Tabellendaten

aktualisiere Tabellenname, setze Feld1=Wert1,Feld2=Wert2,...Feldn=Werten [wobei Bedingung]

Daten in mehreren Tabellen gleichzeitig aktualisieren

Aktualisiere t1, t2, ..., tn, setze t1.Feld1=Ausdruck1, tn.Feld=Ausdruck [wobei Bedingung];

Wird normalerweise verwendet, um die Felder einer anderen Tabelle dynamisch zu aktualisieren, basierend auf den Feldern einer Tabelle

Hinweis: Die eckigen Klammern „[ ]“ stellen optionale Parameter dar, d. h. Parameter, die vorhanden sein können oder nicht.

3. Einfache Abfragedatensätze

Einfache bedingte Abfrage. Das Zeichen „*“ steht für die Abfrage aller Felder. Möchten Sie nur bestimmte Spalten anzeigen, schreiben Sie die Spaltennamen der Tabelle.

Wählen Sie * aus Tabellenname [wobei Bedingung];

wähle Feld1, Feld2, ..., Feldn aus Tabellenname [wobei Bedingung];

Aliase

Schlüsselwörter zum Aliasing von Spalten- oder Tabellennamen: AS oder keine Schlüsselwörter. wie:

Wähle Feld1 als f1, Feld2 f2 aus Tabellenname;

Wählen Sie t2.Feld1 als f1, t1.Feld2 f2 aus Tabelle1 als t1, Tabelle2 t2;

Wenn kein Alias ​​verwendet wird, sind die Spaltennamen der Abfrageergebnisse die ursprünglichen Spaltennamen der Tabelle.

Wenn Sie einen Alias ​​verwenden, ist der Spaltenname des Abfrageergebnisses der Alias.

4. Datensätze löschen

Löschen einzelner Tabellendatensätze

löschen aus Tabellenname [where-Bedingung];

Daten aus mehreren Tabellen gleichzeitig löschen

Lösche t1,t2,...,tn aus t1,t2,...,tn [Where-Bedingung];

Hinweis: Wenn keine Where-Bedingung hinzugefügt wird, werden die gesamten Tabellendaten gelöscht.

Beispiel für die Operation „Hinzufügen, Ändern, Abfragen und Löschen“ für eine einzelne Tabelle:

Fallbeispiel für den Löschvorgang mehrerer Tabellen:

Schauen wir uns einen weiteren Löschfall an

Schauen wir uns zum Schluss den Löschfall an

Fazit zur Löschung mehrerer Tabellen:

Wenn die Bedingung erfüllt ist, werden die entsprechenden Daten in der bedingten Tabelle gelöscht, und wenn keine Bedingung erfüllt ist, wird die gesamte Tabelle gelöscht.

Wenn die Bedingung nicht erfüllt ist, wird keines davon gelöscht.

Ich habe eine Frage: Was passiert, wenn Sie mehrere Tabellen löschen, ohne eine Where-Bedingung anzugeben?

Was den Vorgang des gleichzeitigen Aktualisierens von Daten in mehreren Tabellen betrifft, können Sie ihn selbst erkunden. Schließlich ist Lernen durch Denken am wertvollsten.

5. Detaillierte Erklärung der Abfragedatensätze (DQL-Anweisungen)

DQL (Data Query Language) ist eine Datenbankabfragesprache.

Datenbankabfrageanweisungen sind wie das Spielen mit Bausteinen, Stück für Stück, und jede eckige Klammer "[]" stellt einen Baustein dar.

Listen Sie zunächst die Abfragesyntax schrittweise nacheinander auf.

5.1. Abfrage eindeutiger Datensätze

Wählen Sie ein eindeutiges Feld aus dem Tabellennamen aus.

Das Schlüsselwort distinct wird verwendet, um Duplikate aus dem „Abfrageergebnissatz“ zu entfernen. Dies wird anhand eines Beispiels deutlicher.

5.2. Bedingte Abfrage

--Alle Spalten abfragen:

Wählen Sie * aus Tabellenname [wobei Bedingung];

--Frage die angegebene Spalte ab:

wähle [Feld1,Feld2,...,Feldn] aus Tabellenname [wobei Bedingung];

Häufig verwendete Bedingungen

Gleich: Feld = xxx

Größer als: Feld > xxx

Kleiner als: Feld < xxx

Ungleich: Feld != xxx

Ungleich: Feld <> xxx

Gleich null: Feld ist null

Ungleich null: Feld ist nicht null

Verwenden Sie logische Operatoren zwischen mehreren Bedingungen: und und oder

Fuzzy-Abfrage "_": Feld wie _x_xx_ Das Symbol "_" steht für die Übereinstimmung mit einem einzelnen beliebigen Zeichen. Sie können "_" neben das gewünschte Zeichen setzen.

Fuzzy-Abfrage "%": Feld wie %x%xx% Das Symbol "%" steht für die Übereinstimmung von 0 bis n Zeichen. Sie können "%" neben die gewünschten Zeichen setzen.

In der Anweisungsabfrage: Feld in (Wert1, Wert2, ...) Abfragefeld und im Array stimmen überein, wenn keine Übereinstimmung, keine Daten

Nicht in der Anweisungsabfrage: Feld nicht in (Wert1, Wert2, ...) Abfragefeld und Array stimmen nicht überein, wenn nicht, sind Daten vorhanden

Informationen zur spezifischen Verwendung anderer häufig verwendeter Bedingungen finden Sie in den häufig verwendeten Bedingungen.

5.3. Aggregierte Abfrage

--Die einfachste Aggregationsabfrage:
Wählen Sie [Feld1, Feld2, ..., Feldn] Fun_Name aus der Tabellenname-Gruppe nach Feld;
--Vollständige Syntax:
wähle [Feld1,Feld2,...,Feldn] Fun_Name aus Tabellenname
 [Wo-Bedingung]
 [Gruppieren nach Feld1, Feld2, ..., Feldn [mit Rollup]]
 [unter Zustand];

veranschaulichen:

fun_name stellt die Aggregationsfunktion dar, häufig verwendete sind: sum(), Datensatzanzahl(*), Durchschnittswert avg(), Maximalwert max(), Minimalwert min();

[wobei Bedingung] die oben erwähnte bedingte Abfrage ist;

[Gruppieren nach Feld1, Feld2, ..., Feldn [mit Rollup]]

Das Schlüsselwort „Gruppieren nach“ gibt die Klassifizierung und Aggregation des Felds an.

Das Schlüsselwort „with rollup“ gibt an, ob die Ergebnisse nach der Klassifizierungsaggregation erneut aggregiert werden sollen.

[mit Bedingung] Filtern Sie den Abfrageergebnissatz nach der Klassifizierungsaggregation nach Bedingung

Der Unterschied zwischen „wo“ und „haben“:

  1. wobei die bedingte Filterung vor der Gruppierung ist; wobei die bedingte Filterung nach der Gruppierung ist.
  2. wobei der ursprüngliche Tabellenspaltenname als bedingte Filterung verwendet werden soll; wobei der Spaltenname des Abfrageergebnissatzes als bedingte Filterung verwendet werden soll.

Priorisieren Sie die Where-Condition-Filterung. Dadurch kann der Ergebnisset reduziert und die Effizienz der Klassifizierungsaggregation verbessert werden.

Die Klammern "[]" stellen optionale Bedeutungen dar, was bedeutet, dass die [Where-Bedingung] vor „Group By“ optional ist und die [With Rollup-Bedingung] und [Having-Bedingung] danach ebenfalls optional sind.

Der Unterschied zwischen „group by“ und „distinct“: „group by“ gruppiert die angegebenen Spalten, „distinct“ dedupliziert die Abfrageergebnisse.

Beispiel für das Hinzufügen von „where“ und „having“:

Der Spaltenname avg(stu_age) sieht etwas seltsam aus, daher wird es auf den ersten Blick klar, wenn wir ihm einen anderen Namen geben:

5.4. Sortierabfrage

--Die einfachste Sortierabfrage:
Wählen Sie * aus dem Tabellennamen, sortiert nach Feld;
--Vollständige Syntax:
wähle [Feld1,Feld2,...,Feldn] Fun_Name aus Tabellenname
 [Wo-Bedingung]
 [Gruppieren nach Feld1, Feld2, ..., Feldn [mit Rollup]]
 [unter Bedingung]
 [Sortierung nach Feld1 [absteigend|aufsteigend], Feld2 [absteigend|aufsteigend],...,Feldn [absteigend|aufsteigend]];
DESC steht für absteigende Reihenfolge (von groß nach klein); ASC steht für aufsteigende Reihenfolge (von klein nach groß) und asc ist die Standardsortierung. Mit anderen Worten, Sie müssen sich nur desc merken. Es kommt vor, dass desc das Schlüsselwort für den Entwurf von Abfragetabellen ist und die Syntax sehr einfach ist: desc tablename;

Nach einzelner Spalte sortieren:

Mehrspaltige Sortierung: Trennen Sie die Spalten durch das Symbol ",".

5.5. Abfrage begrenzen

Auch bekannt als Einschränkungsabfrage, Bereichsabfrage, Paging-Abfrage

--Die einfachste Grenzwertabfrage: offset_start ist dasselbe wie der Array-Index, beginnend bei 0. select * from tablename limit offset_start,row_count;
--Vollständige Syntax: Dieses SQL ist die vollständige Version der Einzeltabellenabfrage select [field1,field2,...,fieldn] fun_name from tablename
 [Wo-Bedingung]
 [Gruppieren nach Feld1, Feld2, ..., Feldn [mit Rollup]]
 [unter Bedingung]
 [Sortierung nach Feld1 [absteigend|aufsteigend], Feld2 [absteigend|aufsteigend],...,Feldn [absteigend|aufsteigend]]
 [Limit Offset_Start, Zeilenanzahl];

Beispiel 1: Ausgehend von Punkt 1 werden zwei Daten abgefragt

Beispiel 2: Ausgehend von Punkt 2 werden zwei Daten abgefragt

=========================

= Oben ist die Syntax für die Abfrage einer einzelnen Tabelle=

= Nachfolgend sehen Sie die Syntax zum Verbinden zweier Tabellen =

=========================

5.6. Abfrage für Join-Tabellen

Wird verwendet, wenn Sie Daten aus mehreren Tabellen verknüpfen müssen. Lernen Sie einfach Left Join und Inner Join.

Linke Verbindung: Wählen Sie alle Datensätze in der linken Tabelle aus, unabhängig davon, ob die rechte Tabelle damit übereinstimmt. Die linke Tabelle ist die Mastertabelle und die Informationen in der rechten Tabelle sind verknüpft.

wähle * von t1 links, verbinde t2 mit t1.Feld1=t2.Feld2;

Inner Join: Wählt nur die Datensätze aus, die in den beiden Tabellen zueinander passen, wenn keine Übereinstimmung besteht, ist das Ergebnis leer

Wähle * aus t1 innerem Join t2 auf t1.Feld1=t2.Feld2;

wähle * aus t1,t2, wobei t1.Feld1=t2.Feld2;

5.7. Unterabfragen

Wird verwendet, wenn ein anderes Abfrageergebnis als Abfragebedingung benötigt wird. Unterabfragen sind in "()" eingeschlossen.

Beispiel: Abfrage der Noten des Schülers „Zhang San“

In einigen Fällen kann eine Unterabfrage in eine Join-Table-Abfrage umgewandelt werden. Das obige Beispiel kann als Join-Tabellenabfrage geschrieben werden:

5.8. Datensatzvereinigung

Kombinieren Sie die Abfrageergebnisse von zwei oder mehr Tabellen zu einem Ergebnissatz für die Ausgabe. Voraussetzung für das Zusammenführen ist, dass die Anzahl der Abfrageergebnisfelder mehrerer Tabellen gleich sein muss. Beachten Sie, dass es sich um die Anzahl der Abfrageergebnisfelder handelt, nicht um die Anzahl der Tabellenfelder.

wähle f1,f2,...,fn aus t1

Gewerkschaft/Gewerkschaft alle

wähle f1,f2,...,fn aus t2

...

Gewerkschaft/Gewerkschaft alle

wähle f1,f2,...,fn aus tn

Wenn die Anzahl der Abfrageergebnisfelder nicht gleich ist, wird ein Fehler gemeldet

Feste Anzahl von Abfrageergebnissatzfeldern

5.9. Ausführungsreihenfolge von Select-Anweisungen

Auch die eigene Kontrolle, ob die Ausführungsreihenfolge korrekt ist, kann als Festigung des zuvor erlernten Wissens angesehen werden.​

(7) AUSWÄHLEN

(8) DISTINCT <Auswahlliste>

(1) FROM <linke_Tabelle>

(3) <join_type> JOIN <rechte_Tabelle>

(2) ON <Beitrittsbedingung>

(4) WHERE <Wo_Bedingung>

(5) GRUPPE NACH <Gruppenliste>

(6) HAVING <Haben_Bedingung>

(9) ORDER BY <order_by_condition>

(10) LIMIT <limit_number>​

6. Zusammenfassung

Bisher haben wir die Einfüge-, Aktualisierungs-, Lösch- und Abfrageanweisungen für Tabellendaten besprochen, die im täglichen Betrieb am häufigsten verwendet werden. Im Mittelpunkt der DML-Anweisungen steht die komplexeste Abfrageanweisung, auch DQL-Anweisung genannt.

Dies ist das Ende dieses Artikels über die DML-Anweisungen im MySQL-Grundlagen-Tutorial. Weitere Informationen zu den DML-Anweisungen in den MySQL-Grundlagen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

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

<<:  Zusammenfassung der wichtigsten Docker-Befehle für Entwickler

>>:  Was Sie über Responsive Design wissen müssen

Artikel empfehlen

Analyse und Lösung zur Leistungsoptimierung von Vue.js-Anwendungen

Inhaltsverzeichnis 1. Einleitung 2. Warum brauche...

Die vollständige Liste der MIME-Typen

Was ist ein MIME-TYP? 1. Zunächst müssen wir vers...

So steuern Sie die Startreihenfolge von Docker Compose-Diensten

Zusammenfassung Docker-Compose kann problemlos me...

Canvas zeichnet Rubbellos-Effekt

In diesem Artikel wird der spezifische Code zum Z...

Detaillierte Erklärung der CSS-Hintergrund- und Rahmen-Tag-Beispiele

1. CSS-Hintergrund-Tag 1. Stellen Sie die Hinterg...

6 Möglichkeiten, die von Linux-Prozessen belegten Portnummern anzuzeigen

Für Linux-Systemadministratoren ist es von entsch...

Detaillierte Erklärung der Entwurfsmuster des JavaScript-Frameworks

Inhaltsverzeichnis mvc MVP mvv Die Quelle von Vue...

MySQL-Abfrageanweisung nach Zeit gruppiert

MySQL-Abfrage nach Jahr, Monat, Woche, Tagesgrupp...

Verwenden von Vue zum Implementieren einer Timerfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Schritte zur Installation und Verwendung von VMware ESXi 6.5

Inhaltsverzeichnis Einführung Architektur Vorteil...

Lösung für das Fehlen einer chinesischen Eingabemethode in Ubuntu

Es gibt keine Lösung für die chinesische Eingabem...

MySQL View-Prinzipanalyse

Inhaltsverzeichnis Aktualisierbare Ansichten Leis...