Postgres Subqueries

Johdanto

kun luot SQL-lauseketta PostgreSQL: ssä, saatat huomata, että sinun täytyy upottaa toinen SQL-kysely lausekkeeseesi. Nämä sisäkkäiset tai upotetut kyselyt tunnetaan alijonoina, ja ne tarjoavat tehokkaan tavan saada tarvitsemasi tiedot SQL-lausekkeesta. Tässä artikkelissa, otamme lähemmin Postgres subqueries ja tarkistaa joitakin esimerkkejä, jotka osoittavat, miten niitä käytetään.

Ennakkovaatimus

ennen kuin aloitat tämän opetusohjelman, varmista, että olet asentanut ja määrittänyt koneeseesi seuraavat asetukset:

  • PostgreSQL

PostgreSQL: n perusosaamista vaaditaan myös, jotta sitä voi seurata opetusohjelman mukana.

mikä on Postgres-alalaji?

kuten nimestä voi päätellä, Postgres-kysely on toisen SQL-kyselyn tai lausekkeen sisään sisäkkäinen kysely. Alikuvaus palauttaa tiedot, joita sitten käytetään pääkyselyssä osana WHERE lausekkeessa määriteltyjä ehtoja.

luodaan Otosaineisto

tässä osiossa luodaan otosaineisto, jota voimme käyttää esimerkeissämme. Meidän täytyy kirjautua Postgres-komentotulkkiin luodaksemme tietokannan ja taulukon.

  • voimme luoda tietokantamme seuraavalla komennolla:
1
luo tietokantatuote
  • voimme sitten luoda taulukoita tietokantaan, jossa on seuraava rakenne:
1
2
3
4
5
6
7
8
9
10
Luo taulu, jos sitä ei ole varastossa (
id serial PRIMARY KEY,
category_id CHARACTER variable (100),
product_name CHARACTER variable (100),
description CHARACTER variable (100),
price INT,
quantity INT
);

lopuksi lisäämme näytetiedot:

1
2
3
4
5
6
7
lisää varastoon(id,category_id, product_name, sku, description, price, quantity)
arvot
(1, ”M01”, ”Monitor 22inch”, ”HW020”, ”Computer monitor 22inch’, 300, 100),
(2,’M02″, ”Thermal Paste”, ”HW040”, ”CPU thermal paste’, 2, 130),
(3,’M03″, ”puristustyökalu”, ”HW021”, ”Verkostoitumistyökalu’, 14, 10),
(4,’M01′, ’Keyboard’, ’Hw098’, ’Computer Keyboard’, 3, 25),
(5,’M01″, ”SSD 250GB”, ”HW033”, ”Solid State Drive”, 24, 60);

nyt, Let ’s luoda toisen taulukon nimeltä ’Luokka’ käyttäen seuraavaa rakennetta:

1
2
3
4
Luo taulukko, jos sitä ei ole Luokka (
category_id-merkki vaihteleva(100),
category_name-merkki vaihteleva(100)
);

lisäämme näytetiedot myös tähän taulukkoon.:

1
2
3
4
5
lisätään luokkaan (category_id,category_name)
arvot
(”M01”, ”Pheriperals”),
(”M02”, ”sekalaiset Materiaalit”),
(”M03”, ”verkostoituminen’);

kahden taulukon tulisi näyttää seuraavilta:

KANTATAULUKKO

1
2
3
4
5
6
7
8
id / category_id | product_name / sku | description / price | quantity
—-+————-+—————–+——-+————————-+——-+———-
1 | M01 | Monitor 22inch | HW020 | Computer monitor 22inch | 300 | 100
2 | M02 | Thermal Paste | HW040 | CPU thermal paste | 2 | 130
3 | M03 | Crimping Tool | HW021 | Networking tool | 14 | 10
4 | M01 | Keyboard | HW098 | Computer Keyboard | 3 | 25
5 | M01 | SSD 250gb | HW033 / Solid State Drive / 24 / 60
(5 riviä)

Luokka taulukko

1
2
3
4
5
6
category_id | category_nimi
————-+————————-
M01 / Pheriperals
M02 / sekalaiset Materiaalit
M03 / verkostoituminen
(3 riviä)

Postgres Subqueries esimerkki

nyt kun olemme luoneet otosaineistomme, voimme tarkastella joitakin esimerkkejä, jotka havainnollistavat Postgres subqueriesin käyttöä:

1
2
3
4
5
6
7
8
9
10
11
12
13
valitse
id,
tuotte_nimi,
hinta
FROM
stock
WHERE
price > (
SELECT
AVG (price)
FROM
stock
);

keskustellaan tästä kyselystä hieman tarkemmin.

  • huomaa ensin suluissa oleva kysely:
1
2
3
4
valitse
AVG (hinta)
alkaen
varastossa
  • Postgres suorittaa kyselyt järjestyksessä alkaen sisimmästä alaluokasta.
  • alakerran käsittelyn jälkeen tulos palautetaan ulompaan hakuun.
  • lopulta ulompi kysely suoritetaan.

tuotoksen pitäisi näyttää jotakuinkin tältä:

1
2
3
4
id / tuotteen_nimi | hinta
—-+—————–+——-
1 | monitori 22inch / 300
(1 rivi)

katsotaanpa toista esimerkkiä, jossa käytetään alalajia FROM lausekkeessa:

1
2
3
4
5
6
valitse varasto.Tuotteen nimi, tuote.kategoria_nimi
kannasta,
(Valitse kategoria.category_id, category.category_name, COUNT (category_id) as total
from category
GROUP BY category.category_id, category.category_name) the_subquery
WHERE the_subquery.category_id = kanta.kategori_id;
1
2
3
(Valitse kategoria.category_id, category.category_name, COUNT (category_id) as total
from category
GROUP BY category.category_id, category.category_nimi) the_subquery

yllä olevassa kyselyssä, sijoitimme subquery peitenimellä ’the_subquery’. Tätä peitenimeä käytetään viittauksena alalajiin.

tuotoksen pitäisi näyttää jotakuinkin tältä:

1
2
3
4
5
6
7
8
tuotteen_nimi | kategori_nimi
—————–+————————-
SSD 250GB / Pheriperals
Keyboard | Pheriperals
Monitor 22inch | Pheriperals
Thermal Paste | sekalaiset Materiaalit
puristustyökalu / Verkko
(5 riviä)

johtopäätös

jos tarvitset monimutkaisemman kyselyn saadaksesi tarvitsemasi tiedot, Postgres-alikuvaus voi olla tarpeen tehtävän suorittamiseksi. Alikyselyt ovat sisäkkäin ulomman kyselyn sisällä; niistä palautettuja tuloksia käytetään sitten osana WHERE – lauseketta pääkyselyssä. Tässä artikkelissa, selitimme, miten käyttää Postgres subquery ja tarkasteltiin joitakin esimerkkejä SQL lausuntoja, jotka sisältävät subqueries. Näillä esimerkeillä ja selityksillä, sinulla ei ole ongelmia toteuttaa subqueries omassa tietokantakyselyissä.

Vastaa

Sähköpostiosoitettasi ei julkaista.