Oktassunk adatbázis-kezelést! Micskei Zoltán Microsoft Referencia Iskola
1 Mai témánk Próba emeltszintű érettségi feladatsorának megoldása Eszközök: –Access 2003 Előny: könnyen használható felület Hátrány: nem teljesen SQL kompatibilis –SQL Server Query Analyzer Előny: SQL-92 kompatibilis, jó SQL szerkesztő, nagyon jó súgó többek közt az SQL nyelvről Hátrány: Nem lehet jelentést készíteni benne
2 1. feladat Hozzon létre adatbázist Unió néven. Megoldás: –Access: Fájl / Új –SQL: CREATE DATABASE Unio;
3 1. feladat - folytatás Töltse be (importálja) az Európai Unióról szóló eu.txt fájlt! Az adattáblát mentse Eu néven! Töltse be a Föld országainak néhány adatát tartalmazó fold.txt fájlt is. Megoldás: –Access: Fájl\Külső adatok átvétele\Importálás (Határolt, Tabulátor + Az első sor tartalmazza a mezőket, Új tábla, Access adjon elsődleges kulcsot) –SQL: nincs erre SQL parancs, program specifikus funkció
4 Táblaszerkezet Eu: OrszagFovarosTeruletEgtaj 0_14ev15_64ev65f_ev Lakos_ezerfoGDP_mrdeur_02 Fold: orszagfoldreszfovarosterulet fo_ezer_02
5 2. feladat Adja meg az Unió területét, valamint lakosságának számát ezer főben. Megoldás: –SQL: SELECT SUM(terulet) AS osszterulet, SUM(lakos_ezerfo) AS osszlakossag FROM Eu; –(ha szeretnénk elmenteni a lekérdezést SQL Serveren is, készítsünk nézetet: CREATE VIEW osszesites AS … )
6 3. feladat Adja meg, hogy az egyes országokban hány fiatalkorú, munkaképes korú illetve időskorú van. (A lakosság számából és a megadott százalékértékekből számolható.) Megoldás: –SQL: SELECT orszag, fovaros, terulet, lakos_ezerfo * 1000, [0_14ev] * lakos_ezerfo * 1000 AS fiatalkoru, [15_64ev] * lakos_ezerfo * 1000 AS munkakepes, [65f_ev] * lakos_ezerfo * 1000 AS idoskoru FROM Eu;
7 4. feladat Bővítse az Eu táblát egy mezővel, melyben az egyes országok népsűrűségét lehet kiszámolni! Megoldás: –Access: táblán jobb gomb / tervező nézet / új oszlop: típus: szám, mezőszélesség egyszeres –SQL: ALTER TABLE Eu ADD nepsuruseg float;
8 4. Feladat - folytatás Készítsen frissítő lekérdezést, mely a rendelkezésre álló adatokból kiszámítja a népsűrűséget! A terület km 2 -ben, a lakosság ezer főben van megadva, az eredmény fő/km 2 -ben legyen! Megoldás: UPDATE Eu SET nepsuruseg = lakos_ezerfo*1000/terulet;
9 5. feladat Adja meg azon országok nevét és egy főre jutó GDP adatát, melyeknek az egy főre jutó GDP értéke nagyobb mint Magyarországé! Megoldás: SELECT Orszag, GDP_mrdeur_02 FROM Eu WHERE GDP_mrdeur_02 > ( SELECT GDP_mrdeur_02 FROM Eu WHERE orszag = 'Magyarország' );
10 6. feladat Készítsen lekérdezést, melyben kilistázza a Föld országai közül azokat, melynek területe vagy lakossága nagyobb, mint az Európai Unió összterülete vagy lakossága! Megoldás: SELECT orszag, foldresz, fovaros FROM Fold WHERE (fo_ezer_02 > (SELECT osszlakossag FROM osszesites)) OR ( terulet > (SELECT osszterulet FROM osszesites) )
11 7. feladat Készítsen jelentést az Európai Unió országairól, feltüntetve az ország nevét, fővárosát, területét, égtáját és a csatlakozás évét! Az adatokat csoportosítsa a csatlakozás éve, ezen belül égtáj szerint! A csatlakozás évére vonatkozóan jelenítse meg a területek összegét és rendezze a kiírást az országok neve szerint ábécérendben!
12 8. feladat Hozzon létre egy táblát GDP néven, melyben az Európai Unió országai és 2002-es évi GDP értékei szerepelnek, valamint egy ev mező, amelybe minden esetben 2002 kerül! Megoldás: –Access: táblakészítő lekérdezés –SQL: SELECT Orszag, GDP_mrdeur_02, 2002 AS ev INTO GDP FROM Eu;
13 9. feladat Adjon a GDP táblához egyedi azonosítót, és állítsa be kulcsként! Megoldás: –Acces: új oszlop, indexelt, elsődleges kulcs –SQL: ALTER TABLE, CREATE INDEX, CONSTRAINT
feladat Készítsen űrlapot a GDP táblához, hogy évről-évre bővíteni lehessen az aktuális adatokkal! Megoldás: –Access: új űrlap létrehozása varázsló segítségével
feladat Az űrlapon állítsa át az ország nevének beviteli helyét legördülő lista típusúra, melynek adatait az Unió táblából vegye!
16 További információ Office Online - Access: y.aspx?TopLevelCat=CH &CTT=6&Ori gin=ES y.aspx?TopLevelCat=CH &CTT=6&Ori gin=ES SQL Server Books Online (angol): x?FamilyID=a6f79cb1-a f-8a4b- bd77a7da194b&DisplayLang=en x?FamilyID=a6f79cb1-a f-8a4b- bd77a7da194b&DisplayLang=en SQL Server 2005 Express: t.aspx t.aspx
Köszönöm a figyelmet! Kérdések?