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:



Hasonló dokumentumok
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:

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

Adatbázis-kezelés. MySQL, PhpMyAdmin. 1. gyakorlat

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

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

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

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

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

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

Adatbázis-kezelés. Harmadik előadás

Adatbázis rendszerek SQL nyomkövetés

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

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

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

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

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

LBRA6i integrált rendszer

Adatbázis Rendszerek II. 8. Gyakorló környezet

Adatbázis rendszerek tervezése

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

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

PHP-MySQL. Adatbázisok gyakorlat

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

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

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

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Java és web programozás

Vizuális programozás gyakorlat

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

LOGISZTIKAI ADATBÁZIS RENDSZEREK UNIÓ, ALLEKÉRDEZÉSEK

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 Rendszerek II. 2. Gyakorló környezet

Adatbázisok elmélete 10. előadás

SQL DDL-1: táblák és megszorítások

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

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

BEVEZETÉS Az objektum fogalma

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

Java és web programozás

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

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

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:


LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

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

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

Bevezetés: az SQL-be

Több tábla összekapcsolásán alapuló lekérdezések

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben

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

Több tábla összekapcsolásán alapuló lekérdezések. Copyright 2004, Oracle. All rights reserved.

Spatial a gyakorlatban

SQL gyakorló feladatok. 6. Adatbázis gyakorlat április 5.

SQL DDL-2 (aktív elemek) triggerek

Az SQL nyelv. SQL (Structured Query Language = Strukturált Lekérdező Nyelv).

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

SQL parancsok feldolgozása

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

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:

Adatbázisok* tulajdonságai

Webfejlesztés 4. alkalom

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

Oktatási cloud használata

GEIAL Kovács László. GEIAL Kovács László GEIAL Kovács László

Adatbázisok elmélete 9. előadás

Többtáblás lekérdezések megjelenítése

B I T M A N B I v: T M A N

ADATBÁZIS RENDSZEREK I BEADANDÓ

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

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

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

Adatbázis, adatbázis-kezelő

Adatbáziskezelés php-ben MySQL adatbáziskezelı rendszert használva

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.

Adatbázisok elmélete 9. előadás

Webapp (in)security. Gyakori hibákról és azok kivédéséről fejlesztőknek és üzemeltetőknek egyaránt. Veres-Szentkirályi András

Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet

Adatbázis I. 11. előadás. Kulcsok az SQL ben. Hivatkozásépségi megszorítások és idegen kulcsok.

Adatbázisok II. rész

A szürke háttérrel jelölt fejezet/alfejezet szövege a CD-mellékleten található. A CD-melléklet használata. 1. Elméleti áttekintés 1

Adatbáziskezelés - SQL. Forrás: dr. Kovács László: Adatbázisok tervezésének és kezelésének módszertana Computerbooks

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Webtárhely létrehozása a helyen. Lépések Teendő 1. Böngészőbe beírni: 2. Jobb oldalon regisztrálni (tárhelyigénylés).

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

Táblák és a közöttük / az adatmezők közötti kapcsolatok grafikusan megjelenítve. 7 tábla, adatmezőik, bennük elsődleges és külső kulcsok

Gyakorlati vizsgatevékenység B

Rendszergazda kézikönyv

Adatbáziskezelés. SQL parancsok. Függvények

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.

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

Átírás:

1 Adatbázis kezelés 3. gyakorlat 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: Tábla kapcsolatok létrehozása, kezelése Új tábla létrehozása, adatokkal való feltöltése Lekérdezés csoportosítással Lekérdezés több tábla kapcsolatával Nézet létrehozása Csatlakozás az adatbázishoz Indítsunk egy böngészőt, és írjuk bele: http://193.224.129.119/dbgyak. A gyakorlat céljaira használjuk az uneptunkód felhasználónevet. Az ehhez tartozó jelszó is ugyanaz. Az ABC123 neptunkódú hallgató felhasználói neve tehát uabc123, jelszava uabc123. A továbbiakban, amikor e leírásban az uneptun vagy hasonló nevet használjuk, akkor azt minden hallgató a saját neptun kódjának behelyettesítésével értelmezze. Új feladatok Vizsgáljuk meg a jarmu tábla szerkezetét: SHOW CREATE TABLE jarmu Ellenőrizzük, hogy a tábla típusa InnoDB legyen, ha nem az, a korábban már használt paranccsal állítsuk be a jarmu és napsugár táblákat: ALTER TABLE napsugár ENGINE=InnoDB; ALTER TABLE jarmu ENGINE=InnoDB;

2 Azt is láthatjuk, hogy milyen néven (pl. jarmu_ibfk_1) hivatkozhatunk a két tábla kapcsolatára. Ez a név hasznos például, ha törölni akarjuk: ALTER TABLE jarmu DROP FOREIGN KEY jarmu_ibfk_1; Tegyük fel, most azt szeretnénk megoldani, hogy ha egy gyereket törlünk, mert például kijárta az óvodát, akkor a hozzá tartozó jármű is törlődjön az adatbázisból: ALTER TABLE jarmu ADD FOREIGN KEY(tulajdonos) REFERENCES napsugár (id) ON DELETE CASCADE; Próbájunk is egy olyan gyereket törölni, akinek van járműve és figyeljük meg, mi történik. (Visszafelé nem működik ez a törlés, hiszen ha a járművet töröljük, a gyerek megmarad! Igény esetén ezt is meg lehetne oldani például triggerrel, de a konkrét megoldás nem tananyag.) Számoljuk meg, hány gyerek van a napsugár táblában: SELECT COUNT(*) FROM napsugár; Csoportosítsuk a gyerekeket a csoportkódjuk alapján: SELECT * FROM napsugár GROUP BY csoportkód Figyelem! Ennek a lekérdezésnek nehéz értelmet találni: az egyes csoportokba tartozó első rekord adatait írta ki, ez a gyakorlatban nem hasznos. A csoportképzésnél nekünk kell meghatározni, milyen adatokra vagyunk kíváncsiak a csoportról. Például, nézzük meg az egyes csoportok létszámát: SELECT csoportkód, COUNT(*) AS Csoportlétszám FROM napsugár GROUP BY csoportkód

3 Oldjuk meg, hogy a csoportkódok mellett/helyett a csoportok valódi nevei szerepeljenek! Ehhez egy kis előkészületre és újabb ismeretekre van szükségünk, ezért jegyezzük meg ezt a feladatot, és később visszatérünk rá. Kezdjük el a megvalósításhoz szükséges lépéseket. Ehhez hozzunk létre egy csoport táblát, töltsük fel adatokkal, kössük a napsugár táblához. Ezt a tanultak alapján végezzük el önállóan. Gyakorlásképpen a megfelelő SQL parancsokkal végezzük el ezt a feladatot is, ne a kliens grafikus felületén. Ha a csoport táblát létrehoztuk, akkor egy olyan lekérdezést kell írnunk, amiben összekötjük a napsugár és csoport táblákat egymással, hiszen a szükséges adatok egy része az egyik, másik része a másik táblában van tárolva. Az összekapcsolás megértéséhez először képezzük a két tábla Descartes szorzatát: SELECT * FROM napsugár, csoport;

4 Figyeljük meg jól az eredményt: minden gyerekhez minden csoportot hozzákötöttünk. Azt mondhatjuk, hogy a Descartes szorzat teljes halmazát leképezni a sok esetben értelmetlen, haszontalan, ráadásul a táblák elemszámának szorzata adja az eredményhalmaz sorainak a számát, ami hatalmas rekordszámhoz vezethet. Esetünkben csak a megfelelően párosításokra van szükség, ahol a párosítás alapja a napsugár tábla Csoportkód mezőjének és a Csoport tábla id mezőjének az egyezősége: SELECT * FROM napsugár, csoport WHERE napsugár.csoportkód = csoport.id;

5 Így már a megfelelő párok képződtek: Ebben a lekérdezésben kétszer is szerepel a csoportkód, holott valójában egyik oszlopra sincsen szükségünk. Ezért ki is vehetjük a lekérdezésből, és csak a számunkra fontosakat hagyjuk meg, például: SELECT napsugár.név AS Gyerek, jel AS Jel, csoport.név AS Csoportnév, anyjaneve FROM napsugár, csoport WHERE napsugár.csoportkód = csoport.id; Figyeljünk arra, hogy ha egy mező neve nem egyértelmű a táblanév nélkül (mert több táblában is van ugyanolyan nevű), akkor meg kell adnunk a tábla nevét is táblanév.mezőnév formában.

6 Most már visszatérhetünk a korábbi feladatunkhoz, számoljuk össze az egyes csoportok létszámát, és a lekérdezés eredményében a csoportok nevei szerepeljenek: SELECT csoport.név AS Csoportnév, COUNT(*) AS Csoportlétszám FROM napsugár, csoport WHERE napsugár.csoportkód = csoport.id GROUP BY csoportkód;

7 Az eredménynek ehhez hasonlóan kell kinéznie: A fenti lekérdezést az óvoda vezetése olyan gyakran lefuttatja, hogy jó lenne valahogy megoldani, hogy a fenti listához bármikor hamar hozzájussunk. Első megoldásként eszünkbe juthat, hogy egy új táblát generálunk a fenti lekérdezés beágyazásával: CREATE TABLE letszamok AS SELECT csoport.név AS Csoportnév, COUNT(*) AS Csoportlétszám FROM napsugár, csoport WHERE napsugár.csoportkód = csoport.id GROUP BY csoportkód; Ez azonban elég gyenge megoldás, hiszen statikus. Töröljük is ki önállóan! Jó lehet azonban például az év eleji állapot rögzítésére: CREATE TABLE letszamok_2014_szept_1 AS SELECT csoport.név AS Csoportnév, COUNT(*) AS Csoportlétszám FROM napsugár, csoport WHERE napsugár.csoportkód = csoport.id GROUP BY csoportkód;

8 Készítsünk egy olyan dinamikus táblát, aminek tartalma mindig a fenti lekérdezés aktuális eredményét tartalmazza! Az ilyen speciális táblákat nézetnek (VIEW) nevezzük: CREATE VIEW letszamok AS SELECT csoport.név AS Csoportnév, COUNT(*) AS Csoportlétszám FROM napsugár, csoport WHERE napsugár.csoportkód = csoport.id GROUP BY csoportkód; A nézet tehát olyan tábla, ahol nem a benne tárolt adatokat, hanem az adatok előállítására szolgáló lekérdezést tároljuk. Gondoljuk végig ennek a hatásait: A nézetnek gyakorlatilag nincs helyfoglalása A nézet használata némileg több időt vehet igénybe, hiszen a kapcsolt lekérdezést mindig le kell futtatni A nézet tartalma mindig más táblák tartalmától függ A nézeten logikus módon nem lehet adatokat módosítani, például rekordot törölni A nézetek kényelmessé teszik a gyakori lekérdezések használatát A nézet segítségével nagyon jól szabályozhatók az egyes felhasználók jogkörei. A fentiek figyelembe vételével a nézetet úgy használhatjuk, mint egy táblát: SELECT * from letszamok; Listázzuk ki azon csoportokat, amelyek létszáma az átlagosnál magasabb: SELECT * FROM letszamok WHERE Csoportlétszám > (SELECT AVG(Csoportlétszám) FROM letszamok); Készítsünk nézetet, ami a győri lakcímmel rendelkező gyerekek összes adatát tartalmazza! A feladat befejezése A munka végeztével jelentkezzünk ki az adatbázis kliensből.