Heim  >  Artikel  >  Datenbank  >  Detaillierte Einführung in die MySQL-Unterabfrage

Detaillierte Einführung in die MySQL-Unterabfrage

零下一度
零下一度Original
2017-07-23 11:22:152724Durchsuche

MySQL ist ein relationales Datenbankverwaltungssystem, das von der schwedischen Firma MySQLAB entwickelt wurde und derzeit ein Produkt von Oracle ist. MySQL ist eines der beliebtesten relationalen Datenbankverwaltungssysteme. Im Hinblick auf Webanwendungen ist MySQL die beste RDBMS-Anwendungssoftware (Relational Database Management System).

Detaillierte Einführung in die MySQL-Unterabfrage

MySQL unterstützt seit Version 4.1 die Unterabfragefunktion. Vor dieser Version können Sie stattdessen Join verwenden, um eine Tabellenabfrage zu schreiben, es wird jedoch nicht empfohlen, diese auf diese Weise zu schreiben ist ziemlich mühsam. Im Folgenden sind einige gängige Methoden zum Schreiben von MySQL-Unterabfragen aufgeführt:

1.select*fromxxxwherecol=[any|all](select*fromxxxx);

Diese Syntax kann in das Hinzufügen von Schlüsselwörtern unterteilt werden und nicht Schlüsselwörter hinzufügen,

Wenn keine Schlüsselwörter hinzugefügt werden,

, gibt die Unterabfrageanweisung einen diskreten Wert zurück

(beachten Sie, dass es sich um einen handelt), die Abfrageanweisung verwendet das Ergebnis der Unterabfrageanweisung als Bedingung Ihrer eigenen abzufragenden WHERE-Klausel. Diese Syntax kann Schlüsselwörter wie „any“, „all“ und „existiert“ vor der Unterabfrageanweisung hinzufügen. Zu diesem Zeitpunkt gibt die Unterabfrageanweisung einen Satz diskreter Werte zurück. beliebige Mittel, Abfrage

Die Anweisung verwendet den von der Unterabfrage zurückgegebenen Wert als Bereich und fragt innerhalb dieses Wertebereichs ab, was dem Schlüsselwort „in“ ähnelt, was nicht leicht zu verstehen ist dass alle Übereinstimmungen von.

2.select*fromxxxwherecolin(select*fromxxxx);

Die Syntax ist ziemlich klar, das heißt, die where-Klausel der Abfrageanweisung verwendet das Ergebnis der Unterabfrageanweisung als Gültigkeitsbereich. Das ist das Gleiche wie oben. Eine grammatikalische Ähnlichkeit mit irgendjemandem.

 3.selectrow(value1,value2.....)=[any](selectcol1,col2..);

 Die Ausführungsessenz dieser Anweisung ist:

Das aus der Ausführung der Unterabfrageanweisung erhaltene Ergebnis stimmt mit der Ergebnismenge der Abfrage überein.

Wenn eine Übereinstimmung gefunden werden kann, wird „true“ zurückgegeben, andernfalls wird „false“ zurückgegeben, und die Ergebnismengen auf beiden Seiten sind a Menge diskreter Werte.

4.select....wherecol=[not]exists(select...);

Diese Anweisung ist lahm und ihre Ausführung ist wie folgt: Wenn die Unterabfrage ausgeführt wird Die Anweisung wird nur ausgeführt, wenn die Operation ein Ergebnis zurückgibt.

Und die Anweisung wird so oft ausgeführt, wie es Ergebnisse gibt.

 5.select....from(select....)asnamewhere......

 Diese Syntax wird im täglichen Leben selten verwendet und ist nicht leicht zu verstehen. Tatsächlich ist dies der Fall.

wird durch die Ergebnisse der Unterabfrageausführung erstellt (diese Tabelle ist eine abgeleitete Datentabelle, eine virtuelle Tabelle), die als Haupttabelle verwendet wird ,

Diese Syntax ist sehr leistungsfähig und wird oft in einigen komplexen Abfragen verwendet.

Fazit des Herausgebers:

Obwohl die Unterabfrage sehr praktisch ist, weist sie keine Begrenzung auf, und Experimente haben gezeigt, dass ihre Ausführungseffizienz unter normalen Umständen recht unbefriedigend ist Es wird immer noch nicht empfohlen, Unterabfragen zu verwenden.

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die MySQL-Unterabfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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