Gyakorlati alapok III.
SQL (adatbázis)
A phpMyAdmin
Az oldal eléréséhez mindenekelőtt be kell indítanunk a XAMPP webszerver és SQL-szerver részét!
A phpMyAdmin az adatbázis-szerver adminisztrációs felülete, amely a localhost-on, számítógépünk mindenkori belső hálózati címén érhető el (127.0.0.1). Ebből következően a felület éppúgy elérhető a localhost névről (ezt a böngésző címsorába írjuk)…
...mint a már említett IP-címről (127.0.0.1 - ezt szintén a böngésző címsorába írjuk):
A fejlécben található linkek közül nyilvánvalóan a legfontosabb a phpMyAdmin, amely az adatbázis-szerver adminisztrációs felületére irányít át minket:
A jelen fejezetnek nem célja a phpMyAdmin összes funkciójának ismertetése, csupán amennyi a Java-programok hatékony, adatbázishoz kapcsolt futtatásához szükséges! Ettől függetlenül -mivel rengeteg további, kényelmi funkcióval rendelkezik-, érdemes felületét mélyebben is áttanulmányoznunk.
Bár a fejezetcsomag elsődleges célja a Java és SQL közti kapcsolatok
bemutatása, legelső adatbázisunkat mégsem a Java-rendszeren, hanem a itt,
phpMyAdmin-on keresztül hozzuk létre, hogy alapszinten megismerhessük
működését.
A felület bal oldalán már létező, a rendszert működtető és egyéb adatbázisok
listáját tanulmányozhatjuk, de ugyanezt a listát kapjuk meg, ha a fenti,
Adatbázisok feliratú fülre kattintunk. Az alábbi képen már mindkét opciót
láthatjuk:
Először tekintsük meg minta-adatbázisunk (auto) első, reprezentatív tábláját (auto_csop). A tábla kölcsönözhető autók csoportosítását és a hozzá tartozó kilométer-, és kölcsönzési napidíjait tartalmazza:
-
auto_csop_nev - szöveges formátum
-
km_dij - számformátum
-
napi_dij - számformátum
A táblának konkrét értékei, rekordjai is vannak, amelyeket szintén később töltünk fel:
AUTO_CSOP
auto_csop_nev |
km_dij |
napi_dij |
NORMAL |
80 |
5000 |
EXTRA |
120 |
7500 |
LUXUS |
300 |
15000 |
1. feladatunk tehát az auto adatbázis létrehozása, ezt kétféleképpen is meg tudjuk tenni (amint ezt majd más esetekben is megtehetjük):
-
SQL-paranccsal,
-
az adminisztrációs felületen.
-
(+1 lehetőségként egyes SQL-szerverek parancssorból is irányíthatók, amint a XAMPP-nak is van parancssora, de én ezt nem teszteltem, ezért ezt az opciót folyamatosan ki fogom hagyni.)
SQL-parancs
Kattintsunk az SQL-fülre, amelynek hatására a következő felület jelenik meg:
Írjuk be ide:
CREATE DATABASE auto;
...majd kattintsunk az SQL-felület jobb alsó részén lévő Indítás gombra.
Majd tapasztaljuk: a felület annyira intelligens, hogy felismeri az SQL-parancsokat és javaslatokat dob fel nekünk. Ezeket -ha értelmük a mi szándékainkkal azonosak-, nyugodtan elfogadhatjuk, legalább nem vétünk szintaktikai hibákat.
Javaslat: szöveget ne másoljunk külső szövegből az SQL-felületre, mert nem látható, járulékos információk lehetnek benne, amelyet az SQL-értelmező nem lesz képes feldolgozni! (Ennek ellenére ez nekem speciel HTML-kódból működött.)
Az Indítás gomb hatására létrejön az auto nevű adatbázis, amely bal oldalon a többi adatbázis közé kerül.
Az adatbázist a következő SQL-paranccsal tudjuk törölni:
DROP DATABASE auto;
Adminisztrációs felület
Kattintsunk bal oldalon lévő legfelső, Új gombra, hatására egy adatbázis létrehozó felület ugrik fel:
Itt állítsuk be az adatbázis nevét (auto), kódolása ascii_general_ci formátum legyen, majd nyomjunk meg a Létrehozás gombot. Hatása azonos lesz a fenti SQL-utasítással:
Az ascii_general_ci karakterkódolás egyszerű, de megbízható karaktermegjelenítést tesz lehetővé. Ha ugyanis bármilyen karakterkódolási ütközés lép fel a Java-, és SQL-platformok között (aminek nagy a valószínűsége), akkor az értelmezhetetlen, vagy nem megfelelő karaktereket fog eredményezni. Ügyeljünk erre minden egyes szöveg formátumú oszlop létrehozásakor!
2. feladatként létre kell hoznunk az auto adatbázison belül egy auto_csop nevű táblát. Ezt is kétféleképpen tehetjük meg, SQL-paranccsal, vagy az adminisztrációs felületen. Ha ismerjük az SQL-nyelvet, ezt sokkal könnyebb megtennünk SQL-utasításokon keresztül. A parancs beviteléhez először kattintsunk az auto adatbázisra, majd szerkezeti nézet helyett (Szerkezet) váltsunk SQL-nézetre (SQL). Itt gépeljük be a következőket:
CREATE TABLE `AUTO`.`AUTO_CSOP` ( `auto_csop_nev` VARCHAR(6) NOT NULL , `km_dij` INT(4) NOT NULL , `napi_dij` INT(8) NOT NULL ) ENGINE = InnoDB;
Az Indítás gomb hatására létrejött az auto_csop tábla és benne 3 oszlop:
-
auto_csop_nev
-
km_dij
-
napi_dij
A táblát törölhetjük a következő utasítással...
DROP table auto_csop;
...de kézzel is az Eldobás gomb megnyomásával:
Természetesen a 3 oszlopos táblát létrehozhatjuk kézi megoldással is. Először hozzuk létre az auto_csop táblát 3 oszloppal...
...majd töltsük ki a mezőket a következőket szerint:
Érdekes opció a jobb alul lévő SQL előnézet gomb, ahol voltaképpen kézi beállításaink fordulnak le még mentés előtti SQL-utasításokba:
3. feladatként fel kell töltenünk az auto_csop nevű táblát konkrét értékekkel, rekordokkal, ennek előnézetét már láttuk fentebb:
AUTO_CSOP
auto_csop_nev |
km_dij |
napi_dij |
NORMAL |
80 |
5000 |
EXTRA |
120 |
7500 |
LUXUS |
300 |
15000 |
Ezt szintén kétféleképpen tehetjük meg, SQL-paranccsal, vagy az adminisztrációs felületen. Ha ismerjük az SQL-nyelvet, ezt sokkal könnyebb megtennünk SQL-utasításokon keresztül. A parancs beviteléhez először kattintsunk az auto adatbázis auto_csop nevű táblájára, majd szerkezeti nézet helyett (Szerkezet) váltsunk SQL-nézetre (SQL). Itt gépeljük be a következőket:
INSERT INTO AUTO_CSOP values ('NORMAL','80','5000');
INSERT INTO AUTO_CSOP values ('EXTRA','120','7500');
INSERT INTO AUTO_CSOP values ('LUXUS','300','15000');
Az SQL-inzertálás hatására az oszlopok értékekkel lettek feltöltve (bal oldalon, középen):
Mindezt soronként, kézzel, az adminisztrációs felületen keresztül is megtehetjük, ha a Beszúrás fülre kattintunk, a sor értékeit kitöltjük, majd a feltöltést az Indítás gombbal jóváhagyjuk:
Érdekességképpen a fenti beszúrás SQL-utasítása:
INSERT INTO `auto_csop` (`auto_csop_nev`, `km_dij`, `napi_dij`) VALUES ('NORMAL', '80', '5000');
A fenti műveletekkel létrehoztunk 1 adatbázist, annak 1 tábláját és feltöltöttük azt konkrét értékekkel. Szerveroldalon ennyi már elégséges ahhoz, hogy a "másik", a Java oldaláról megpróbáljunk ide felcsatlakozni, hogy a Java és SQL közti rutinokat megvizsgáljuk. Ezen célból lapozzunk a következő fejezethez.