1 / 15

Lekérdezések SQL-ben

Lekérdezések SQL-ben. Relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek. Relációs algebra. A relációs adatbázisokon végzett műveletek matematikai alapjai

macy-holden
Download Presentation

Lekérdezések SQL-ben

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lekérdezések SQL-ben Relációs algebra A SELECT utasítás Összesítéséscsoportosítás Speciálisfeltételek

  2. Relációs algebra • A relációsadatbázisokonvégzettműveletekmatematikaialapjai • Halmazműveletek: kompatibilistáblákközthajthatókvégre– a táblákazonosszámúoszlopbólkellálljanak, és a megfelelőattribútumokértéktartományaegyezzen • Metszet– a INTERSECT b • Unió– a UNION b • Különbség– a EXCEPT b, ahol a, b sorokhalmazai. UNION =

  3. Descartes-szorzat • Azegyiktáblamindensorátpárosítjuk a másiktáblamindensorával X =

  4. Projekció, szelekció • Projekció: adottoszlopokatkiválasztunk a táblából • Jelölése: πattribútumlista(tábla) • Például: πB1,B3(T1) =>

  5. Projekció, Szelekció • Adottfeltételszerintisorokatválasztunkki a táblából • Jelölése: σfeltétel(tábla) • Például: σB2=‘a’(T1) =>

  6. Természetesösszekapcsolás • Kéttáblaközt a külsőkulcsokrévénlényegébenegyezőattribútumokkalteremtünkkapcsolatot a relációsmodellben • Például: Dolgozó(szem.szám, név, osztálykód) ésOsztály(osztálykód, osztálynév) –hogyanandánk meg egydolgozónevéhez, hogy mi annakazosztálynak a neve, aholődolgozik? • A kéttáblatermészetesösszekapcsolásábólkiolvashatólesz a válasz: T = πA U B(σR1.X=R2.X(T1x T2) ) ahol T1 az R1(A), és T2 az R2(B) sémák feletti táblák.

  7. Természetesösszekapcsolás • Természetesösszekapcsoláskortehát a kéttábla Descartes-szorzatábólmegtartjukazonsorokat, aholazösszekapcsolásalapjáulszolgálóattribútumokegyeznek, majd a duplánszereplőoszlopokatprojekcióval “egyszeresítjük”. • Jelölésben: T = T1 * T2

  8. A Select utasításáltalánosalakja SELECT [DISTINCT] megjelenítendőoszlopok FROMtáblá(k direktszorzata) [WHEREfeltétel] [GROUPBYcsoportosításiszempont] [HAVINGcsoportokszűrése] [ORDERBYrendezésiszempont];

  9. Példa Dolgozó(id, név, fizetés, lakcím, osztály) 200 000 Ft-náltöbbetkeresőklistájánakelőállítása: SELECT név FROMDolgozó WHEREfizetés > 200000; 100 és 200 közti id-jűdolgozóknevénekéslakcíménekmegjelenítése: SELECTnév, lakcím FROMDolgozó WHERE id BETWEEN 100 AND 200;

  10. REndezés ORDER BY attribútumASC/DESC Dolgozókösszesadatánaklistázásaösszegszerintnövekvőlistában: SELECT * FROMDolgozóORDERBYfizetésASC;

  11. Összesítés • Összesítésmenete: valamilyenösszesítőfüggvénytalkalmazunkegyadottattribútumra, ÉS azezenattribútumonkívüliösszesmegjelenítendőoszlopszerintcsoportosítani is szükséges (illetvea HAVING kulcsszóutánfeltételt is szabhatunk a csoportokra) • Dolgozókfizetésénekösszege: • SELECT SUM(fizetés) FROMDolgozó;

  12. Összesítés • Számoskülönbözőösszesítőfüggvénylétezik: • AVG(…) – átlag • COUNT(…) – sorokszáma • MIN(…) – legkisebbérték • MAX(…) – legnagyobbérték • SUM(…) – összeg • Dolgozókfizetésátlagaazegyesosztályokon: SELECTosztály, AVG(fizetés) FROMDolgozó GROUPBYosztály;

  13. KülönlegesFeltételek Néhányolyanlogikaikifejezés, amitaz SQL-ben használnilehet a korábbanismertetettekenkívül. • Attribútumnemdefiniáltságánakvizsgálata attribIS NULL • Attribútumadottintervallumbaesésénekvizsgálata attribBETWEEN a AND b –igaz, ha a <= attrib <= b • Attribútumadotthalmazbaesésénekvizsgálata attribINhalmaz–példáulszületésiVárosIN (‘Szeged’, ‘Baja’, ‘Pécs’)

  14. Különlegesfeltételek • Halmaznemürességénekvizsgálata EXISTShalmaz–igazat ad, ha a halmaznemüres, pl. EXISTS (SELECTvárosNévFROM VárosWHERElakosság > 5000) • Szövegmintánakmegfeleltetése–attribLIKEfeltétel % - tetszőlegeshosszúszöveggelilleszkedik _ - pontosanegykarakterrelilleszkedik SELECTnév, fizetésFROMdolgozóWHEREnévLIKE ‘% András’;

  15. Feladatok Ország(országKód, név, terület, lakosság, hivatalosNyelv, pénznem, gdp_fő, földrészKód) Földrész(földrészKód, név) 7.1 Hozzuklétre a fentitáblákat. 7.2 Szúrjuk be a Fantasia nevűországotfiktívadatokkal. 7.3 Hányország van a Földön? 7.4 Listázzukkiazösszesolyanországnevétterületszerintnövekvősorrendben, ahol a hivatalosazangol. 7.5 Listázzukkiazösszes, francianyelvenbeszélőország GDP-inekátlagátföldrészkódonkéntcsoportosítva. 7.6 Adjuk meg EurópaésÁzsialakosainakösszlétszámátkétmódon is. 7.7 Számoljukkiazegyesföldrész(kódok)hoztartozónépsűrűséget.

More Related