Tutorial der MySQL-Reihe zum Verständnis der Verwendung der Schlüsselwörter „union“ (alles), „limit“ und „exists“

Tutorial der MySQL-Reihe zum Verständnis der Verwendung der Schlüsselwörter „union“ (alles), „limit“ und „exists“

1.union: Sie können Abfrageergebnisse hinzufügen

Union wird zum Hinzufügen von Abfrageergebnissen verwendet, insbesondere wenn Daten aus zwei nicht verwandten Tabellen zur Anzeige zusammengeführt werden.
Allerdings gibt es eine Voraussetzung: Beim Zusammenführen unterschiedlicher Ergebnisse muss die Spaltenanzahl gleich sein.

Verwenden Sie die folgenden Daten, um die Verwendung von Union zu veranschaulichen:

Bildbeschreibung hier einfügen

1) union all: Duplikate können nicht entfernt werden

Bildbeschreibung hier einfügen

2) Union: kann den Effekt der Deduplizierung erzielen.

Bildbeschreibung hier einfügen

2.limit: Paging-Abfrage hängt davon ab

1) Einige Erläuterungen zur Verwendung von Limit

① Das Limit ist einzigartig für MySQL und existiert nicht in anderen Datenbanken. Es ist also nicht universell.

② Limit übernimmt einen Teil der Daten im Ergebnissatz, das ist seine Funktion.

③ Limit ist der letzte Schritt bei der Ausführung der SQL-Anweisung;

Die Syntax zur Verwendung von Limit lautet:

Limit StartIndex, Länge; StartIndex gibt die Startposition an, beginnend bei 0, 0 gibt das erste Datenstück an und Länge gibt an, wie viele Stücke genommen werden sollen.

2) Fallbeschreibung

Die Datenquellen sind wie folgt:

Bildbeschreibung hier einfügen

① Wählen Sie die fünf Mitarbeiter mit dem höchsten Gehalt aus und zeigen Sie ihre Informationen an.

Bildbeschreibung hier einfügen

② Finden Sie die Mitarbeiter, deren Gehälter auf den Plätzen 4 bis 9 liegen.

Bildbeschreibung hier einfügen

3) Allgemeines Standard-Paging-SQL

Bildbeschreibung hier einfügen

Aus der obigen Abbildung können wir Folgendes ableiten:

Bildbeschreibung hier einfügen

Nehmen wir zum Beispiel den Baidu-Browser:

Bildbeschreibung hier einfügen

3. Exists-Verwendung: auch bekannt als „korrelierte Unterabfrage“

Bildbeschreibung hier einfügen

1) Lassen Sie uns das Ausführungsprinzip von exists verstehen

Die Datenquellen sind wie folgt:

Bildbeschreibung hier einfügen

① Wenn das zurückgegebene Ergebnis eine Datensatzzeile ist

Bildbeschreibung hier einfügen

② Wenn das zurückgegebene Ergebnis mehrere Datensatzzeilen umfasst

Bildbeschreibung hier einfügen

③ Prinziperklärung

Aus der obigen Abbildung können wir ersehen, dass unabhängig von der SQL-Anweisung nach dem Schlüsselwort „exists“ und unabhängig davon, ob ein Ergebnis oder mehrere Ergebnisse abgefragt werden, das gesamte Ergebnis True ist, solange das Ergebnis gefunden wird. True wird in MySQL durch 1 dargestellt, sodass das Endergebnis 1 ist. Wenn die SQL-Anweisung nach dem Schlüsselwort exists keine Ergebnisse liefert, ist der endgültige Rückgabewert False. In MySQL wird False durch 0 dargestellt, das endgültige Ergebnis ist also 0.

2) Falldemonstration

Führen Sie mithilfe der unten stehenden Datenquelle die folgenden beiden Übungen durch.

Bildbeschreibung hier einfügen

① Fragen Sie die Job-Tabelle ab, um zu sehen, welcher Job ausgeführt wird.

Bildbeschreibung hier einfügen

② Fragen Sie die Job-Tabelle ab. Welcher Job wird nicht ausgeführt?

Bildbeschreibung hier einfügen

3) Ein Diagramm, das das Prinzip der Existes-Unterabfrage veranschaulicht

Bildbeschreibung hier einfügen

Die Erklärung lautet wie folgt:

„Es gibt eine Firma A. Alle Jobs in der Firma stehen in der Tabelle jobs. Die Tabelle emp zeigt, welche Jobs erledigt wurden.“
Wählen Sie jobs.job
von Arbeitsplätzen
wo nicht existiert (select * from emp where jobs.job=emp.job);

1) Finden Sie heraus, welche Ergebnisse Sie erzielen möchten.
Was Sie hier erhalten möchten, ist „welche Jobs nicht erledigt sind“, d. h. die zurückgegebenen Ergebnisse stammen aus der Jobs-Tabelle, aber
„Woher wissen wir, welche Jobs erledigt werden und welche nicht?“ Hierzu müssen wir auf die emp-Tabelle zurückgreifen.

2) Nehmen Sie zunächst den ersten Datensatz aus der Tabelle „Jobs“ und fügen Sie ihn in die Tabelle „Emp“ ein, um ihn mit jeder Zeile in der Tabelle abzugleichen. Wenn das Pferd
Wenn Sie die erste Zeile abgleichen, was genau möchten Sie abgleichen, da jede Zeile in der emp-Tabelle 8 Spalten hat? Sollten Sie angeben
Geben Sie Folgendes an, nämlich "where jobs.job = emp.job". Diese Bedingung gibt an, dass ich
Nehmen Sie den ersten Datensatz aus der Tabelle und ordnen Sie ihn jeder Zeile in emp zu. Genauer gesagt, mit Ihrer ersten Zeile
Um das Jobfeld abzugleichen, müssen Sie nur prüfen, ob jobs.job und emp.job gleich sind. Wenn sie gleich sind, geben Sie den Datensatz zurück.
Nehmen Sie dann die erste Zeile und gleichen Sie sie der Reihe nach ab. Solange jobs.job und emp.job gleich sind, geben Sie zurück
Dieser Datensatz. Wenn daher die erste Zeile in „jobs“ mit jeder Zeile in „emp“ übereinstimmt, wird ein Ergebnissatz zurückgegeben.

3) Schauen wir uns das Schlüsselwort exists an. Das von exists() zurückgegebene Ergebnis ist true oder false. Wenn in den Klammern ein Wert steht,
Wenn es vorhanden ist, wird „true“ zurückgegeben; wenn in den Klammern kein Wert steht, wird „false“ zurückgegeben. Nach (1)
Wie wir wissen, wird, nachdem die erste Zeile in „jobs“ mit jeder Zeile in „emp“ übereinstimmt, ein Ergebnissatz zurückgegeben, was beweist, dass ein Ergebnissatz zurückgegeben wurde.
Wert, also gibt exists() true zurück.

4) Wenn vor exists() ein „not“ hinzugefügt wird, bedeutet dies eine Negation. exists() gibt true zurück, nicht exists()
Der Rückgabewert ist false.

5) Gemäß der obigen Beschreibung ist die ursprüngliche Anweisung, wenn not exists() falsch wird, gleichwertig mit:
Wählen Sie jobs.job aus Jobs, wo false;
Aus diesem Grund kann die erste Angestelltenreihe nicht abgerufen werden.

6) Nehmen Sie als Nächstes die zweite Zeile „SALESMAN“ in „Jobs“ und gleichen Sie sie mit jeder Zeile in der Tabelle „emp“ ab.
Wiederholen Sie die obigen Schritte.

Oben finden Sie den detaillierten Inhalt der MySQL-Artikelserie zum Verständnis der Schlüsselwörter „union (all), limit“ und „existiert“. Weitere Informationen zur MySQL-Serie der Schlüsselwörter „union (all), limit“ und „existiert“ finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Eine kurze Diskussion zur MySQL-Select-Optimierungslösung
  • MySQL-Beispiel-Tutorial: Ergebnisse auswählen, um ein Update durchzuführen
  • Beheben Sie das Problem, dass die Lese-/Schreibtrennung von MySQL dazu führt, dass Daten nach dem Einfügen nicht ausgewählt werden
  • Wie die MySQL Select-Anweisung ausgeführt wird
  • Detailliertes Beispiel zur Verwendung der distinct-Methode in MySQL
  • Sollte ich zum Entfernen von Duplikaten in MySQL „distinct“ oder „group by“ verwenden?
  • Der Unterschied zwischen distinct und group by in MySQL
  • Lassen Sie uns ausführlich über die LIMIT-Anweisung in MySQL sprechen
  • Die Auswirkungen des Limits auf die Abfrageleistung in MySQL
  • Verwendung von „Select“, „Distinct“ und „Limit“ in MySQL

<<:  Eine vollständige Liste häufig verwendeter gemeinsamer Codes für Webseiten (wichtig für das Front-End)

>>:  HTML-Lernhinweise – Detaillierte Erklärung der HTML-Syntax (unbedingt lesen)

Artikel empfehlen

Einfache Schritte zum Schreiben benutzerdefinierter Anweisungen in Vue3.0

Vorwort Vue bietet eine Fülle integrierter Anweis...

MySQL-Abfrageanweisung nach Zeit gruppiert

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

Verwenden von JavaScript zum Implementieren von Karusselleffekten

In diesem Artikel wird der spezifische Code für J...

Preistabelle mit CSS3 implementiert

Ergebnis: Implementierungscode html <div id=&q...

Beispielcode zur Realisierung eines Buchseitenumblättereffekts mit CSS3

Wichtige Erkenntnisse: 1. Beherrschung der CSS3-3...

Detaillierte Erläuterung der allgemeinen Docker-Befehle Study03

Inhaltsverzeichnis 1. Hilfe-Befehl 2. Befehl „Spi...

Datagrip2020 kann MySQL-Treiber nicht herunterladen

Wenn Sie es nicht durch direktes Klicken auf „Dow...

Lösung zum Vergessen des MySQL-Root-Passworts in MACOS

MySQL ist ein relationales Datenbankverwaltungssy...

Beispiel für den schnellen Aufbau einer LEMP-Umgebung mit Docker

LEMP (Linux + Nginx + MySQL + PHP) ist heutzutage...