Rekomenduojama, 2024

Redaktoriaus Pasirinkimas

Skirtumas tarp to, kur ir atsižvelgiama į SQL

WHERE ir HAVING sąlygos dažniausiai naudojamos SQL užklausų ataskaitoje, tai leidžia mums apriboti derinį rezultato santykyje, naudojant konkretų predikatą. Didžiausias skirtumas tarp WHERE ir HAVING yra tas, kad WHERE sąlyga nurodo sąlygas, pagal kurias galima rinktis eilutes (eilutes) iš santykių, įskaitant, jei reikia, sujungimo sąlygas. Kita vertus, HAVING sąlyga nurodo pasirinktų grupių sąlygą, o ne atskiras grupes.

SQL reiškia struktūrinę užklausos kalbą ; tai yra išsami arba deklaratyvi duomenų bazės kalba, naudojama prieigai prie duomenų bazių duomenų.

Palyginimo diagrama

Palyginimo pagrindasKURIŠSKYRUS
PagrindinisĮdiegta eilių operacijose.Įdiegta stulpelių operacijose.
PritaikytaViena eilutėApibendrinta eilutė arba grupės.
Duomenų rinkimasJi tik atsiunčia konkrečius duomenis iš konkrečių eilučių pagal būklę.Iš pradžių gaunami išsamūs duomenys, tada atskiriami pagal būklę.
Sudėtinės funkcijosNegalima būti rodoma WHERE sąlygoje.Gali pasirodyti skiltyje HAVING.
Naudojamas suSELECT ir kiti pareiškimai, pvz., UPDATE, DELETE arba bet kuris iš jų.Negalima naudoti be SELECT.
Elgtis lygIš anksto filtruokitePo filtro
GRUPUOTI PAGALPo to, kai.Atvyksta po HAVING.

Kur sąlygos apibrėžimas

SQL WHERE sąlyga naudojama apibūdinti sąlygą, kai duomenys atsiunčiami iš vienos lentelės arba prisijungiant prie kelių lentelių. Ji tik grąžina konkrečią vertę iš lentelės, jei ši sąlyga įvykdyta. WHERE sąlyga naudojama įrašams perduoti ir tik reikalingiems įrašams gauti.

SQL taip pat įgyvendina loginius ryšius ir, arba, o ne WHERE sąlygą, kurie taip pat yra žinomi kaip loginė būsena; sąlyga turi būti teisinga, kad būtų galima nuskaityti. Loginių jungčių išraiškų operanduose dalyvauja palyginimo operatoriai, pvz., <, <=, >, > =, =, Ir . Šie palyginimo operatoriai lygina stygas ir aritmetines išraiškas. Jis gali būti naudojamas SELECT ir UPDATE, DELETE ataskaitose.

Paimkime pavyzdį. Toliau pateiktoje lentelėje, pavadintoje „ Pardavimų lentelė“, yra atributai „ Produktas “ ir „ Pardavimų suma “.

Turi būti parašyta ši užklausa, skirta apskaičiuoti „ Total_sales “ telefoną ir garsiakalbius.

 SELECT Product, suma (Sales_amount) AS Total_sales iš pardavimų, kuriuose yra produktas („Phone“, „Speakers“) GROUP BY; 

Po išėjimo gaunama išvestis, kurioje eilės filtruojamos pirmiausia, gaunamos telefono ir garsiakalbių eilutės, tada atliekama suvestinė funkcija.

Sąvokos apibrėžimas

SQL suteikia HAVING sąlygą, kuri gali būti naudojama kartu su GROUP BY sąlyga. Ši HAVING sąlyga padeda atkurti grupių, atitinkančių tam tikras sąlygas, vertybes. WHERE sąlyga taip pat gali būti naudojama kartu su HAVING sąlyga pasirinkimo metu, WHERE sąlyga filtruoja atskirą eilutę. Tada eilutės sugrupuojamos ir atliekami suvestiniai skaičiavimai, pagaliau HAVING sąlygos filtruoja grupes.

Jis elgiasi taip pat, kaip, kai GROUP BY raktinis žodis nenaudojamas. Grupės funkcijos, pvz., Min, max, avg, sumos ir skaičius, gali būti rodomos tik dviejose sąlygose: SELECT ir HAVING. Ji suteikia sąlygą kiekvienai reikšmei atributų grupėje. Vienintelis įrašų rinkinys, atitinkantis sąlygą, bus rodomas kaip rezultatas.

Čia taip pat laikomės to paties pavyzdžio, kaip ir WHERE sąlyga ir atsižvelgiant į tą pačią „ Pardavimų “ lentelę. Kai norime apskaičiuoti „ Total_sales “ telefoną ir garsiakalbius naudojant „HAVING“ sąlygą, mes parašysime šį užklausą.

 SELECT Product, suma (Sales_amount) AS Total_sales IŠ pardavimų grupės pagal produktus, kuriuose yra produktas („telefonas“, „garsiakalbiai“); 

Užklausa sukuria tokią išvestį, kurioje produktai yra išrinkti pirmiausia, tada atliekama suvestinė funkcija (suma) ir paskutinėse grupėse filtruojamos skirtingai nei WHERE sąlyga.

Kai norime rasti tik tuos produktus, kuriuose „ Total_sales“ yra didesnis nei 1000. Užklausa gali būti parašyta kaip:

 SELECT Product, suma (Pardavimų suma) AS Total_sales IŠ pardavimų grupės pagal produkto kiekį (Pardavimų suma)> 1000; 

Pagaminta produkcija yra:

Tai negali būti atliekama naudojant WHERE sąlygą, nepaisant HAVING, ir ji generuoja klaidos pranešimą, nes WHERE sąlyga negali būti naudojama su suvestinėmis funkcijomis.

Pagrindiniai skirtumai tarp to, kur ir atsižvelgiama

  1. WHERE sąlyga naudojama eilės operacijose ir taikoma vienoje eilutėje, o HAVING sąlyga naudojama stulpelių operacijose ir gali būti taikoma apibendrintoms eilėms arba grupėms.
  2. WHERE punkte pageidaujami duomenys atsiunčiami pagal taikomą sąlygą. Priešingai, HAVING sąlyga atneša visą duomenų, o atskyrimas atliekamas pagal sąlygą.
  3. Bendrosios funkcijos, pvz., Min, sumos, maks., Avg, niekada negali pasirodyti kartu su WHERE sąlyga. Priešingai, šios funkcijos gali būti įtrauktos į HAVING sąlygą.
  4. HAVING sąlyga negali būti naudojama be SELECT. Priešingai, kur galima naudoti su SELECT, UPDATE, DELETE ir kt.
  5. KUR sąlyga elgiasi kaip išankstinis filtras, o HAVING sąlyga veikia kaip filtras.
  6. WHERE sąlyga, naudojama kartu su GROUP BY, pateikiama prieš GROUP BY. Tai reiškia, kad WHERE filtrų eilutės prieš atliekant suvestinius skaičiavimus. Kita vertus, HAVING atsiranda po GROUP BY, o tai reiškia, kad filtrai atliekami atlikus suvestinius skaičiavimus.

Išvada

KUR ir HAVING sąlyga veikia taip pat, išskyrus papildomą funkciją, kurią HAVING sąlyga yra populiari. „HAVING“ sąlyga gali efektyviai dirbti su bendromis funkcijomis, o WHERE negali būti valdomos su visomis funkcijomis.

Top