Eine Unterabfrage (verschachtelt) ist Teil der Hauptanfrage. Dieser Unterabschnitt ist in die Erklärung in die Klausel „Wo“ eingebettet. Eine Unterabfrage wird verwendet. Alle möglichen „auswählen“, löschen usw. Aussagen mit einigen grundlegenden Operatoren wie>,<, and, =, etc. One thing that competes for this command from others is that it doesn't support the use of the “ORDER BY” command inside the subquery because we use a subquery to make the query easier, whereas the use of this clause can make it more complex. However, we can use “order by” clause in the main command. The syntax of the subquery varies for every other statement. The examples used in this guide will be favorable in explaining the respective syntaxes.
Unterabfrage und den Befehl auswählen
Betrachten Sie eine Tabelle mit dem Namen Technology. Die Tabelle wird erstellt, indem die Anweisungen „Erstellen“ und „Einfügen“ verwendet werden. Die Tabelle hat 4 Attribute (Spalte). Zeigen Sie den Inhalt der Tabelle mit der Auswahlanweisung an.
>> aus der Technologie auswählen;Wir werden eine Unterabfrage auf diese Tabelle anwenden. Diese Unterabfrage bezieht sich auf die Verwendung der Anweisung „SELECT“. Unterabfrage funktioniert in einer solchen Situation, wenn Sie mehr als eine Bedingung auf einer einzelnen Tabelle anwenden müssen. Die Hauptabfrage wählt einen Teil der Tabelle aus, während die Unterabfrage die REST -Tabelle auswählt. Das Konzept wird klar sein, nachdem das gegebene Beispiel verstanden wird. Die Auswahlanweisung selbst wird in vielerlei Hinsicht in vielerlei Hinsicht verwendet. Alle möglichen Methoden werden hier nacheinander erläutert. Lassen Sie uns die Beispiele beginnen.
>> Wählen Sie T1.Name, T1.Jahr, (Select min (ID) aus T2 Where T1.id = t2.ID) Unterabfrage1 aus Technologie T1;Erläuterung dieser Abfrage erforderte das Konzept der Objekterstellung. Aus der Abfrage ist klar, dass auf die Spaltennamen der Tabelle über das Referenzschreiben zugegriffen werden, das an den meisten Stellen als Objekt bezeichnet wird. Der erste SELECT -Befehl, der Hauptbefehl, holt zwei Spaltennamen und das Jahr durch „T1“ ab, während die 3. Spalte von der Unterabfrage abhängt. Ein weiterer SELECT -Befehl wird verwendet, um die ID der Technologie -Tabelle abzurufen, deren Name als "SubQuery1" festgelegt ist. Hier wird ein Zustand angewendet; Die IDs werden in der resultierenden Tabelle angezeigt, wenn die Bedingung erfüllt ist. Eine weitere Ansicht der Tabelle wird erstellt, die von „T2“ abgerufen wird. Erstens erfolgt der Vergleich zwischen den IDs von T1 und T2. Wenn beide IDs gleich sind, zeigen Sie sie im Ergebnis mit den beiden anderen Spalten an. Mit anderen Worten, die gesamte ID -Spalte wird ausgewählt, da die Spalte in beiden Tabellen gleich ist.
Wenn Sie sich zum nächsten Beispiel „auswählen“ bewegen, ist dieses Beispiel einfach im Vergleich zum letzten, da kein zusätzliches Zugriffsobjekt verwendet wird. Wie wir das zuerst wissen, wird das Unterbild vom System ausgeführt. Im Unterbild wird der Zustand auf eine Spalte der Tabelle angewendet, in der die Modellnummer größer als 3 sein sollte. Wenn das System die resultierenden Faktoren des Unterbildes erhält, wird es die Hauptabfrage auf sich selbst implementieren. Beispielsweise werden alle anderen Daten der Spalten gemäß dem Ergebnis des Unterbilds angezeigt.
>> aus der Technologie auswählen, wobei ID in (ID aus der Technologie auswählen, wobei Modelle> 3);Sie können sehen, dass eine einzelne Zeile aus der Tabelle entfernt wird, die den Zustand nicht erfüllte. Eine Sache, die Sie im Kopf haben müssen. Die Antwort ist, dass die Unterquerie die komplexe Abfrage in isolierte Teile unterteilt. Die Genauigkeitsmessungen erhöhen das n-te Mal in Untergeschäft mehr als die Verwendung eines einzelnen Befehls.
Wir haben jetzt zu einem anderen Tisch namens "gewechselt"Probe1”. Die Tabelle hat drei Spalten; Einer ist Alter. Wir werden zuerst eine einfache Auswahlanweisung anwenden, um das Durchschnittsalter der Person zu berechnen, da dieses Durchschnittsalter in der Tabelle weiter verwendet wird.
>> aus sample1 auswählen; >> AVG (Alter) aus Sample1 auswählen;AVG (Spaltenname) ist eine integrierte Funktion von Postgres. Hier wird eine Unterabfrage verwendet; Die Abfrage zeigt Menschen mit einem Alter, das größer als das durchschnittliche Alter berechnet wird. Die Unterabfrage holt das Durchschnittsalter des Säulenalters ab.
>> aus sample1 auswählen wobei Alter> (AVG (Alter) aus Sample1);2 Zeilen werden ausgewählt, da diese Altersgruppen größer waren als das Durchschnittsalter.
Unterfragen Sie unter Verwendung einer Einfügungsanweisung
Bis jetzt haben wir auf einer einzelnen Tabelle Teilgeschäfte verwendet. Aber jetzt gibt es ein Beispiel dafür. Zu diesem Zweck haben wir hier zwei Tische verwendet. Eine ist Software und das andere ist ein System. Rufen Sie den Datensatz über die Auswahlanweisung für beide Tabellen ab.
>> aus der Software auswählen;Jetzt werden wir den Unterbild auf die angegebenen Tabellen anwenden.
Wählen Sie die Anweisung als Hauptabfrage auch in diesem Fall verwendet werden. In diesem Beispiel wird jedoch „Einfügung“ verwendet. Diese Anweisung fügt eine Zeile in einer Tabelle in Bezug.
>> In Software (ID, Name) einfügen, wählen Sie ID, Name vom System Where System.ID> 5 und System.Name = 'Windows';Der "System"Tabellenwerte werden in die Tabelle" Software "eingefügt, indem die ID der Tabellen und die Namen der Tabellen übereinstimmt. Jede Spalte der verschiedenen Tabelle wird über den Tabellennamen angegeben. Die Unterabfrage basiert auf dem “wählen”Anweisung hier, um den Datensatz in zwei Spalten der Tabelle abzurufen.
Tabelle mit der Unterabfrage ändern
Betrachten Sie nun einen anderen Tabellennamen "Sample1", mit Namen, IDs und Ewigkeiten der Personen mit. Und die andere Tabelle ist die gleiche wie im vorherigen Beispiel eingeführten “System”.
Die Update -Abfrage wird verwendet, um die Tabelle zu ändern, indem die vorherige durch das neue im Befehl ersetzt wird. Während im Fall der Unterabfrage der Wert nicht direkt angegeben ist. Es wird aus der Unterabfrage in der zweiten Tabelle abgerufen.
>> aktualisieren Sie Sample1 Set name = (Wählen Sie den Namen aus dem System, wobei das System ausgewählt werden.id = sample1.Ausweis);Dieser Befehl “Probe1Die Tabelle wird aktualisiert, indem der Name aus der Tabelle „System“ ausgewählt wird, in der beide IDs gleich sind. Die resultierende Probe1 -Tabelle zeigt die beiden Zeilen. Als ID und der Name wurden ausgewählt, so blieb die Altersspalte intakt.
Unterabfrage und Löschen Anweisung
Eine Löschanweisung wird verwendet, um die Werte einer Tabelle aus der anderen zu entfernen. Da wir beide Tabellen verwendet haben, werden die Werte zur Aktualisierung einer anderen Tabelle gelöscht.
>> vom System löschen, wo existieren.id = sample1.Ausweis );Wenn wir die Tabelle nach dem Löschen abrufen, können wir sehen, dass eine einzelne Zeile mit dem ''wählen' Stellungnahme.
Abschluss
“PostgreSQL Unterabfrage”Ist ein wichtiges Merkmal dieser Plattform, um die Abfragen leicht verständlich zu halten. In diesem Artikel haben wir die Verwendung von Unterabfragen in jeder Perspektive von SELECT, Einfügen, Aktualisieren und Löschen von Befehlen erörtert. Ich bin zuversichtlich, dass diese Bemühungen Ihnen helfen, wenn Sie Befehle verwenden PostgreSQL.