PostgreSQL Subpquery

PostgreSQL Subpquery

Rozprzejm (zagnieżdżony) jest częścią głównego zapytania. Ta podczęść jest osadzona w klauzuli „gdzie” w oświadczeniu. Używany jest rozdzielczość, wszystkie możliwe „Wybierz”, usuń ”itp. Oświadczenia z niektórymi podstawowymi operatorami, takimi jak>,<, 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.

Podział i polecenie wyboru

Rozważ tabelę o nazwie Technology. Tabela jest tworzona przy użyciu instrukcji „Utwórz” i „wstaw”. Tabela ma 4 atrybuty (kolumna). Wyświetl zawartość tabeli za pomocą instrukcji Select.

>> Wybierz * z technologii;

Zastosujemy podział do tej tabeli. To rozdzielczość jest związana z użyciem instrukcji „Wybierz”. Rozpuszczalne działa w takiej sytuacji, gdy trzeba zastosować więcej niż jeden warunek na jednej tabeli. Główne zapytanie wybiera część tabeli, podczas gdy podtrzymanie wybiera tabelę odpoczynku. Koncepcja będzie jasna po zrozumieniu danego przykładu. Sama instrukcja Select jest używana na wiele sposobów w podziale. Wszystkie możliwe metody są tutaj wyjaśnione jeden po drugim. Zacznijmy przykłady.

>> Wybierz T1.Nazwa, T1.rok (wybierz min (id) z T2, gdzie T1.id = t2.id) subquery1 z technologii T1;

Wyjaśnienie tego zapytania wymagało koncepcji tworzenia obiektów. Z zapytania jasno wynika, że ​​nazwy kolumn tabeli są dostępne za pośrednictwem litera odniesienia, zwanego obiektem w większości miejsc. Pierwsze polecenie wyboru, główne polecenie, pobiera dwie nazwy kolumn i rok przez „T1”, podczas gdy trzecia kolumna zależy od podziału. Kolejne polecenie wybrane służy do pobrania identyfikatora tabeli technologii, której nazwa jest ustawiona jako „subquery1”. Tutaj stosuje się warunek; identyfikatory są wyświetlane w wynikającej tabeli, jeśli warunek jest spełniony. Utworzono kolejny widok tabeli, który jest pobierany przez „T2”. Po pierwsze, porównanie odbywa się między IDS zarówno T1, jak i T2. Gdy oba identyfikatory są takie same, wyświetl je w wyniku z pozostałymi dwiema kolumnami. Innymi słowy, cała kolumna ID zostanie wybrana, ponieważ kolumna jest taka sama w obu tabelach.

Przechodząc do następnego przykładu „Wybierz”, ten przykład jest prosty w porównaniu z ostatnim, ponieważ nie ma użycia żadnego dodatkowego obiektu dostępu. Jak wiemy, po pierwsze, podkład jest wykonywany przez system. W podkładu warunek jest stosowany w kolumnie tabeli, gdzie liczba modelu powinna być większa niż 3. Gdy system otrzyma wynikowe czynniki podkładu, główne zapytanie zaimplementuje je. Na przykład wszystkie inne dane kolumn zostaną wyświetlone odpowiednio zgodnie z wynikowym podkładem.

>> Wybierz * Z technologii, w której identyfikator ID (wybierz ID z technologii, gdzie modele> 3);

Widać, że pojedynczy rząd jest usuwany z tabeli, który nie spełniał warunku. Jedną rzeczą, którą musisz mieć w głowie, jest pytanie, dlaczego użyliśmy tutaj podkładu, warunek można zastosować z klauzulą ​​„gdzie” bezpośrednio w instrukcji Select. Odpowiedź jest taka, że ​​podporządkowanie dzieli złożone zapytanie na izolowane części. Środki dokładności zwiększają n-tym czasy więcej w ”.

Przełączyliśmy się teraz w kierunku innego stolika o nazwie „próbka 1". Tabela ma trzy kolumny; jeden to wiek. Najpierw zastosujemy prostą instrukcję wybraną, aby obliczyć średni wiek osoby, ponieważ ten średni wiek zostanie wykorzystany dalej w tabeli.

>> Wybierz * z próbki 1; >> Wybierz AVG (wiek) z próbki 1;

AVG (nazwa kolumny) to wbudowana funkcja postgres. Tutaj stosuje się rozkład; Zapytanie wyświetli osoby z wiekiem większym niż średni wiek. Substancja przyniesie średni wiek wieku kolumny.

>> Wybierz * z próbki 1 gdzie wiek> (wybierz AVG (wiek) z próbki 1);

2 rzędy są wybierane, ponieważ te wieki były większe niż średni wiek.

Zastępca za pomocą instrukcji Insert

Do tej pory użyliśmy podkładu na jednym stole. Ale teraz istnieje przykład użycia głównego zapytania na jednym stole i podkładce na drugiej. W tym celu użyliśmy dwóch tabel tutaj. Jeden to oprogramowanie, a drugi to system. Pobierz rekord za pomocą instrukcji Select dla obu tabel.

>> Wybierz * z oprogramowania;

Teraz zastosujemy podkład do podanych tabel.

Wybierz instrukcję jako główne zapytanie można również użyć w tym przypadku. Ale w tym przykładzie używana jest „wstawka”. To stwierdzenie doda wiersz w jednej tabeli dotyczącej wartości w wierszu innej tabeli za pomocą klauzuli „gdzie”.

>> Wstaw do oprogramowania (id, nazwa) Wybierz identyfikator, nazwa z systemu, gdzie system.Id> 5 i system.name = „Windows”;

„„system„Wartości tabeli są wstawiane do tabeli„ Oprogramowanie ”, dopasowując zarówno identyfikator i nazwy tabel, jak i nazwy. Każda kolumna innej tabeli jest określona za pomocą nazwy tabeli. Podział opiera się na „wybierać”Oświadczenie tutaj, aby pobrać rekord w dwóch kolumnach tabeli.

Zmień tabelę z podziałem

Teraz rozważ inną nazwę tabeli: „próbka 1”, mając nazwiska, identyfikatory i wieki ludzi. A druga tabela jest taka sama, jak wprowadzona w poprzednim przykładzie „system".

Zapytanie o aktualizację służy do zmiany tabeli poprzez zastąpienie poprzedniego nowym podanym w poleceniu. Podczas gdy w przypadku podziału wartość nie jest bezpośrednio podana. Jest pobierany z rozdzielczości zastosowanej w drugiej tabeli.

>> aktualizacja próbka.id = próbka 1.ID);

To polecenie „próbka 1”Tabela jest aktualizowana przez wybór nazwy z tabeli„ System ”, w której oba identyfikatory są takie same. Powstała tabela próbki 1 pokazuje dwa wiersze. Jak wybrano identyfikator i nazwę, więc kolumna wiekowa pozostała nienaruszona.

Instrukcja substancji i usunięcia

Instrukcja Usuń służy do usunięcia wartości jednej tabeli z drugiej. Ponieważ użyliśmy obu tych samych tabel, wartości użyte do aktualizacji innej tabeli zostaną usunięte.

>> Usuń z systemu tam, gdzie istnieje (wybierz nazwę z próbki 1, gdzie system.id = próbka 1.ID );

Kiedy pobieramy tabelę po usunięciu, widzimy, że pojedynczy rząd został za pomocą 'wybierać' oświadczenie.

Wniosek

"PostgreSQL Subpquery”Jest ważną cechą tej platformy, która utrzymuje zapytania łatwe do zrozumienia. W tym artykule omówiliśmy użycie podziału w każdej perspektywie poleceń wyboru, wstawienia, aktualizacji i usuwania. Mam nadzieję, że ten wysiłek pomoże ci podczas korzystania z poleceń PostgreSQL.