Ero missä ja lauseessa on SQL
Sisältö
Missä ja HAVING-lauseketta käytetään pääasiassa SQL-kyselyjen lausunnossa, näiden avulla voimme rajoittaa tulosuhteiden yhdistelmää käyttämällä erityistä predikaattia. Suurin ero WHERE- ja HAVING-välillä on se, että WHERE-lause määrittelee ehdot tuples (rivit) suhteista, mukaan lukien liittymisehdot tarvittaessa. Toisaalta HAVING-lauseke määrittelee ehdon ehtona ryhmät valitaan mieluummin kuin yksittäisistä tupleista.
SQL tarkoittaa Jäsennelty kyselykieli; se on kattava tai deklaratiivinen tietokantakieli, jota käytetään tietojen saamiseen tietokannoista.
- Vertailutaulukko
- Määritelmä
- Keskeiset erot
- johtopäätös
Vertailutaulukko
Vertailun perusteet | MISSÄ | oTTAA |
---|---|---|
perustiedot | Toteutetaan rivitoiminnoissa. | Toteutettu sarakeoperaatioissa. |
Sovellettu | Yksi rivi | Yhteenveto rivistä tai ryhmistä. |
Tietojen nouto | Se hakee vain tietyt tiedot tietyiltä riveiltä olosuhteiden mukaan. | Aluksi noudetaan täydelliset tiedot ja erotetaan sitten olosuhteiden mukaan. |
Yhdistelmätoiminnot | Ei voi esiintyä WHERE-lauseessa. | Voi esiintyä HAVING-lausekkeessa. |
Käytetään | VALITSE ja muut lauseet, kuten PÄIVITÄ, POISTA tai jompikumpi niistä. | Ei voi käyttää ilman SELECT-käskyä. |
Toimi kuten | Esisuodattimen | Jälkisuodattimella |
RYHMÄ | Tulee WHERE: n jälkeen. | Tulee ennen SAAMISTA. |
Määritelmä Missä lauseessa
SQL Missä lauseke Sitä käytetään kuvaamaan ehtoa, kun tietoja haetaan yhdestä taulukosta tai liittymällä useisiin taulukoihin. Se palauttaa tietyn arvon taulukosta vain, jos annettu ehto täyttyy. WHERE-lauseketta käytetään tietueiden läpäisemiseen ja vain tarvittavien tietueiden hakemiseen.
SQL toteuttaa myös loogiset liitännät ja, tai ja ei WHERE - lausekkeessa, joka tunnetaan myös nimellä boolean kunto; Edellytyksen on oltava tosi tupusten noutamiseksi. Loogisten liitäntälausekkeiden operandit sisältävät vertailuoperaattoreita, kuten <, <=, >, >=, =ja <>. Nämä vertailuoperaattorit vertaa merkkijonoja ja aritmeettisia lausekkeita. Sitä voidaan käyttää VALINTA lausunto sekä UPDATE, POISTAA lausuntoja.
Otetaan esimerkki. Alla oleva taulukko nimeltään "Myynti'Taulukko koostuu'Tuote'Ja'Myyntimäärä'Ominaisuudet.
Seuraava kysely on kirjoitettava laskemaan Total_sales puhelimesta ja kaiuttimista.VALITSE Tuote, summa (myynti_määrä) AS Total_sales LOPPUUSMYYNNISTÄ, Missä tuote (puhelin, kaiuttimet) -ryhmässä tuote
Seuraava lähtö on tulokseksi tulosteena, jossa rivit suodatetaan ensin, puhelin- ja kaiutinrivit noudetaan, sitten suoritetaan yhdistelmätoiminto.Määritelmä ehto
SQL tarjoaa OVAT lauseketta joita voidaan käyttää yhdessä RYHMÄ lauseke. Tämä HAVING-lauseke auttaa hakemaan arvoja ryhmille, jotka täyttävät tietyt ehdot. WHERE-lauseketta voidaan käyttää myös HAVING-lauseen kanssa valinnan aikana, WHERE-lause suodattaa yksittäisen rivin. Sitten rivit ryhmitellään ja suoritetaan aggregoidut laskelmat, viimeinkin HAVING-lause suodattaa ryhmät.
Se käyttäytyy samalla tavalla kuin WHERE, kun GROUP BY -sanaa ei käytetä. Ryhmätoiminnot, kuten min, max, keskiarvo, summa ja laskenta, voivat esiintyä vain kahdessa lauseessa: SELECT ja HAVING. Se tarjoaa ehdollisen määrittelyryhmän kutakin arvoa vastaaviin tuppeihin. Ainoa tietuejoukko, joka täyttää ehdon, näytetään tuloksena.
Tässä myös otamme saman esimerkin kuin WHERE-lauseke ja otamme huomioon saman ”Myynti' pöytä. Kun haluamme laskea Total_sales puhelimesta ja kaiuttimista HAVING-lauseketta käyttämällä, kirjoitamme seuraavan kyselyn.
VALITSE Tuote, summa (myynti_määrä) AS Yhteensä_myynnit myyntiryhmästä tuotteen mukaan, jolla on tuote (puhelin, kaiuttimet);
Kysely tuottaa seuraavan tuotoksen, jossa tuotteet haetaan ensin, sitten suoritetaan aggregaattitoiminto (summa) ja viimeiseksi ryhmät suodatetaan toisin kuin WHERE-lause.
Kun haluamme löytää vain niitä tuotteita, joissa Total_sales on suurempi kuin 1000. Kysely voidaan kirjoittaa seuraavasti:
VALITSE Tuote, summa (myynti_määrä) AS Yhteensä_myynnit myyntiryhmästä tuotteen mukaan. (Myynti_määrä)> 1000;
Tuotettu tuotos on:
Tätä ei voida suorittaa WHERE-lauseella HAVING-toiminnasta huolimatta ja se aiheuttaa virheen, koska WHERE-lauseketta ei voida käyttää aggregoitujen toimintojen kanssa.
- WHERE-lausetta käytetään rivitoiminnoissa ja sitä sovelletaan yhdellä rivillä, kun taas HAVING-lauseketta käytetään saraketoiminnoissa ja sitä voidaan soveltaa yhteenvetoihin riveihin tai ryhmiin.
- WHERE-lauseessa haetaan halutut tiedot sovelletun ehdon mukaisesti. Sitä vastoin HAVING-lause hakee kokonaisen datan, sitten erottelu tehdään ehdon mukaisesti.
- Kokonaistoiminnot, kuten min, summa, max, keskiarvo, eivät voi koskaan esiintyä WHERE-lauseen mukana. Toisin kuin nämä toiminnot voivat esiintyä HAVING-lauseessa.
- HAVING-lauseketta ei voi käyttää ilman SELECT-käskyä. Kääntäen, MITÄ voidaan käyttää SELECT, UPDATE, DELETE jne.
- Missä lauseke toimii esisuodattimena, kun taas lauseke toimii jälkisuodattimena.
- Missä lauseke, kun sitä käytetään GROUP BY: n kanssa, tulee ennen GROUP BY: tä. Tämä tarkoittaa, että WHERE-suodatinrivit ennen yhdistelmälaskelmien suorittamista. Toisaalta HAVING tulee GROUP BY: n jälkeen, mikä tarkoittaa, että se suodattaa, kun aggregoidut laskelmat on suoritettu.
johtopäätös
Missä ja HAVING-lause toimii samalla tavalla paitsi lisäominaisuus, johon HAVING-lause on suosittu. HAVING-lauseke voi toimia tehokkaasti aggregoitujen toimintojen kanssa, kun taas WHERE: tä ei voida käyttää aggregaattitoimintojen kanssa.