PostgreSQL missä on kysely

PostgreSQL: käyttäen missä on lauseke

kun mitä tahansa SQL-kyselyä käytetään toisen SQL-kyselyn sisällä, sitä kutsutaan alikoskeksi. Monimutkainen kysely voidaan kirjoittaa helposti jakamalla suuri kysely useisiin alijonoihin. EXISTES-lauseketta käytetään SQL-lausekkeessa alikappaleen kanssa. Olemassa olevien tuotos riippuu subqueryn palauttamien tietueiden lukumäärästä, mutta se ei riipu tietueiden arvoista. EXISTESIN tulos on tosi, jos siihen liittyvä alikvenssi palauttaa vähintään yhden rivin. Miten voit käyttää olemassa ja ei ole olemassa-lauseketta select -, insert -, update-ja delete-lausekkeissa näytetään tässä opetusohjelmassa eri esimerkkejä käyttäen.

olemassa lausekkeen syntaksi:

valitse col1, col2, col3…..
from table_name1
WHERE EXISTES (valitse 1
FROM
table_name2
WHERE col1 = table_name1.col1);

luo kolme taulukkoa nimeltä yritys, kohteet ja asiakkaat ja lisää joitakin tietoja. Suorita seuraava valitse-kysely näyttääksesi näiden taulukoiden sisällön.

valitse * yrityksestä;
valitse * kohteista;
valitse * asiakkaista;

Esimerkki-1: käyttämällä olemassa olevaa lauseketta valitussa kyselyssä

(a) on olemassa

seuraava kysely hakee tietueet yhtiötaulukosta. Subquery hakee kaikki tietueet yrityksen taulukosta, jossa company_id yrityksen taulukon on yhtä kuin company_id kohteita taulukon ja arvo puhelin kenttä ei ole tyhjä. Yhtiötaulukossa on yksi tietue, jolla ei ole puhelinnumeroa ja tämä tietue jätetään pois tuotoksesta.

valitse item_id, nimi, määrä
kohteista
jos on olemassa (valitse 1
yrityksestä
jos kohteita.company_id = yritys.yritys_id ja yritys.puhelin<>”);

Lähtö:

LG: n tilastossa ei ole yhtäkään puhelinmerkintää yritystaulukossa. Se ei siis näy tuotoksessa.

(b) ei ole olemassa

ei ole olemassa lauseke on olemassa olevan lausekkeen vastakohta. Seuraava kysely hakee nämä tietueet erätaulukosta, kun alakuvaus palauttaa epätosi.

valitse item_id, nimi, määrä
kohteista
jos ei ole (valitse 1
yrityksestä
jos kohteita.company_id = yritys.yritys_id ja yritys.website_url on NULL);

Lähtö:

yhtiötaulukossa ei ole merkintää, jossa sivu_url on nolla. Joten tuotos subquery on epätosi kaikille tietueille ja kaikki tietueet taulukon noudetaan.

Esimerkki-2: Käyttämällä olemassa olevaa lauseketta INSERT-kyselyssä

seuraavan insert-kyselyn mukaan tiedot lisätään erätaulukkoon, kun yritys_id sekä yritys-että asiakastaulukoissa ovat yhtä suuret.

merkitään eriin
(yritys_id)
valitse yritys_id
asiakkailta
jos on olemassa (valitse 1
yritykseltä,asiakkaat
asiakkailta.company_id = yritys.yrityksen_id);

Lähtö:

asiakasrekisterissä on kolme merkintää yritys_id, joiden arvot ovat 1 ja 2. Joten alakerta palaa true kolme kertaa ja kolme kirjaa lisätään.

Suorita valitse-kysely tarkistaaksesi kohteiden taulukon sisällön.

esimerkki-3: käyttämällä olemassa olevaa lauseketta päivityskyselyssä

seuraava kysely päivittää tietueiden taulukon, jossa company_id on 1 ja alikenttä palauttaa true.

UPDATE items
SET name = ”Nokia”
WHERE company_id=1 and exist (SELECT 1
FROM items
WHERE name= ”not Assign’);

tuloste:

tässä alaluku palaa true kolmesti ja company_id on 1 kolmelle levylle. Kolme tietuetta päivitetään päivityskyselyn suorittamisen jälkeen.

Suorita valitse-kysely tarkistaaksesi kohteiden taulukon sisällön.

esimerkki-4: käyttämällä olemassa olevaa lauseketta DELETE-kyselyssä

seuraava kysely poistaa tietueet taulukosta, jossa company_id on 1 ja alikenttä palauttaa true.

poistetaan kohteista
jos yhtiö_id=1 ja on olemassa (valitse 1
kohteista
jos nimi= ”ei määritä’);

Lähtö:

on kolme levyä, joiden arvo on 1 company_id ja yhden levyn nimiarvo on ’not assigned’. Niin, ehto on totta kolme kertaa ja poistaa kolme kirjaa kohteita taulukossa.

Suorita valitse-kysely tarkistaaksesi kohteiden taulukon sisällön.

Hope, sinulla on selkeä käsitys käyttää olemassa lauseke SQL query lukemisen jälkeen tämä opetusohjelma.

Vastaa

Sähköpostiosoitettasi ei julkaista.