A kötés típusai - stadopedia

Kulcsszó HAVING

A HAVING kulcsszó a SELECT utasításban és a GROUP BY kulcsszóként használatos annak meghatározásához, hogy mely csoportokat kell megjeleníteni a kimenetben. A GROUP BY csoportnál a HAVING kulcsszó ugyanazt a szerepet játssza, mint a WHERE a ORDER BY. Más szavakkal, WHERE beállítja a kiválasztott oszlopok értékeit, és HAVING meghatározza a GROUP BY csoporttal létrehozott csoportok feltételeit.

A SELECT kifejezés HAVING kulcsszavának követnie kell a GROUP BY kulcsszó kifejezését, és meg kell előznie az ORDER BY kulcsszót, ha az utóbbit használja.

A SELECT utasítás szintaxisa, amelyben a HAVING kulcsszó szerepel, a következő.

SELECT oszlop1, 2. oszlop

A 1. táblázatból, 2. táblázatból

GROUP BY oszlop1, 2. oszlop

ORDER BY 1. oszlop, 2. oszlop

SELECT CITY, AVG (PAY_RATE), AVG (ÁRAK) EMP_PAY_TMP

CITY AVG (PAY_RATE) AVG (SALARY)

Miért van itt egy sor? A következő okok miatt.

Tehát most már tudod, hogyan lehet csoportosítani a lekérdezési eredményeket a GROUP BY kulcsszó használatával. A GROUP BY kulcsszó elsősorban az SUM, AVG, MAX, MIN és COUNT típusú SQL függvényekkel használható. A GROUP BY kulcsszó hasonló a "ORDER BY" kulcsszóhoz abban az értelemben, hogy mindkettő rendezi a kimeneti adatokat. A GROUP BY kulcsszó az adatok csoportosítására szolgál, de normál adatok rendezésére használható, bár ez utóbbi könnyebb a kulcsszó ORDER BY kulcsszóval.

A HAVING kulcsszó a SELECT utasításban és a GROUP BY kulcsszóként használható a létrehozott csoportok kiválasztási feltételeinek meghatározásához. A WHERE kulcsszó a SELECT kulcsszólista oszlopadatainak kiválasztási feltételeinek megadására használható. A következő leckében megnézzük azokat a funkciókat, amelyekkel megváltoztathatjuk a lekérdezési adatok megjelenítését.

Kérdések és válaszok

Ha a SELECT utasításban az ORDER BY klauzort használja, szükséges-e a GROUP BY kulcsszó használata?

Nem, nem az. A GROUP BY klauzula SELECT utasításban opcionális, de nagyon hasznos lehet az ORDER BY használatakor.

Mi a csoport értéke?

Vegye figyelembe az EMPLOYEE_TBL táblázat CITY oszlopát. Ha az alkalmazottak (LAST_NAME) és a városok (CITY) nevét választja, és csoportosítja őket városonként, akkor az ugyanazon városnevek sorai együtt jelennek meg.

A lekérdezési adatok csoportosítása a GROUP BY klauzula kulcsszavának egy oszlopával, ha ez az oszlop szerepel a SELECT kulcsszólistában?

Szükséges. Annak érdekében, hogy az adatokat egy oszlopba csoportosítsa, annak nevét meg kell adni a SELECT kulcsszó listáján.

1. A következő SELECT utasítások működnek? Ha nem, mit kell javítani?

· SELECT SUM (SALARY), EMP_ID AZ EMPLOYEE_PAY_TBL CSATLAKOZÁSÁBÓL 1 ÉS 2;

· AZ EMP_ID, MAX (SALARY) KIVÁLASZTÁSA EMPLOYEE_PAY_TBL GROUP BY SALARY, EMP_ID;

· VÁLASSZON EMP_ID, COUNT (PÉNZTÁR) AZ EMPLOYEE_PAY_TBL RENDELETBŐL EMP_ID GROUP BY SALARY;

2. A következő állítás igaz: "Ha a HAVING kulcsszót használja, akkor a GROUP BY kulcsszót is használnia kell?"

3. A következő állítás igaz: "A következő SQL utasítás visszaadja a bérek összegét a csoportoknak"

SELECT SUM (SZÁMVÁLASZTÁS) FROM EMPLOYEE_PAY_TBL

4. A következő állítás igaz? "" A lekérdezésben kiválasztott oszlopok ugyanabban a sorrendben szerepelnek a GROUP BY kulcsszó listájában? "

5. A következő állítás igaz: "A HAVING kulcsszó kifejezése megmondja a GROUP BY-nek, hogy mely csoportokat kell a kimenetbe beírni?"

1. Írja az SQL utasítást, visszaadja az alkalmazotti létszám (EMP_ID), munkavállaló neve (LAST_NAME) és a város (város) a EMPLOYEE_TBL táblázatok csoportosítva az értékeket az oszlop CITY.

2. Írja le azt az SQL utasítást, amely visszaküldi a városok nevét és a benne élő alkalmazottak számát az EMPLOYEE_TBL táblából. Adja hozzá a kulcsszót a HAVING kifejezéshez annak érdekében, hogy csak azokat a városokat jelenítse meg, amelyekben több mint két alkalmazott van a táblázatban rendelkezésre álló információk között.

Csatlakozzon táblákhoz a lekérdezésekben

Az eddig létrehozott lekérdezések egy táblázatban adtak ki adatokat. Ebben a leckében megtudhatja, hogyan társíthatja a táblázatokat egy lekérdezésben, így több táblából adatokat is kiválaszthat.

A lecke fő témái a következő témák lesznek.

  • A táblázatok összekapcsolásának fő megközelítései.
  • Különböző típusú kapcsolatok.
  • Hogyan és mikor használhat asztalkötést?
  • Számos praktikus példa a táblázatok összekapcsolására.
  • A helytelen asztalkötés következményei.
  • Table aliasok használata lekérdezésekben.

Adatok kiválasztása több táblából

A több táblázatból származó adatok kiválasztása az SQL egyik leghasznosabb jellemzője. Anélkül, hogy ilyen lehetőség lenne, a relációs adatbázis ötlete értelmetlenné válik. A lekérdezések egyetlen táblázathoz nagyon informatívak lehetnek, de a valóságos adatbázisokban gyakran több adatról van szükség adatra egyszerre.

A normalizációs leckében megpróbálta meggyőzni magáról, hogy az adatbázist kisebb és jobban kezelhető asztalokra kell osztani. Miután osztotta a táblákat kisebbbe, a kapcsolódó tábláknak közös oszlopuk van - kulcsmezők vagy csak kulcsok. Az ilyen kulcsokat a kapcsolódó táblák összekapcsolására használják.

A link két vagy több táblát kombinál, hogy egyszerre több táblából adatokat is lehessen kivenni.

Lehet, hogy vajon miért normalizálják a táblázatokat, ha végül meg kell újítani őket a szükséges adatok kivonásához? A válasz egyszerű: az összes adat kivonása az összes asztalról egyszerre rendkívül ritka, ezért jobb, ha csak az egyes konkrét esetekben szükséges táblázatokat kombináljuk. Bár az adatbázis munkája kissé lassulhat, ezt nyilvánvalóan ellensúlyozza az adatbázis és annak kezelése terén végzett munka jelentős egyszerűsítése.

Annak ellenére, hogy a különböző SQL implementációk által javasolt táblázatok összekapcsolásának módszerei elég nagyok, csak a leggyakoribb kötési típusokat vizsgáljuk, amelyekre

  • esélyegyenlőség (EQU JOIN);
  • természetes kötés (NATURAL JOIN);
  • összekapcsolása egyenlőtlenséggel (NON-EQU JOIN);
  • külső kötés (OUTER JOIN);
  • rekurzív kötés (SELF JOIN).

Kapcsolódó cikkek