Tartalomjegyzék I. rész
1. lecke
A MySQL és a relációs adatbázisok Néhány szó a MySQL-rõl
A relációs adatbázis fogalma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Egy gyakorlati példa relációs adatbázisra . . . . . . . . . . . . . . . . . . . . . . . 4 Mi az a MySQL? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 A MySQL legfõbb sajátosságai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 A MySQL különbözõ kiadásai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 A MySQL felhasználói jogosultságai és a támogatás . . . . . . . . . . . . . . . . 9 Párbeszéd a MySQL-lel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 ODBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 További nyelvek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Kérdések és válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Gyakorló feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2. lecke
Fogalom-meghatározások
3. lecke
Az adatbázis-tervezés folyamata
Az alapelemek meghatározásai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 A táblák . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 A mezõk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 A rekordok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 A kulcsok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Kérdések és válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Gyakorló feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 A jó adatbázisterv fontossága . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 A táblák kapcsolatának típusai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Egyegy kapcsolatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Egytöbb kapcsolatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Többtöbb kapcsolatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 A normalizálás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Gondok az egyszerû táblázattal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Az elsõ normálforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 A második normálforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 A harmadik normálforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 A tervezés folyamata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Kérdés és válasz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Gyakorló feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
II. rész
4. lecke
A környezet beállításai A MySQL-ügyfélprogram
A MySQL parancssoros felülete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 A MySQL monitor elindítása Windows alatt . . . . . . . . . . . . . . . . . . . . . 42 A MySQL monitor elindítása Linux/Unix alatt . . . . . . . . . . . . . . . . . . . 44 Parancsok futtatása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 A MySQL felügyeleti eszközei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 A mysqladmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 A mysqldump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Más felületek a MySQL-hez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 phpMyAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 A MySQL-Front . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 A MySQLManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Kérdés és válasz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Gyakorló feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5. lecke
A MySQL biztonsági lehetõségei
III. rész
Az adatbáziskezelõ-alkalmazás tervezési folyamata
Biztonsági alapelvek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 A MySQL elindítása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 A MySQL-kapcsolat biztonsága . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Bevezetés a MySQL jogosultsági rendszerébe . . . . . . . . . . . . . . . . . . . . . . 60 A kétlépéses azonosító folyamat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 A felhasználói jogosultságok kezelése . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Felhasználók létrehozása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Jogosultságok visszavonása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Kérdések és válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Gyakorló feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6. lecke
Az adatbázis tervezése és létrehozása
A célok kijelölése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 A táblák elvi felvázolása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 A kapcsolatok meghatározása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Az adatbázis létrehozása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
A felhasználók jogosultságainak meghatározása . . . . . . . . . . . . . . . . . 78 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Kérdés és válasz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Gyakorló feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
7. lecke
Saját tábláink létrehozása 1. rész
8. lecke
Saját tábláink létrehozása 2. rész
IV. rész
A táblák kezelése
A MySQL adattípusai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Numerikus adattípusok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Dátum- és idõtípusok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Karakterlánc-típusok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 A táblák létrehozásának parancsformátuma . . . . . . . . . . . . . . . . . . . . . . . 88 A mezõk elnevezése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Elõzetes táblalétrehozó utasítások . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Kérdések és válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Gyakorló feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 A kulcsok azonosítása a táblákban . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Elsõdleges kulcsok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Egyedi kulcsok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Indexek hozzáadása a tábláinkhoz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Mikor használjunk, és mikor ne használjunk kulcsokat és indexeket? . . . 98 A táblalétrehozó utasítások végleges formája . . . . . . . . . . . . . . . . . . . . . 100 A táblalétrehozó utasítások futtatása . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 A táblák létrehozása a MySQL monitorban . . . . . . . . . . . . . . . . . . . . 103 Az SQL-parancsok használata külsõ fájlból . . . . . . . . . . . . . . . . . . . . 105 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Kérdések és válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Gyakorló feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
9. lecke
Adatbázisunk tábláinak feltöltése
Az INSERT parancs használata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Az INSERT parancsról részletesebben . . . . . . . . . . . . . . . . . . . . . . . . 114 Függvények eredményeinek használata az INSERT utasításban . . . . . 116 Adatok importálása más adatbázisokból . . . . . . . . . . . . . . . . . . . . . . . . . 117 Az adatok felkészítése az adatimportra . . . . . . . . . . . . . . . . . . . . . . . 118 Szerkezet nélküli tábla adatainak felhasználása . . . . . . . . . . . . . . . . . 118 A Microsoft Access adatainak felhasználása . . . . . . . . . . . . . . . . . . . . 121 A mysqlimport használata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
A LOAD DATA INFILE parancs használata . . . . . . . . . . . . . . . . . . . . . 126 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Kérdések és válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Gyakorló feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
10. lecke
Adatlegyûjtés tábláinkból
11. lecke
A SELECT utasítás haladó használata
12. lecke
Az adatok módosítása és törlése
A SELECT parancs használata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 A SELECT utasítás eredményének sorba rendezése . . . . . . . . . . . . . . 133 Az eredmény korlátozása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Néhány összegzõ függvény használata a SELECT utasítással . . . . . . . 136 A WHERE használata a lekérdezésekben . . . . . . . . . . . . . . . . . . . . . . 139 Mûveletjelek használata a WHERE feltételben . . . . . . . . . . . . . . . . . . 141 Karakterláncok összehasonlítása a LIKE használatával . . . . . . . . . . . . 143 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Kérdések és válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Gyakorló feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 A GROUP BY feltétel használata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 A SELECT használata INSERT utasításban . . . . . . . . . . . . . . . . . . . . . . . . 153 Többtáblás lekérdezések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 A JOIN használata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 Gyakorló feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 Rekordok módosítása az UPDATE paranccsal . . . . . . . . . . . . . . . . . . . . . 162 Feltételes UPDATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 A pillanatnyi oszlopértékek használata az UPDATE parancsban . . . . 164 Függvények használata az UPDATE utasításokban . . . . . . . . . . . . . . 165 A REPLACE parancs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 A DELETE parancs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 A DELETE-lekérdezések hatékonyságának növelése . . . . . . . . . . . . . 169 Feltételes DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Gyakorló feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
13. lecke
Még néhány szó a DELETE parancsról
14. lecke
A táblaszerkezet módosítása
V. rész
A MySQL beépített függvényeinek használata
Kapcsolatban álló rekordok törlése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Táblák és adatbázisok törlés elõtti listázása . . . . . . . . . . . . . . . . . . . . . . . 177 A mysqlshow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 A SHOW parancs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 A DROP parancs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 A DROP TABLE parancs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 A DROP DATABASE parancs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Kérdések és válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Gyakorló feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 A DESCRIBE használata a táblaszerkezet megtekintésére . . . . . . . . . . . . 186 Táblák átnevezése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Az ALTER parancs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Mezõk, indexek és kulcsok hozzáadása a táblához . . . . . . . . . . . . . . 189 A mezõ-meghatározások módosítása . . . . . . . . . . . . . . . . . . . . . . . . . 192 Mezõk, indexek és kulcsok törlése . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Kérdés és válasz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 Gyakorló feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
15. lecke
A MySQL karakterlánc-kezelési lehetõségei
A leggyakrabban használt karakterlánc-függvények . . . . . . . . . . . . . . . . 200 Karakterláncok összefûzése és hosszuk megállapítása . . . . . . . . . . . . 200 Karakterek eltávolítása és hozzáadása . . . . . . . . . . . . . . . . . . . . . . . . 202 Keresési függvények . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Részkarakterláncok kezelése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Karakterlánc-módosító függvények . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Ritkábban használt karakterlánc-függvények . . . . . . . . . . . . . . . . . . . . . 207 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Gyakorló feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
16. lecke
A MySQL numerikus függvényei
Numerikus függvények használata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Egyszerû matematikai mûveletek . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Matematikai függvények . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Trigonometrikus függvények . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Kerekítõ függvények . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 Gyakorló feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
17. lecke
Idõ és dátum a MySQL-ben
VI. rész
Tranzakciók használata
Idõ- és dátumkezelési függvények használata . . . . . . . . . . . . . . . . . . . . 226 Napok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Hónapok és évek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Hetek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 Órák, percek és másodpercek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 A dátum és az idõ formázása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 Mûveletek dátumokkal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Különleges függvények és átalakítási lehetõségek . . . . . . . . . . . . . . . . . 237 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Gyakorló feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
18. lecke
Ismerkedés a tranzakciókkal
Dióhéjban a tranzakció fogalmáról . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 A tranzakciók jellemzõi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 A COMMIT és a ROLLBACK kifejezések . . . . . . . . . . . . . . . . . . . . . . 245 Lezárás a sorok szintjén . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 Tranzakció-biztos táblatípusok a MySQL-ben . . . . . . . . . . . . . . . . . . . . . 247 BerkeleyDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 InnoDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 Gemini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Gyakorló feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
19. lecke
Tranzakciók a gyakorlatban
Táblák tranzakció-biztossá alakítása . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Tranzakciók használata alkalmazásainkban . . . . . . . . . . . . . . . . . . . . . . 253 Mikor használjunk tranzakció-biztos táblákat? . . . . . . . . . . . . . . . . . . 253 A contactDB adatbázis-szerkezet módosítása . . . . . . . . . . . . . . . . . . . 254 Tranzakciók programozása a kapcsolatkezelési rendszerben . . . . . . 254 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Gyakorló feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
VII. rész
20. lecke
MySQL-kiszolgálók rendszerfelügyelete
Adatbázisok hatékonyabbá tétele és finombeállítása
Hatékony rendszer kiépítése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 A benchmark() függvény használata . . . . . . . . . . . . . . . . . . . . . . . . . 262 A MySQL kezdeti beállításai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 A legfontosabb kezdõértékek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 A tábla szerkezetének egyszerûsítése . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 A lekérdezések egyszerûsítése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 Kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Ellenõrzõ kérdés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Gyakorló feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
21. lecke
Adatmentés és visszaállítás
22. lecke
Alapvetõ adatbázis-felügyeleti parancsok
VIII. rész
A MySQL kapcsolata más programnyelvekkel
Az adatmentésrõl dióhéjban . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 A mysqlhotcopy használata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 A BACKUP TABLE és a RESTORE TABLE parancsok használata . . . . . . . 273 A myisamchk használata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 Gyakorló feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 A FLUSH parancs használata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 A SHOW parancs használata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 Adatbázisok és táblák adatainak lekérdezése . . . . . . . . . . . . . . . . . . 285 A tábla szerkezetének felderítése . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 A rendszer állapotának lekérdezése . . . . . . . . . . . . . . . . . . . . . . . . . . 290 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 Gyakorló feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
23. lecke
A MySQL és a Perl
A Perl elérése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 A Perl DBI és a MySQL DBD elérése . . . . . . . . . . . . . . . . . . . . . . . . . 298 A Perl mûködésének gyors ellenõrzése . . . . . . . . . . . . . . . . . . . . . . . 298 A MySQL és a Perl kapcsolata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 A kezdeti kapcsolat kiépítése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Lekérdezések futtatása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 MySQL adatok kezelése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 Adatok beillesztése a Perllel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Adatok kiolvasása a Perl segítségével . . . . . . . . . . . . . . . . . . . . . . . . 306 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 Kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 Gyakorló feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
24. lecke
A MySQL és a PHP
IX. rész
Függelékek
A PHP elérése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 A PHP mûködése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 A PHP változói és típusai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 A PHP mûveletjelei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 A PHP vezérlési szerkezetei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Csatlakozás a MySQL-hez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 A mysql_connect() függvény használata . . . . . . . . . . . . . . . . . . . . . . 317 Lekérdezések végrehajtása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 Hibaüzenetek fogadása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 MySQL adatok kezelése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 Adatok beillesztése a PHP-vel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 Adatok fogadása a PHP-vel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 A PHP további MySQL függvényei . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 Összegzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 Mûhely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 Ellenõrzõ kérdések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 Válaszok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 Gyakorló feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
A függelék B függelék C függelék D függelék Tárgymutató
A MySQL telepítése 331 A MyODBC használata 341 Lefoglalt szavak 353 Hasznos MySQL, illetve PHP példaprogramok 357 381