Ero missä ja lauseessa on SQL

Kirjoittaja: Laura McKinney
Luomispäivä: 1 Huhtikuu 2021
Päivityspäivä: 13 Saattaa 2024
Anonim
Ero missä ja lauseessa on SQL - Tekniikka
Ero missä ja lauseessa on SQL - Tekniikka

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.

  1. Vertailutaulukko
  2. Määritelmä
  3. Keskeiset erot
  4. johtopäätös

Vertailutaulukko

Vertailun perusteetMISSÄoTTAA
perustiedotToteutetaan rivitoiminnoissa.Toteutettu sarakeoperaatioissa.
SovellettuYksi riviYhteenveto rivistä tai ryhmistä.
Tietojen noutoSe hakee vain tietyt tiedot tietyiltä riveiltä olosuhteiden mukaan.Aluksi noudetaan täydelliset tiedot ja erotetaan sitten olosuhteiden mukaan.
YhdistelmätoiminnotEi voi esiintyä WHERE-lauseessa.Voi esiintyä HAVING-lausekkeessa.
KäytetäänVALITSE ja muut lauseet, kuten PÄIVITÄ, POISTA tai jompikumpi niistä.Ei voi käyttää ilman SELECT-käskyä.
Toimi kutenEsisuodattimenJä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.

  1. 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.
  2. WHERE-lauseessa haetaan halutut tiedot sovelletun ehdon mukaisesti. Sitä vastoin HAVING-lause hakee kokonaisen datan, sitten erottelu tehdään ehdon mukaisesti.
  3. Kokonaistoiminnot, kuten min, summa, max, keskiarvo, eivät voi koskaan esiintyä WHERE-lauseen mukana. Toisin kuin nämä toiminnot voivat esiintyä HAVING-lauseessa.
  4. HAVING-lauseketta ei voi käyttää ilman SELECT-käskyä. Kääntäen, MITÄ voidaan käyttää SELECT, UPDATE, DELETE jne.
  5. Missä lauseke toimii esisuodattimena, kun taas lauseke toimii jälkisuodattimena.
  6. 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.