Suositeltava, 2024

Toimituksen Valinta

Ero välillä, missä ja ottaa lauseke SQL: ssä

WHERE ja HAVING lauseketta käytetään lähinnä SQL-kyselyiden lausunnossa, minkä ansiosta voimme rajoittaa yhdistelmää tulossuhteessa käyttämällä tiettyä predikaattia. Suurin ero WHERE: n ja HAVING: n välillä on, että WHERE-lauseke määrittelee olosuhteet, joissa valitaan sekvenssit (rivit) suhteista, mukaan lukien tarvittaessa liittymisolosuhteet. Toisaalta HAVING-lauseke määrittää ehdon valituille ryhmille eikä yksittäisille tupleille.

SQL tarkoittaa strukturoitua kyselykieliä ; se on kattava tai julistava tietokantakieli, jota käytetään tietokantojen tietojen käyttämiseen.

Vertailukaavio

Vertailun perusteetMISSÄoTTAA
perustiedotToteutetaan rivitoiminnoissa.Toteutetaan sarakkeen toiminnoissa.
SovellettuYksi riviTiivistetty rivi tai ryhmät.
Tietojen hakeminenSe noutaa vain tietyt tietyt rivit tietyn tilan mukaan.Aluksi haetaan täydellisiä tietoja ja erotetaan sitten tilan mukaan.
KokonaisfunktiotEi voi näkyä WHERE-lausekkeessa.Voi näkyä HAVING-lausekkeessa.
KäytetäänSELECT ja muut lausunnot, kuten UPDATE, DELETE tai jompikumpi niistä.Ei voi käyttää ilman SELECT-lausuntoa.
Toimi kutenEsisuodattimenJälkisuodattimella
GROUP BYTulee WHERE: n jälkeen.Jälkeen HAVING.

Määritelmä missä lauseke

SQL WHERE -lauseketta käytetään kuvaamaan tilannetta, kun tietoja haetaan yhdestä taulukosta tai liittämällä siihen useita taulukoita. Se palauttaa vain tietyn arvon taulukosta, jos tietty ehto täyttyy. WHERE-lauseketta käytetään tallentamaan tietueet ja hakemaan vain tarvittavat tiedot.

SQL toteuttaa myös loogiset liitännät ja WHERE-lausekkeen, joka tunnetaan myös boolen ehtona; ehto on totta, jos haluat noutaa tuplat. Loogisten yhteyksien lausekkeiden operandit sisältävät vertailuoperaattorit, kuten <, <=, >, > =, = ja . Nämä vertailuoperaattorit vertaavat merkkijonoja ja aritmeettisia lausekkeita. Sitä voidaan käyttää SELECT- lauseessa sekä UPDATE-, DELETE- lausunnoissa.

Otetaan esimerkki. Alla olevassa taulukossa, joka on nimeltään " Myynti ", muodostuu " Tuote " ja " Myynti_määrä " -määritteet.

Seuraava kysely kirjoitetaan puhelimen ja kaiuttimien Total_sales laskemiseksi.

 SELECT Product, summa (Sales_amount) AS Total_sales myyjältä, jossa tuote (puhelin, puhujat) GROUP BY -tuote; 

Seuraava ulostulo on tuloksena oleva lähtö, jossa rivit suodatetaan ensin, puhelin- ja kaiutinrivit haetaan, ja kokoominaisuus suoritetaan.

Määritelmä lausekkeesta

SQL tarjoaa HAVING-lausekkeen, jota voidaan käyttää yhdessä GROUP BY -lausekkeen kanssa. Tämä HAVING-lauseke auttaa hakemaan arvoja ryhmille, jotka täyttävät tietyt ehdot. WHERE-lauseke voi myös käyttää yhdessä HAVING -lausekkeen kanssa valinnan aikana, WHERE-lauseke suodattaa yksittäisen rivin. Sitten rivit ryhmitellään ja suoritetaan yhteenlasketut laskelmat, lopulta HAVING-lauseke suodattaa ryhmät.

Se toimii samalla tavalla kuin silloin, kun GROUP BY-avainsanaa ei käytetä. Ryhmän toiminnot, kuten min, max, avg, summa ja määrä, voivat näkyä vain kahdessa lausekkeessa: SELECT ja HAVING. Se tarjoaa edellytyksen määritteille, jotka vastaavat kutakin ominaisuusryhmän arvoa. Tuloksena näytetään ainoa ehtojen täyttävä tietue.

Täällä otamme myös saman esimerkin kuin WHERE-lauseke ja samaa myynti- taulukkoa. Kun haluamme laskea puhelimen ja kaiuttimien Total_sales HAVING -lausekkeen avulla, kirjoitamme seuraavan kyselyn.

 SELECT-tuote, summa (Sales_amount) AS Total_sales myyjistä tuoteryhmästä TUOTTEEN JÄLKEEN Tuote ('puhelin', 'kaiuttimet'); 

Kysely tuottaa seuraavan tuotoksen, jossa tuotteet haetaan ensin, sitten suoritetaan aggregaattifunktio (summa) ja viimeisissä ryhmissä suodatetaan toisin kuin WHERE-lauseke.

Kun haluamme löytää vain ne tuotteet, joissa Total_sales on suurempi kuin 1000. Kysely voidaan kirjoittaa seuraavasti:

 VALITSE Tuote, summa (Sales_amount) AS Total_sales myyjältä tuotetusta summasta (myynti_määrä)> 1000; 

Tuotettu tuotos on:

Tätä ei voida suorittaa käyttämällä WHERE-lauseketta HAVING -toiminnosta huolimatta, ja se luo virhesanoman, koska WHERE-lauseketta ei voida käyttää yhdistetyillä toiminnoilla.

Tärkeimmät erot missä ja ottaa lausekkeen

  1. WHERE-lauseketta käytetään rivitoiminnoissa ja sitä käytetään yhdessä rivissä, kun taas HAVING-lauseketta käytetään sarakkeen toiminnoissa ja sitä voidaan soveltaa yhteenvedettuihin riveihin tai ryhmiin.
  2. WHERE-lausekkeessa haluttu data haetaan sovelletun tilan mukaan. Sitä vastoin HAVING-lauseke noutaa koko dataa, ja erottaminen tapahtuu tilan mukaan.
  3. Kokonaisfunktiot, kuten min, summa, max, avg, eivät voi koskaan näkyä yhdessä WHERE-lausekkeen kanssa. Vastoin näitä toimintoja voi näkyä HAVING-lausekkeessa.
  4. HAVING-lauseketta ei voi käyttää ilman SELECT-lausuntoa. Sitä vastoin WHERE voidaan käyttää SELECT, UPDATE, DELETE jne. Kanssa.
  5. WHERE-lauseke käyttäytyy esisuodattimena, kun HAVING -lauseke toimii jälkisuodattimena.
  6. WHERE-lauseke, kun sitä käytetään GROUP BY: n kanssa, tulee ennen GROUP BY: tä. Tämä merkitsee sitä, että WHERE suodatetaan riviä ennen kuin lasketaan yhteen. Toisaalta HAVING tulee GROUP GROUPin jälkeen, mikä tarkoittaa sitä, että suodattimet suoritetaan yhdistettyjen laskelmien suorittamisen jälkeen.

johtopäätös

WHERE ja HAVING -lauseke toimii samalla tavalla kuin HAVING -lausekkeen suosittu lisäominaisuus. HAVING-lauseke voi toimia tehokkaasti yhdistetyillä toiminnoilla, kun WHERE-toimintoa ei voida käyttää yhdistetyillä toiminnoilla.

Top