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 pagrindas | KUR | IŠSKYRUS |
---|---|---|
Pagrindinis | Įdiegta eilių operacijose. | Įdiegta stulpelių operacijose. |
Pritaikyta | Viena eilutė | Apibendrinta eilutė arba grupės. |
Duomenų rinkimas | Ji 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 funkcijos | Negalima būti rodoma WHERE sąlygoje. | Gali pasirodyti skiltyje HAVING. |
Naudojamas su | SELECT ir kiti pareiškimai, pvz., UPDATE, DELETE arba bet kuris iš jų. | Negalima naudoti be SELECT. |
Elgtis lyg | Iš anksto filtruokite | Po filtro |
GRUPUOTI PAGAL | Po 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 “.
SELECT Product, suma (Sales_amount) AS Total_sales iš pardavimų, kuriuose yra produktas („Phone“, „Speakers“) GROUP BY;
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
- 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.
- 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ą.
- 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ą.
- HAVING sąlyga negali būti naudojama be SELECT. Priešingai, kur galima naudoti su SELECT, UPDATE, DELETE ir kt.
- KUR sąlyga elgiasi kaip išankstinis filtras, o HAVING sąlyga veikia kaip filtras.
- 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.