Postgres Subqueries

Introduksjon

når du oppretter EN SQL-setning I PostgreSQL, kan det hende at du må bygge inn en ANNEN SQL-spørring i setningen. Disse nestede eller innebygde spørringene kalles delspørringer, og de gir en effektiv måte å få dataene du trenger fra EN SQL-setning. I denne artikkelen vil Vi ta en nærmere titt På Postgres subqueries og gjennomgå noen eksempler som viser hvordan du bruker dem.

Forutsetning

før du begynner denne opplæringen, må du kontrollere at du har installert og konfigurert følgende på maskinen:

  • PostgreSQL

Grunnleggende PostgreSQL kunnskap er også nødvendig for å kunne følge med opplæringen.

Hva Er En Postgres Subquery?

Som navnet antyder, Er En Postgres-spørring en spørring nestet i en ANNEN SQL-spørring eller-setning. Delspørringen returnerer data som deretter brukes i hovedspørringen som en del av betingelsene som er angitt i WHERE – setningsdelen.

Opprette Eksempeldatasett

i denne delen oppretter vi et eksempeldatasett som vi kan bruke i eksemplene våre. Vi må logge Inn På Postgres-skallet for å opprette databasen og tabellen.

  • vi kan lage vår database ved hjelp av følgende kommando:
1
opprett databaseprodukt
  • Vi kan da lage tabeller for databasen med følgende struktur:
1
2
3
4
5
6
7
8
9
10
OPPRETT TABELL hvis den IKKE finnes lager (
ID SERIELL PRIMÆRNØKKEL,
kategori_id TEGN VARIERENDE (100),
produktnavn TEGN VARIERENDE (100),
sku TEGN VARIERENDE (100),
BESKRIVELSE TEGN VARIERENDE (100),
pris INT,
antall INT
);

Til Slutt setter vi inn prøveposter:

1
2
3
4
5
6
7
SETT inn i lager(id,category_id, product_name, sku, beskrivelse, pris, mengde)
VERDIER
(1, ‘M01’, ‘Monitor 22inch’, ‘HW020’, ‘Dataskjerm 22inch’, 300, 100),
(2,’M02′, ‘Termisk Pasta’, ‘HW040’, ‘CPU termisk pasta’, 2, 130),
(3,’M03′, ‘Krympeverktøy’, ‘HW021’, ‘Nettverksverktøy’, 14, 10),
(4,’M01′, ‘Tastatur’, ‘HW098’, ‘Datatastatur’, 3, 25),
(5,’M01′, ‘SSD 250GB’, ‘HW033′,’ Ssd-Stasjon’, 24, 60);

nå, la oss lage en annen tabell kalt ‘kategori’ ved hjelp av følgende struktur:

1
2
3
4
OPPRETT TABELL hvis ikke finnes kategori (
kategori_id TEGN VARIERENDE (100),
kategori_navn TEGN VARIERENDE(100)
);

vi setter også inn eksempelposter i denne tabellen:

1
2
3
4
5
SETT inn i kategori (category_id,category_name)
VERDIER
(‘M01′,’Pheriperals’),
(‘M02’, ‘Diverse Materialer’),
(‘M03’, ‘Nettverk’);

de to tabellene skal se ut som følgende:

LAGERBORD

1
2
3
4
5
6
7
8
id / category_id / produktnavn / varenummer / beskrivelse / pris | quantity
—-+————-+—————–+——-+————————-+——-+———-
1 | M01 | Skjerm 22inch | HW020 | dataskjerm 22inch | 300 | 100
2 | M02 | Termisk Lim | HW040 | CPU termisk lim | 2 | 130
3 | M03 | Krympeverktøy | HW021 | Nettverk verktøy | 14 | 10
4 | M01 | Tastatur | HW098 | Datatastatur | 3 | 25
5 | M01 | Ssd 250gb | HW033 | Solid State-Stasjon | 24/60
( 5 rader)

KATEGORI TABELL

1
2
3
4
5
6
kategori_id / kategori_navn
————-+————————-
M01 / Pheriperals
M02/Diverse Materialer
M03/Nettverk
( 3 rader)

Postgres Subqueries Eksempel

Nå som vi har opprettet vårt utvalgsdatasett, kan vi se på noen eksempler som illustrerer hvordan Du bruker Postgres subqueries:

1
2
3
4
5
6
7
8
9
10
11
12
13
VELG
id,
produktnavn,
pris
fra
lager
HVOR
pris >(
VELG
AVG (pris)
fra
lager
);

la oss diskutere denne spørringen litt mer detaljert.

  • legg først merke til spørringen som er vedlagt i parentes:
1
2
3
4
VELG
SNITT (pris)
fra
lager
  • Postgres utfører spørringene i rekkefølge, fra den innerste delen.
  • etter behandling av delspørringen, vil resultatet bli returnert til den ytre spørringen.
  • til Slutt vil den ytre spørringen bli utført.

utgangen skal se slik ut:

1
2
3
4
id / produktnavn / pris
—-+—————–+——-
1 | Skjerm 22inch / 300
( 1 rad)

La oss se på et annet eksempel der vi bruker en delquery i en FROM – klausul:

1
2
3
4
5
6
VELG lager.product_name, the_subquery.category_name
FRA lager,
(VELG kategori.kategori_id, kategori.category_name, COUNT (category_id) som total
FRA kategori
GRUPPE etter kategori.kategori_id, kategori.category_name) the_subquery
HVOR the_subquery.category_id = lager.kategori_id;
1
2
3
(VELG kategori.kategori_id, kategori.category_name, COUNT (category_id) som total
FRA kategori
GRUPPE etter kategori.kategori_id, kategori.category_name) the_subquery

i spørringen ovenfor plasserte vi subquery under aliaset ‘the_subquery’. Dette aliaset vil bli brukt som en referanse til subquery.

utgangen skal se omtrent slik ut:

1
2
3
4
5
6
7
8
produktnavn / kategori_navn
—————–+————————-
SSD 250gb / Pheriperals
Tastatur/Pheriperals
Monitor 22inch/Pheriperals
Termisk Lim / Diverse Materialer
Krympeverktøy / Nettverk
( 5 rader)

Konklusjon

hvis du trenger å konstruere en mer kompleks spørring for å få dataene du trenger, Kan En Postgres subquery være nødvendig for å utføre oppgaven. Delspørringer er nestet i den ytre spørringen; resultatene som returneres fra dem, brukes deretter som en del av WHERE – klausulen i hovedspørringen. I denne artikkelen forklarte vi hvordan Du bruker En Postgres subquery og så på noen eksempler PÅ SQL-setninger som inkluderer subqueries. Med disse eksemplene og forklaringene har du ikke noe problem med å implementere underspørringer i dine egne databasespørringer.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.