CSORDÁS JÁNOS: AZ ADATBÁZIS-KEZELÉS ALAPJAI BUDAPEST, DECEMBER 27. Az adatbázis-kezelés alapjai

Hasonló dokumentumok
Access alapok. Megnevezés Művelet Minta. Új adatbázis létrehozása. Új / Üres adatbázis.. Tábla létrehozása tervező nézetben.

Access gyakorlati feladatok lépésről lépésre

Adatbázisok II. rész

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

ALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok.

Választó lekérdezés létrehozása

Ezek után már csak a Mentés és a Lekérdezés Futtatása (az ellenőrzés miatt) van hátra. Ügyeljünk, hogy a mentésnél a megadott (Kezd) nevet adjuk meg.

Lekérdezések I. Egyszerű választó lekérdezések

Készítsen egy adatbázist (egytáblásat) egy számítástechnikai tanfolyam résztvevőiről. Az adattábla rögzítse a következőket:

Választó lekérdezések

Access XP alapokon Tartalomjegyzék

Fogalmak: Adatbázis Tábla Adatbázis sorai: Adatbázis oszlopai azonosító mező, egyedi kulcs Lekérdezések Jelentés Adattípusok: Szöveg Feljegyzés Szám

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Táblázatos adatok használata

ADATBÁZISKEZELÉS ADATBÁZIS

Adatbázis-kezelés Access XP-vel. Tanmenet

Féléves feladat. Vezetéknév Keresztnév

Adatbázis kezelés Delphiben. SQL lekérdezések

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

1. Az Access 2000 indítása után válasszuk az Üres adatbázis létrehozása pontot,

Alkalmazói rendszerek ACCESS ZH - javítókulcs Informatika tanár MSC, levelező tagozat, január 06.

Felhasználói leírás a DimNAV Server segédprogramhoz ( )

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

Paraméteres-, összesítı- és módosító lekérdezések

2 Access 2016 zsebkönyv

INFORMATIKAI ALAPISMERETEK

A SELECT működése. Ttanar tábla: Tdiak tábla:

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

Adatbázisok* tulajdonságai

Az importálás folyamata Felhasználói dokumentáció verzió 2.1.

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Microsoft Access alapok

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Az állományokban UTF-8 kódolással magyar betűk is vannak, ezért az az Unicode (UTF-8) kódolást.

LBRA6i integrált rendszer

Tájékoztató. Használható segédeszköz: -

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

Oktatási segédanyag. Weboldalszerkesztési gyakorlatok

Tájékoztató. Használható segédeszköz: -

Óravázlat. az ECDL oktatócsomaghoz. 5. modul. Adatbáziskezelés. Krea Kft Budapest, Szőlő u 21. Tel/fax: / krea@krea.

Táblázatkezelés, Diagramkészítés. Egyéb műveletek

Tájékoztató. Használható segédeszköz: -

POSZEIDON dokumentáció (1.2)

Új adatbázis létrehozása

Adatbázis rendszerek SQL nyomkövetés

Informatikus informatikus Térinformatikus Informatikus É 1/6

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

Tájékoztató. Használható segédeszköz: -

Függvények II. Indítsuk el az Excel programot! A minta alapján vigyük be a Munka1 munkalapra a táblázat adatait! 1. ábra Minta az adatbevitelhez

Adatbázis-kezelés - Lekérdezések, jelentések készítése

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

Adatbázis használat I. 2. gyakorlat

Outlook Express használata

ReszlAd fájl, kitöltési útmutató:

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

Adatbáziskezelés alapjai. jegyzet

Közoktatási Statisztika Tájékoztató 2012/2013. Használati útmutató

QGIS Gyakorló. 1. kép. A vektor réteg (grassland.shp).

Készítsen egytáblás adatbázist könyveinek nyilvántartására! Az adattábla a következő adatok rögzítésére legyen alkalmas: (mező hossza: 30, kötelező)

Adatbázis, adatbázis-kezelő

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Aromo Szöveges értékelés normál tantárggyal

Dokumentum létrehozása/módosítása a portálon:

Téradatbázisok használata QGIS-ből A DB kezelő modul 2.2 verzió

kommunikáció Megoldások

Rövid leírás a Make Your Mark szoftver használatához

Adatintegritás ellenőrzés Felhasználói dokumentáció verzió 2.0 Budapest, 2008.

Microsoft Word előadás. Bevezetés az informatikába I.

Gábor Dénes Számítástechnikai Emlékverseny 2005/2006 Alkalmazói kategória, III. korcsoport Második forduló

Molnár Mátyás. Bevezetés a PowerPoint 2013 használatába magyar nyelvű programváltozat. Csak a lényeg érthetően!

Adatbázis-kezelés Access XP-vel. Feladatgyűjtemény

A Windows az összetartozó adatokat (fájlokat) mappákban (könyvtárakban) tárolja. A mappák egymásba ágyazottak.

StartÜzlet online számlázó modul Használati Útmutató

INFORMATIKA. PRÓBAÉRETTSÉGI május KÖZÉPSZINT. Pontozási és javítási útmutató

Haladó irodai számítógépes képzés tematika

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0

Szöveges értékelés. Magiszter.NET. Elérhetőségeink: Tel: 62/ ; Fax: 62/ Honlap:

Táblázatok. Táblázatok beszúrása. Cellák kijelölése

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

Gyári alkatrészek rendelése modul

Segédanyag a WORD használatához

Prezentáció, Prezentáció elkészítése. Diaminták

FELHASZNÁLÓI ÚTMUTATÓ

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

Duál Reklám weboldal Adminisztrátor kézikönyv

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

INFORMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Kézikönyv. Szelekciós jegyzék létrehozása

Gyorsított jegybeírás. Felhasználói dokumentáció verzió 2.0.

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Bódy Bence Az SQL egy újabb példán keresztül

Irodai asszisztens Irodai asszisztens Gépíró, szövegszerkesztő Irodai asszisztens

1. kép. A Stílus beállítása; új színskála megadása.

CÍMJEGYZÉK ÜDVÖZLÜNK A TALK FUSION CÍMJEGYZÉK HASZNÁLATI ÚTMUTATÓJÁBAN

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Aromo Szöveges értékelés kódolt tantárggyal

G-Mail levelezőrendszerben fiók levélforgalmának kezelése Outlook Express program segítségével

Átírás:

1 CSORDÁS JÁNOS: AZ ADATBÁZIS-KEZELÉS ALAPJAI A SZÖVEG ELLENŐRZÉSE FOLYAMATBAN VAN, A KIADVÁNY KISEBB HIBÁKAT TARTALMAZHAT. BUDAPEST, 2016. DECEMBER 27.

CSORDÁS JÁNOS: AZ ADATBÁZIS-KEZELÉS ALAPJAI Tartalom I. Bevezetés... 3 II. Start... 3 III. Lekérdezések... 6 IV. A feladatok megoldása... 6 2sok... 6 2 3spec... 6 4kis-kun... 9 5bontas... 11 6izsak... 14 7kapocs... 15 hianyzo, hirvivo... 16 V. Kiegészítő feladatok... 17 1LanyokSzama (összesítő függvények: SUM, AVG, COUNT, MIN, MAX)... 17 2MarNemCsoportos (az Is Null, Is Not Null használata)... 17 3Legkorabban. (A legkisebb vagy a legnagyobb érték megjelenítése rendezéssel és a visszatérés értékének módosításával.)... 17 4HanyNap(mezők közötti műveletek - ismétlés)... 18 5Honapok (kiegészítő függvények használata: year(), month(), day())... 18 6KiNemFiu (ÉS, VAGY operátorok használata)... 19 7csoporttarsak (két lekérdezés egyben)... 20 VI. Mellékletek... 22

I. Bevezetés Az alábbiakban a 2006. novemberi középszintű informatika érettségi adatbázis-kezelés feladtatának megoldását fogom bemutatni. A megoldással kapcsolatban az alábbi megjegyzéseket tartom fontosnak: - az összes érettségi feladat megtalálható itt: https://www.oktatas.hu/kozneveles/erettsegi/feladatsorok. A források, a feladatleírások és a megoldások is letölthetők. Az érettségire készülőknek mindenképpen ajánlott az érettségi előtt néhány feladatot ezek közül megoldani. - az érettségi feladatok tartalomjegyzéke megtalálható itt: o http://informatika.fazekas.hu/erettsegi/kozepszintu-feladatok/ o illetve itt: http://informatika.fazekas.hu/erettsegi/emelt-szintu-feladatok/ - a megoldásról évekkel korábban egy videót is készítettem. Ez megtalálható az http://infoerettsegi.hu/access/ oldalon. - az Access összefoglaláshoz készítettem egy prezentációt is. Ez szintén megtalálható az http://infoerettsegi.hu/access/ oldalon. - az alábbiakban megoldott érettségi feladat nem az eredeti érettségi feladat. A feladatleírást és a hozzá tartozó forrást módosítottam, igyekeztem az összes típuspéldát belesűríteni ebbe az egy feladatba. Úgy gondolom, aki önállóan is meg tudja oldani az alábbi feladatokat, és akiknek a szövegértés nem okoz nehézséget, az az emelt és középszintű érettségin is boldogulni fog. 3 II. Start Minden Access feladat megoldása az alábbi lépésekkel kezdődik: A) a forrásfájl(oka)t tartalmazó mappában létrehozzuk a feladatleírásban szereplő néven az adatbázist (jelen esetben: osztaly) B) megnyitjuk az adatbázist, majd Külső adatok>importálás és csatolás>szövegfájl (Vigyázat! NEM az Exportálás blokkról van szó!) C) Kitallózzuk a fájlt, majd megnyitjuk. Az importálás során ügyeljünk az alábbiakra: - Szerepel a feladatleírásban, hogy a fájl kódolása UTF-8-as? o IGEN:

1. A mintán olvashatatlan a szöveg (a Pál szót karikáztam be) 2. Speciális 3. Kódlap 4. Kattintsunk a Tovább > gombra o NEM: Kattintsunk a Tovább > gombra - Az első sor tartalmazza a mezőneveket (kötelező!) 4 Amennyiben hiányzik a pipa, az importálás hibás lesz (ezért keletkezik +1 tábla importálás után Importálási hibák néven) Ha bepipáltuk, kattintsunk a Tovább > gombra! - Ellenőrizzük a mezőtípusokat! Semmiképpen sem szabad ezt a lépést kihagyni, ha valamelyik mező típusa logikai (igen/nem) VAGY ha dátum/idő. Az előbbi esetben ugyanis alapértelmezetten szám típust rendel ehhez a mezőhöz az Access (mivel a szöveges fájlban nem checkbox-ok vannak, hanem pipa helyett -1(vagy 1) és üres négyzet helyett 0). Az utóbbi esetben, dátumnál előfordulhat, hogy szöveg lesz a mező típusa. Típusok, más néven, amelyeket a varázsló helyesen ismer fel: Szöveg=Rövid szöveg VAGY Hosszú szöveg Szám=Bájt VAGY Egész VAGY Hosszú egész 1 1 Az egyenlőség a fenti példában pontatlan. Ugyanis rövidebb vagy hosszabb szöveg, illetve kisebb, nagyobb vagy még nagyobb egész szám tárolására alkalmasak a különböző típusok.

Ellenőrzés után kattintsunk a Tovább > gombra - Az elsődleges kulcs beállítása: 5 Nem feltétlenül a második lehetőség a megfelelő. Mindig a feladatleírástól függ: 1. Az Access adjon hozzá elsődleges kulcsot: - Ha nincs kulcsmező a forrásfájlban - Számláló típusú lesz, neve pedig Azonosító - Az Azonosító név szinte sosem jó, a feladatleírás általában mást kér. Az importálás befejezése után a táblázatot megnyitva módosítsuk a mező nevét! 2. Magam választom ki: - Ha a kulcsmező a forrásfájlban van 3. Ne legyen elsődleges kulcs: - Ennek használatára az érettségin még nem volt példa. Az elsődleges kulcs kiválasztása után kattintsunk a Tovább > gombra - A táblanév ellenőrzése. A feladatleírás szerint, általában nagyon ritkán kell megváltoztatni: Kattintsunk a Befejezés gombra! (És nem mentjük az importálási lépéseket) D) Kapcsolat beállítása. Több tábla esetén, a feladatleírás szerint: Adatbáziseszközök>Kapcsolatok

III. Lekérdezések Lekérdezések segítségével adatokat gyűjthetünk ki az adatbázisból, illetve módosíthatjuk az adattáblázatok adatait is. Ennek megfelelően a lekérdezéseknek kétféle típusa van: 6 1. Választó lekérdezés. Az alapértelmezett lekérdezés, az esetek 99%-ában ezt használjuk. Segítségével adatokat gyűjthetünk ki az adattáblázat(ok)ból. 2. Módosító lekérdezések. Segítségükkel új adattáblázatot hozhatunk létre, illetve az adattáblázat(ok) adatait módosíthatjuk (új rekordo(ka)t fűzhetünk egy adattáblázathoz), frissíthetjük az adatokat (pl.: ha dolgozók esetén egységesen 10%-kal meg kell emelni a fizetéseket), illetve rekordokat törölhetünk (pl.: tévesen felvett diákok/dolgozók). Megjegyzések: - a módosító lekérdezések az importált adatokat módosítják. A nem körültekintően megtervezett lekérdezések tönkretehetik az adattáblázato(ka)t. (Pl.: ha nem aduk meg feltétlelt törlő lekérdezés esetén, az Access mindent rekordot kitöröl) - a módosítások elvégzéséhez nem elegendő pusztán nézetet váltani a lekérdezés megtervezése után. A lekérdezést futtatni is kell (rá kell kattintani a Futtatás feliratú gombra. Ld. fent az ábrán.) - a táblakészítő lekérdezés futtatása tulajdonképpen azt jelenti, hogy egy lekérdezés eredménye külön táblázatba kerül. - ha használhatatlanná tettünk egy adattáblázatot (az összes lekérdezés elkészítése után, és a csengetés előtt 5 perccel) ne essünk kétségbe! Szüntessük meg a kapcsolatokat (ha vannak), töröljük a használhatatlan táblát, importáljuk újra csak azt az egyet, állítsuk be újra a kapcsolatokat. Ezt követően ott folytathatjuk, ahol az előbb abbahagytuk, előző lekérdezéseink gond nélkül lefutnak. Csak a hibás lekérdezést ne futtassuk újra IV. A feladatok megoldása 2sok Lekérdezésben gyűjtse ki azon diákok nevét (csak a nevét), akiknek több mint 1 testvérük van! Csak a diákok nevére van szükség. Az érettségin pontot veszít, aki mindkettőt bejelöli. 3spec Viszonylag kevés azon családok száma, ahol az együttlakók száma és a testvérek száma között nem három a különbség. Lekérdezéssel adja meg számukat! (3spec) Haladjunk lépésenként!

1. határozzuk meg az együttlakók száma és a testvérek száma közötti különbséget! Két mezőről van szó. A feladatleírás szerint az együttlakók számát a csaladszam mező mutatja meg, a testvérek számát pedig a tesoszam. Az adattáblázatban 37 diák adatai szerepelnek, tehát 37 kivonást kell elvégeznünk. Mezők értékei között matematikai műveletet úgy végezhetünk (úgy hivatkozhatunk egy-egy mező minden elemére), hogy a mező nevét szögletes zárójelbe tesszük: adatlap (eredmény) nézet Megjegyzések: - A fenti esetben megjelenik a Kif1 (Kifejezés1) mezőnév. Ennek az az oka, hogy a kivonással létrehozott új, eddig nem létező mező nevét nem adtuk meg (nem lehet csaladszam vagy tesoszam, mivel a két mező különbségéről van szó). Ezt tervező nézetben megváltoztathatjuk, lehet pl. kulonbseg. Fontos! Csak a Kif1 írható át, a kettőspontnak és a szóköznek ott kell maradnia! - Látható, hogy mind a 37 diák esetén meghatároztuk a különbséget. 7 2. Állítsunk be feltételt: nem három a különbség. Az egyenlőséget a <> jelekkel tagadhatjuk: Megjegyzések: - A Kif1 helyett kulonbseg jelenik meg. - Összesen 6 diák esetén igaz a feltétel. adatlap (eredmény) nézet 3. Számoljuk meg hogy hány diákra igaz a feltétel, azaz konkrét előfordulások helyett egy szám, jelen esetben a 6-os jelenjen meg! adatlap (eredmény) nézet Miért nem az jelenik meg, amire számítottunk? Mit csinál az Access?

8 A kiértékelés menete: 1. a kulonbseg meghatározása 2. megszámlálás: Count Eredményhalmaz: 37 rekord (37 diák esetén vonunk ki) Hány rekord (sor) van a kulonbseg mezőben? => 37. A Count miatt 37 sorból csak 1 marad. A megmaradt cella értéke: 37 3. feltétel: <>3 A fenti cella értéke csak akkor jelenjen meg, ha tartalmára igaz ez <>3.Mivel a cellában 37 van a feltétel teljesül, ezért jelenik meg 37! az eredmény meghatározásának lépései Aki nem hiszi, járjon utána! Magyarul: a fenti 3 lépést külön-külön elvégezve, lépésenként az adatlap nézetet megtekintve ugyanez az eredmény lesz látható. Mi lenne a kiértékelés helyes sorrendje? A kiértékelés menete: Eredményhalmaz: 1. a kulonbseg meghatározása esetén vonunk ki) 37 rekord (37 diák 2. feltétel: <>3 A fenti sorok csak akkor jelenjenek meg, ha tartalmukra igaz ez <>3. 6 esetben igaz, ezért 6 sor jelenik meg! 3. megszámlálás: Count Hány rekord (sor) van ebben a mezőben? => 6. A Count miatt 6 sorból csak 1 marad. A megmaradt cella értéke: 6 az eredmény meghatározásának lépései Hogyan tudjuk az alapértelmezett kiértékelés sorrendjét megváltoztatni? Erre használható a Where: - Ugyanott találjuk, ahol a Count-ot: a legördülő menüből választható ki. - Egy függvénnyel pl. a Count-tal - együtt használható. Arra jó, hogy feltételt állítsunk be, még a függvény érvényre jutása jelen esetben a Count előtt. - Lényegében ez igaz a Group by-ra is. Group by-jal együtt akkor használjuk a Where-t, ha csoportosítás nélkül szeretnénk egy (vagy több) mezőre feltételt beállítani.

4. Tehát helyesen a megoldás: adatlap (eredmény) nézet Megjegyzések: - A Where csak feltétel beállítására használható, a Where-t tartalmazó mezőt megjeleníteni nem lehet - A Count-tal érintett mező nevének megváltoztatása nem szükségszerű. Azért változtattam meg, mert az eredményre (6) leginkább ez vonatkozik, hiszen az érintett diákok számát mutatja meg. 9 Feladatok: 1. Próbáld ki, hogy mi történik akkor, ha a fenti lekérdezés első oszlopában szándékosan (általában véletlenül) elrontod az egyik mező nevét, milyen hibaüzenetet kapsz!? (pl. tesoszam helyett tesószám) 2. Gondold végig, hogy a Group by mire használható. Mi lenne az alábbi két lekérdezés eredménye. ha külön-külön mindkét mezőre Group-by-t állítanánk be? Megoldás 2 adatlap (eredmény) nézet adatlap (eredmény) nézet 3. Gondold végig, hogy az összesítő függvények közül melyek azok, amelyek csak szám típusú mező esetén használhatóak! Megoldás 3 4. Próbáld meg elkészíteni az következő lekérdezést: Számold meg, hogy hány diáknak van legalább két testvére! Megoldás: melléklet, 1. ábra 5. Ugye észrevetted, hogy lényegében a 2sok lekérdezést használtuk fel? 4kis-kun Az angol nyelvet a 4. csoportban jövőre nem Kis tanár úr tanítja, hanem Kun tanárnő, ezért a 4. Kis bejegyzést le kell cserélni 4. Kun -ra. Készítsen az adatok módosításához lekérdezést és futtassa le! Haladjunk lépésenként! 1. Módosító, konkrétan frissítő lekérdezésről van szó. Elkezdjük a lekérdezést, bevonjuk a táblát, majd kiválasztjuk a Frissítő lekérdezést: 2 Az 1. esetben semmi sem változna, nem tud csoportosítani az Access. A 2. esetben három sor helyett kettő maradna. 3 Csak szám típusú mező esetén használható a SUM és az AVG. A MIN, MAX, COUNT használható szöveges típusú mező esetén is.

Ennek hatására egy új sor került a tervezőrácsra. A megfelelő értékeket felvesszük: Ha nézetet váltunk, akkor a feltételnek megfelelő cellákat fogjuk látni. Összesen 14 diákot érint a tanárcsere: 10 Ezzel még a csere nem történt meg. A cseréhez a lekérdezést futtatni kell: Majd megerősítjük a szándékunkat: Végül elmentjük a lekérdezést a megadott néven. Megjegyzés. Próbáld meg megnyitni az elmentett módosító lekérdezést! Vigyázz, ha egy módosító lekérdezés ikonjára kettőt kattintasz, megnyitás helyett lefuttathatod! Ha tervező nézetben szeretnéd megjeleníteni, használd a jobb egér gombot! Feladatok: 0. Nyisd meg az előbbi lekérdezést jobb egér gombbal Tervező nézetben! 1. Mit gondolsz, ha nézetet váltasz, hány rekord lesz a lekérdezés eredményében? Megoldás 4 2. Mit gondolsz, vissza tudod-e állítani az eredeti állapotot, ha a 4. Kis-t és a 4. Kun-t a tervezőrácson felcseréled, majd futtatod a lekérdezést? Megoldás 5 3. Mi történik akkor, ha az eredeti lekérdezést feltétel nélkül futtatod le? Megoldás 6 4. Próbáld meg elkészíteni a következő lekérdezést: Minden diák 2014. január 1-jén került a csoportba. Sajnos a bekerult mező teljesen üres. Lekérdezéssel írd be a hiányzó értékeket! Megoldás utasításba foglalva 7 (Ne ijedj meg a megoldástól! Próbáld megérteni, hogy mi a lényege! Ha az utasítás önmagában nem segít, másold ki, majd egy üres lekérdezésbe, SQL nézetbe szúrd be, majd válts át tervező nézetbe!) 5. Próbáld meg elkészíteni a következő lekérdezést: Sajnos véletlenül tévedésből a kikerult mezőbe egy diákhoz 2013. december 20. került be. Javítsd 2014. december 20-ra! Megoldás 8 4 Nulla, hiszen a feltétel továbbra is 4. Kis, az előbb viszont az összes 4. Kis-t lecseréltük 4. Kun-ra, így a feltételnek megfelelő érték már nem szerepel az adatbázsiban. 5 Nem feltétlenül. Ha az első csere előtt 4. Kun már szerepelt az adatbázisban, akkor 4. Kis lesz ott is, ahol a frissítés előtt is 4. Kun volt. 6 Mindenkinek az angoltanára 4. Kun lesz. Importálhatod újra a táblát! 7 UPDATE Adatok SET Adatok.bekerult = "2014.01.01"; 8 UPDATE Adatok SET Adatok.kikerult = #12/20/2014# WHERE (((Adatok.kikerult)=#12/20/2013#));

6. Próbáld meg elkészíteni a következő lekérdezést: Avon Mór tévedésből került be a csoportba. Lekérdezéssel törölt az adattáblázatból! Megoldás 9 7. Lekérdezés segítségével hozz létre egy adattáblázatot 2sok-tabla néven. Ez kizárólag a 2sok lekérdezésben található mezőket és rekordokat tartalmazza! Megoldás 10 5bontas Készítsen jelentést, melyben matematika szerint, azon belül angol nyelv szerint, majd 2. idegen nyelv szerint csoportosítva, névsorban jeleníti meg a diákok nevét! Jelentés segítségével a megadott szempontok szerint nyomtatásra készítjük elő az adatokat. Tudnivalók a jelentésről: - Mindig lekérdezéssel készítjük elő. Ez azt jelenti, hogy kiválogatjuk azokat a mezőket, amelyek kellenek a jelentéshez ÉS feltételt állítunk be, ha szükséges. Csoportosítást és rendezést nem szükséges beállítani. A lekérdezést elmentjük, neve megegyezik a jelentés nevével. A fenti feladat megoldásához szükséges az 5bontas lekérdezés, amely a következő mezőket tartalmazza: nev, mat, angol, 2nyelv. Feltétel nincs, rendezni, csoportosítani nem szükséges. - Jelentést jelentés varázslával készítünk. Kiválasztjuk a jelentéshez tartozó lekérdezést, majd az abban szereplő összes mezőt. A fenti feladat megoldása során: 11 - A következő párbeszédablakban csoportosíthatunk. A csoportosítás azt jelenti, hogy a csoportosított mezők értékei ismétlődés nélkül jelennek majd meg a jelentésben. A fenti feladat esetén 3 csoport lesz: mat>angol>2nyelv. Csoportok a létrehozott jelentésben: 9 DELETE Adatok.nev FROM Adatok WHERE (((Adatok.nev)="Avon Mór")); 10 SELECT Adatok.nev INTO [2sok-tabla] FROM Adatok WHERE (((Adatok.tesoszam)>1));

12 A csoportok kialakítása a varázslóban a megfelelő sorrendben: - - A következő lépés mindig a rendezés beállítása. A rendezést egy gomb segítségével változtathatjuk meg. A gombon szereplő felirat jelzi az aktuális rendezést. A fenti példa szerint névsorrendben, azaz a nev mező értékei szerint növekvő sorrendben kell megjeleníteni az adatokat:

- Ezután a tájolást célszerű megváltoztatni fekvőre, még akkor is, ha a feladat ezt nem kéri. Ekkor ugyanis a jelentésbe bevont mezők megjelenítésére több hely fog rendelkezésre állni, így általában később nem nekünk kell arról gondoskodni, hogy minden látható legyen: 13 - Végül ellenőrizzük a jelentés nevét, majd befejezzük a jelentés varázsló használatát: - Előfordulhat, hogy módosítanunk kell a mezők elrendezését, feliratát szélességét, stb. Tervező nézetben módosítunk, nyomtatási nézetben ellenőrzünk:

14 Megjegyzések: - A jelentésfej a jelentés címe, egyszerűen módosítható, átírható - Minden mezőhöz két objektum tartozik: 1: mezőnév, 2: mezőértékek Ha valamelyik mező nevét szeretnénk megváltoztatni, csak a megfelelő 1. objektumot kell módosítani. Ha a mezők sorrendjét, méretét szeretnénk megváltoztatni, akkor az 1. és 2. objektumhoz is hozzá kell nyúlni. pl.: 6izsak Készítsen lekérdezést, mely kiírja Hát Izsák minden adatát! Íme az egyik lehetséges megoldás. Itt a * használatára hívnám fel a figyelmet. A * az összes mezőt megjelenti. Erre feltétel nem állítható be, így a feltételül szolgáló mezőt újra be kell vonni, de még egyszer a lekérdezés eredményében nem akarjuk látni: Feladat: Egy kis kitérő. Szervesen ez nem kapcsolódik a feladathoz.

1. Próbáld meg elkészíteni a következő lekérdezést: Két ugyanolyan nevű diák jár az adott csoportba. Hogy hívják őket? adatlap (eredmény) nézet 2. Próbáld meg elkészíteni a következő lekérdezést: Egy diáknak és angol tanárának ugyanaz a neve. Hogy hívják őket? Mivel két különböző mezében kell megkeresni az azonos értéke(ke)t: 15 adatlap (eredmény) nézet Miért szükséges a szögletes zárójel? Mit jelentene a feltétel szögletes zárójel nélkül? 11 7kapocs Hát Izsák földkörüli út miatt hosszan fog hiányozni. Adja meg új lekérdezésben, de az előző lekérdezés felhasználásával, azon tanulók nevét, akik vele minden csoportban még testnevelés órán is együtt járnak! A listában ne jelenjen meg Izsák neve! Az előző lekérdezés eredménye: Ezeket a cellákat az előző gyakorlófeladat mintájára feltételként fogjuk használni, így a 6izsak lekérdezést is be kell vonni ebbe a lekérdezésbe: Azonban ekkor furcsa dolog történik. Mivel a táblában van elsődleges kulcs, a lekérdezésben pedig hozzá tartozó másodlagos kulcs, az Access automatikusan kapcsolatot állít be a két objektum között: Ezzel viszont az a probléma, hogy mivel a 6izsak lekérdezésben csak egy diák adatai találhatóak meg, a vele kapcsolatban álló táblából is csak Hát Izsák adatai jeleníthetők meg: 11 Azért kell, mert egy mező minden értékét megvizsgáljuk. Ha nem lenne szögletes zárólej, akkor konkrétan azokat a diákokat keresnénk, akiknek a neve angol.

adatlap (eredmény) nézet Szüntessük meg a kapcsolatot! Jobb egér gombbal a kapcsolatra kattintva válasszuk a Törlést: 16 Most már megoldhatjuk a feladatot: adatlap (eredmény) nézet Megjegyzések: 1. A feladat szerint Hát Izsákot ki kellett zárnunk. Ezt állítottuk be az első oszlopban. 2. A lekérdezésre így hivatkoztunk: [lekérdezés/tábla].[mező], pl. konkrétan [6izsak].[mat]. Erre azért volt szükség, mert a táblában is van ugyanolyan nevű mező (pl.: [Adatok].[mat]), így ha kizárólag a mezőnevet adtuk volna meg (pl.: [mat]) nem lett volna egyértelmű, hogy melyik mezőt szerettük volna beállítani feltételként, a tábláét vagy a lekérdezését. 3. Ez a feltételmegadás ([lekérdezés/tábla].[mező]) mindig használható. Pl. az utolsó gyakorlófeladatban (6izsak, 2. feladat) a feltételhez írhattuk volna ezt is: [Adatok].[angol] 12. hianyzo, hirvivo Egy lekérdezést másolhatunk Ctrl+C-vel, és beilleszthetünk más néven Ctrl+V-vel (ugyanez természetesen a jobb egér gombbal is elvégezhető). Ettől kezdve a feladat egyszerűen megoldható. Mivel a kérdéses diáknak csupán a vezetékneve ismert, a hianyzo lekérdezés feltétele: Szövegrészlet kereséséhez a Like kulcsszó illetve a * használható. Feladatok: 1. Milyen feltételt adnál meg, ha a Bekre szó a néveben bárhol előfordulhat (pl. Nagy-Bekre Pál)? Megoldás 13 2. Milyen feltételt adnál meg, ha a Bekre vezetéknevű diákokat szeretnéd kizárni? Megoldás 14 12 Pont helyett felkiáltójel is használható: [Adatok]![angol] 13 Like *Bekre* 14 Not Like Bekre*

3. Milyen feltételt adnál meg, ha a Bekre vagy a Hát vezetéknevű diákokat szeretnéd megjeleníteni: Megoldás 15 V. Kiegészítő feladatok Az alábbiakban összegyűjtöttem azokat a feladattípusokat néhány konkrét példával, amelyek az informatika érettségin előfordulhatnak. 1LanyokSzama (összesítő függvények: SUM, AVG, COUNT, MIN, MAX) Határozd meg, hogy hány lány jár a csoportba! 17 Megoldás1 Megoldás2 (mivel nem szükséges csoportosítani nem szerint, ezért szerencsésebb ezt használni) Feladatok: 1. Határozd meg, hogy összesen hány testvére van azoknak a diákoknak, akik spanyolt is tanulnak! Megoldás: melléklet, 2. ábra 2. Határozd meg, hogy átlagosan hány testvére van azoknak a diákoknak, akik spanyolt is tanulnak! Megoldás: melléklet, 3. ábra 2MarNemCsoportos (az Is Null, Is Not Null használata) Jelenítsd meg azoknak a diákoknak a nevét, akik már nem járnak a csoportba! Ez azt jelenti, hogy a kikerult mezőbe az érintett diákoknál szerepel a csoportból való kikerülés dátuma, a többi mezőnél ÜRES (NULL) a cella értéke: Nyilván ha a csoporthoz tartozó diákokra lennénk kíváncsiak, akkor a feltétel Is Null lenne. 3Legkorabban. (A legkisebb vagy a legnagyobb érték megjelenítése rendezéssel és a viszszatérés értékének módosításával.) Jelenítsd meg annak a diáknak a nevét, aki a legnagyobb családban él: Feadatok: 1. Jelenítsd meg annak a diáknak a nevét, akinek a legtöbb testvére van! Megoldás 16 2. Jelenítsd meg annak a diáknak a nevét, aki a legkorábban kikerült a csoportból! 15 Like Bekre* or Like Hát* 16 SELECT TOP 1 Adatok.nev FROM Adatok ORDER BY Adatok.tesoszam DESC;

18 Feltétel nélkül helytelen eredményt kapnánk, ugyanis a NULL érték a legkisebb, így növekvő rendezés esetén a lista elejére azok a diákok kerülnének, akik a még a csoport tagjai. 4HanyNap(mezők közötti műveletek - ismétlés) Jelenítsd meg annak a diáknak a nevét, aki a legrövidebb ideig volt a csoport tagja! Jelenjen meg az is, hogy hány napig volt csoporttag! A napok számába számítson bele a bekerülés napja is! Haladjunk részfeladatonként! 1. Felhasználjuk az előző lekérdezést 2. Meghatározzuk a napok számát: 3. A lekérdezést módosítanunk kell, mivel a bekerülés napja is beleszámít a napok számába. Nézzünk egy példát! Ha egy diák 2014.01.01-jén került be, és 2014.01.03-án került ki, akkor 4 napig volt a csoport tagja (1-jén, 2-án, 3-án, 4-én). Hogy lehet ezt meghatározni? 2014.01.03.-2014.01.01.+1 Azaz a végleges megoldás: Feladat: 1. Átlagosan hány napig voltak csoporttagok a csoportból kikerült diákok? Megoldás: melléklet, 4. ábra 5Honapok (kiegészítő függvények használata: year(), month(), day()) Jelenítsd meg, hogy a csoportba már nem járó diákok melyik hónapban kerültek ki a csoportból! A lekérdezésben a diákok neve is jelenjen meg! adatlap (eredmény) nézet

A függvények működése: a dátum típusú mezőt kiegészítjük a függvénnyel. Pl.: Month([kikerult]). A Month() helyett a Year(), Day() is használható. A függvény alkalmazása során létrejövő mezőnek nevet is adhatunk: Kikerülés hónapja: Month([kikerult]). Természetesen a kettőspont és a szóköz kötelező. Feladat: 1. Jelensítsd meg annak a diáknak a nevét, aki 15-én került ki a csoportból (az év és a hónap tetszőleges). Megoldás 17 6KiNemFiu (ÉS, VAGY operátorok használata) Az adattáblázatban a nem és a tesi mező összefügg egymással. A tesi mezőben L szerepel, ha lányról van szó, azaz a lányok testnevelés órájára jár az adott diák. Ekkor a nem mező értéke is Igaz. Az egyik lány esetén vagy a nem vagy a tesi mező értéke nem megfelelő (Hamis, vagy F ). Melyik lányról van szó, és melyik bejegyzés hibás? 19 Mivel két eset lehetséges: adatlap (eredmény) nézet Mivel a nem mező értékének Igaznak (-1-nek) kellene lennie, ez az érték hibás. Feladatok: 1. Frissítő lekérdezés segítségével módosítsd a hibás értéket! Megoldás 18. Megjegyzés: tökéletes megoldás pl. az SQL beágyazás lenne. Ld. alább. 2. Jelenítsd meg azoknak a diákoknak a nevét, akik az 1. Sió angol csoportba járnak, vagy lányként az alfa matek csoportba járnak. VAGY 17 SELECT Adatok.nev, Day([kikerult]) AS [Kikerülés hónapja] FROM Adatok WHERE (((Day([kikerult]))=15)); 18 UPDATE Adatok SET Adatok.[nem] = True WHERE (((Adatok.nev)="Bal Margó"));

3. Jelenítsd meg azoknak a diákoknak a nevét, akik fiúként az 1. Sió angol csoportba járnak, vagy lányként az alfa matek csoportba járnak. Megoldás 19 7csoporttarsak (két lekérdezés egyben) Kik járnak ugyanabba a matek csoportba, amelyikbe Ne Pál is jár? A lekérdezésben Ne Pál ne jelenjen meg! Az első lépés, hogy a lekérdezést részlekérdezésekre bontsuk: 1. Melyik matek csoportba jár Ne Pál? (ezt 7csoporttarsakSeged néven mentjük) 20 2. Kik járnak ugyanebbe a matek csoportba? (ez lesz a végleges lekérdezés, a 7csoporttarsak) Kezdjük az elsővel: Miután ezt elmentjük, kétféleképpen folytathatjuk: 2/A) megoldás SQL beágyazással: A fenti lekérdezés eredménye: Figyelem!!! Az SQL beágyazás csak akkor működik, ha a lekérdezés eredményében csak egyetlen-egy érték van! Több érték esetén a 2/B módszert kell használni. A beágyazás lépései: - SQL nézetbe lépünk - az SQL utasítást zárójelbe tesszük, majd kijelöljük és másoljuk: - elkészítjük a 2. lekérdezést, és feltételként beszúrjuk a másolt utasítást: 19 SELECT Adatok.nev FROM Adatok WHERE (((Adatok.angol)="1. Sió") AND ((Adatok.[nem])=False)) OR ((( Adatok.[nem])=True) AND ((Adatok.mat)="alfa"));

2/B) megoldás a segédlekérdezés bevonásával: 21 Feladatok: 1. Kik járnak ugyanabba az angol csoportba, amelyikbe Ne Pál illetve Heu Réka is jár? A lekérdezésben Ne Pál ÉS Heu Réka ne jelenjen meg! Megoldás: melléklet, 5. ábra 2. A 7kapocs lekérdezést SQL beágyazásokkal végezd el! 3. A 6KiNemFiu lekérdezés felhasználásával módosítsd a hibás értéket a nem mezőben. Ezt a lekérdezést ágyazd be a frissítő lekérdezésbe! Megjegyzés: Az alábbi lekérdezés csak akkor működik, ha még nem futtattuk le a frissítő lekérdezést. Az 1. (beágyazandó) lekérdezés: SELECT Adatok.nev FROM Adatok WHERE (((Adatok.[nem])=False) AND ((Adatok.tesi)="L")) OR (((Adatok.[nem])=True) AND ((Adatok.tesi)="F")); A 2. (végleges) lekérdezés: UPDATE Adatok SET Adatok.[nem] = True WHERE (((Adatok.nev)=(Az 1. (beágyazandó) lekérdezés:))); Beágyazva: UPDATE Adatok SET Adatok.[nem] = True WHERE (((Adatok.nev)=(SELECT Adatok.nev FROM Adatok WHERE (((Adatok.[nem])=False) AND ((Adatok.tesi)="L")) OR (((Adatok.[nem])=True) AND ((Adatok.tesi)="F"));)));

VI. Mellékletek 1. ábra 22 2. ábra 3. ábra 4. ábra 5. ábra