Következő esemény

Mi ez itt, kérem?

Személyes hangvételű írások az informatika érettségiről, érettségizőknek és tanáraiknak.

Írjad csak!

Programozik a gyerek

Feedek és ilyesmik

e-mailt kérek az új bejegyzésekről


(nem foglak spammelni)

XML

Kövesd az oldalt!

facebook twitter

2011.04.19. 08:00 raerek

Openoffice.org Base + MySQL - Mit kell tudnod a középszintű informatika érettségihez

Címkék: informatika érettségi középszint gyakorlati adatbázis kezelés informatika érettségi

(E cikk közvetlen előzménye az informatika érettségin használható Openoffice.org Base + MySQL szoftverkettős beállítását taglaló tegnapi cikkem. Ha még nem olvastad, olvasd el azt is.)

Az emelt szintű informatika érettségiben tudnod kell SQL-nyelvű lekérdezést írni. Középszinten elvileg nem, sőt, nem kell ismerned az SQL-t. Van azonban pár olyan dolog, amit tudnod kell az SQL-nyelvből, ha Openoffice.org-gal és MySQL-lel oldod meg az informatika érettségi adatbázis-kezelős feladatát.

Az Openoffice.org Base - azaz az Openoffice.org adatbázis-kezelője - az a program, amely miatt az Openoffice-szal érettségiző valós, percekben mérhető hátrányt szenvedett az eddigi érettségiken az Access-szel érettségiző társaival szemben. A hátrányt alighanem még évekig el fogják szenvedni a bátrak. Úgy érzem azonban, hogy ez a hátrány egy-két nap gyakorlással könnyen ledolgozható pár percre, mondjuk ötre. Ezt meg ki kell bírnod.

Na lássuk, mi is okozza a hátrányt:

Ezeket részletezem ebben a blogbejegyzésben.

Az adatbázis elkészítése

Pont a tegnapi cikkemben volt szó a MySQL-konzol indításáról. Indítsd el a konzolt, és amikor az informatika érettségi feladatában oda jutsz, hogy "Készítsen adatbázist bugylibicska néven", akkor kiadod ezt az utasítást (persze neked nem lesz sárga):

infoerettsegi: mysql openoffice tudnivalok 01.PNG

és kész is van. Az SQL nyelvű utasításokat - itt a CREATE DATABASE - nagybetűvel szokás írni, de nem kell azzal.

Ekkor indítod az Openoffice.org Base-t, és kapcsolódsz a már létező adatbázishoz. (Hogyan? Látni fogod a videókban, és az egyik régebbi írásomban.)

Miután kapcsolódtál, és végeztél az importtal, érdemes visszalépned a MySQL-konzolba, és használatba venned az adatbázist. Ez nem kötelező elem, és az Openoffice.org Base belsejében végzett munka szempontjából tökmindegy, hogy kiadod-e ezt az utasítást. Ha azonban itt, a konzolban írsz lekérdezést, jól jöhet a dolog. Szóval kiadod ezt az utasítást:

infoerettsegi: mysql openoffice tudnivalok 02.PNG

Ha valamiért törölni kell az adatbázist - akár a MySQL, vagy a gép újraindítása után -, akkor a DROP DATABASE a barátod. Azaz nem törlöd, hanem "eldobod", ahogy az SQL nyelv mondja. Így:

infoerettsegi: mysql openoffice tudnivalok 03.PNG

Megjegyeznénk, hogy az adatbázisod így nem az Openoffice-ba kerül, hanem a MySQL-be, azaz az Openoffice.org Base-ből mentett fájl nem tartalmazza az adatbázist, hanem csak a lekérdezéseket - abból sem biztos, hogy mindet - és a jelentést. Így az adatbázist külön kell beadni.

Az adatbázisfájl(ok) importja

Az importálás többféleképp lehetséges, a célszerű út a következő:

  1. Az adattábla általában egy szövegfájlban van. A kiterjesztését txt-ről csv-re módosítjuk, pont úgy, ahogy a táblázatkezelős feladatoknál tettük.
  2. A csv-kiterjesztésű fájlt megnyitjuk az Openoffice.org Calc-kal, azaz a táblázatkezelővel.
  3. Kijelöljük az összes adatot (Szerkesztés - Mindet kijelöli, vagy Ctrl+A billentyűkombináció, vagy az oktatóvideókban használt kattintás).
  4. Átmegyünk az adatbázissal már összeköttetésben lévő Base-be, és ott jobb egérgomb - beillesztés.
  5. Kapunk majd pár kérdést, figyelünk az adattípusokra és az elsődleges kulcsra. Adhatunk újat, megjelölhetünk elsődleges kulcsnak egy már létezőt - ahogy úri kedvünk diktálja. A megoldásvideókban mindre láthatunk példát. De ha nem adunk meg elsődleges kulcsot, nem fogunk tudni új adatot felvenni!
  6. A Calc-ot becsukhatjuk.

A MySQL LIMIT utasítása

A középszintű informatika érettségi feladataiban arra használjuk a MySQL LIMIT utasítását, amire a TOP-ot az Access esetében. Azaz, ha például ki kell választani a legöregebb boszorkányt, akkor csökkenően rendezünk a boszik életkorára - ilyenkor a legöregebb lesz legfelül - majd csak az első sort jelenítjük meg. Ha ki kell választani a három dobogós lovat, akkor növekvően rendezünk a lovak időeredményére, és csak a három elsőt jelenítjük meg.

A rendezést még meg tudjuk csinálni Openoffice.org Base-ben, de az első akárhány érték kiválasztására se ikon, se menüpont, se semmi. Sebaj, gondolja az ember, átváltunk SQL-nézetre, és az utasítás legvégére beírjuk, hogy LIMIT 1, ha az első sort szeretnénk látni, LIMIT 3, ha az első hármat, és így tovább. Ez így jó is, de ha futtatnánk a lekérdezést, akkor az Openoffice azt hazudja, hogy hibás a lekérdezést Ez ökörség, de most álljunk le vitatkozni egy szoftverrel? :)

Úgyhogy kimásoljuk a még működő változatot, és beillesztjük a MySQL-konzolba, a végére odaírjuk, hogy LIMIT 1; (kell a pontosvessző!), és futtatjuk a lekérdezést. Menni fog.

Kisebb (?) probléma, hogy miként adja be az ember az ilyen lekérdezést? Hát, Openoffice.org Base-ben tutira nem, mert nem engedi elmenteni, azaz megoldás például, ha elmented egy szöveges fájlba, jegyzettömbbel. A tantárgyfelelőssel végzett pár évvel ezelőtti levelezésem szerint ez így elfogadható.

A műveletsorra majd' minden megoldásvideóban láthatsz példát. Ha majd felkúsznak a videók, kilinkelek pár konkrét esetet.

Módosító lekérdezések

Módosító lekérdezést Openoffice.org Base-ben nem lehet írni.

A módosító lekérdezésekben általában egy oszlop (mező) adatait módosítjuk, de nem mindenhol, hanem csak bizonyos sorokban (rekordokban). Én szeretem a módosító lekérdezést először választóként megírni, kilistázni azokat a rekordokat, amiket módosítunk. Ha ez megy, akkor átváltunk SQL-nézetre, és kimásoljuk a lekérdezés végét. Az elejét nekünk kell megírnunk a MySQL-konzolban. Úgyhogy váltsunk át a konzolra, és

  • Ha még nem tettük volna meg, adjuk ki a USE adatbázisnév; parancsot.
  • Adjuk ki az UPDATE adatbázisnév SET oszlopnév=kívánt érték WHERE és ide jön a kimásolt vég a választó lekérdezésből. A parancs nem vonható vissza (egyébként ez Accessben is így van).
  • A lekérdezést kimásoljuk és jegyzettömbben, vagy hasonlóban szöveges fájlba mentjük - mint a LIMIT-es lekérdezések esetében.

Például, ha van egy osztaly nevű adatbázisunk, és abban egy tagok tábla, ahol a nev mező mellett van egy cipomeret mező is, és az a feladat, hogy a 46-os, vagy nagyobb cipőméretűek nevét írjuk át BIGFOOT-ra, akkor Openoffice-ban összerakjuk a választó lekérdezést, amely megjeleníti mindenkinek a nevét, akinek a cipője elég nagy. Ez SQL-nézetben ilyen lesz:

SELECT nev FROM tagok WHERE cipomeret >= 46

A konzolban megírjuk a módosítás elejét:

UPDATE tagok SET nev='BIGFOOT'Majd betoldjuk az előző lekérdezés végét:

UPDATE tagok SET nev='BIGFOOT' WHERE cipomeret >= 46;

Ne hagyjuk ki a pontosvesszőt. Futtassuk a lekérdezést, másoljuk jegyzettömbbe, és mentsük. És meg is vagyunk!

Táblakészítő lekérdezés írása

A táblakészítő lekérdezést is választó lekérdezésként írjuk meg, ám ezúttal lényegesen egyszerűbb dolgunk lesz, mint az imént. Ugyan most is másolunk majd a konzolba, de ez alkalommal az egész lekérdezést, tokkal-vonóval - tehát nem kell azon gógyizni, hogy mit másoljak, és mit ne.

Azaz:

  1. Írjuk meg a választó lekérdezést Openoffice.org Base-ben.
  2. Váltsunk SQL-nézetre és másoljuk ki a lekérdezést.
  3. Átváltunk a MySQL-konzolra, s ha még nem tettük volna meg, adjuk ki az USE adatbázisnév; parancsot.
  4. Írjuk be, hogy CREATE TABLE táblanév (zárójelbe a kimásolt rész); Ne felejtsük el a pontosvesszőt.
  5. Nyomjunk Enter-t.

Ha például az iménti táblánál az a feladat, hogy a legalább 46-os lábúak nevét és cipőméretét írjuk a nagylabuak táblába, csökkenő cipőméretes sorrendben, akkor összerakjuk a választó lekérdezést, ami SQL-nézetben ilyen lesz:

SELECT nev, cipomeret FROM tagok WHERE cipomeret >= 46 ORDER BY cipomeret DESCA MySQL-konzolba beírjuk hogy:

CREATE TABLE nagylabuak (majd bemásoljuk a lekérdezést,

CREATE TABLE nagylabuak (SELECT nev, cipomeret FROM tagok WHERE cipomeret >= 46 ORDER BY cipomeret DESC

és kitesszük a végére a zárójelet és a pontosvesszőt, majd futtatjuk a lekérdezést.

CREATE TABLE nagylabuak (SELECT nev, cipomeret FROM tagok WHERE cipomeret >= 46 ORDER BY cipomeret DESC);

Oszt' ennyi. A lekérdezést persze ugyanúgy jegyzettömbbe másolod és onnan mented, mint az előző esetben.

Élő példa a 2010. májusi lekérdezés 6. feladatánál lesz.

Az adatbázis beadása

Ha mindennel megvagyunk, akkor eljött az ideje a művünk beadásának. Mit is adunk be:

  • Az Openoffice.org Base által mentett fájlt - .odb kiterjesztéssel (ebben van a lekérdezések nagyja, meg a jelentés)
  • A konzolban megírt lekérdezéseket - txt kiterjesztésű fájl, vagy fájlok
  • És magát az adatbázist, hiszen az importálás sikerességéért, a megfelelő adattípusok beállításáért is szokott pont járni

És ez utóbbit hogyan? Hiszen az a MySQL-ben van!

Nos, az adatbázis tartalmát egy fájlba ömlesztjük, azaz dumpoljuk. A 2005. októberi videó kivételével minden megoldás ezzel végződik - az is csak azért nem, mert elfelejtettem. Szóval példa van elég, nézegesd.

Statikus vagy dinamikus jelentés?

Az Openoffice.org Base a jelentés készítésekor megkérdi, hogy milyet parancsolunk. Minthogy a feladatok erről nem szoktak nyilatkozni, készítsünk olyat, amilyet úri kedvünk diktál.

Egyéb iszonyok

A fenti lista nem teljes, van még pár dolog, amivel bajunk lehet. Majd ahogy töltöm fel a videókat és eszembe jutnak a dolgok, kilinkelem őket és írok róluk.

Szólj hozzá!

A bejegyzés trackback címe:

https://infoerettsegi.blog.hu/api/trackback/id/tr442833637

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.