OKJ vizsga rendszerinformatikus - Adatbázis-kezelés V. tétel
Fontosabb SQL parancsok bemutatása (CREATE TABLE, CREATE INDEX, INSERT INTO, UPDATE, SELECT)
Az adatbázis-műveletek többsége valamilyen lekérdezés jellegű művelet, lényégében a számunkra információt hordozó bejegyzések kiválasztása a tárolt adatok közül. Az adatlekérés elvégzésére a relációs adatbázis-kezelő rendszerek gyakran az SQL-t (Structured Query Language), a struktúrált lekérdező nyelvet használjak. Bár az SQL nyelvnek létezik szabványositott változata, a legtöbb rendszer mégis saját nyelvjárást használ, kiegészitve, módositva a szabványt.
Az első szabvány 1986-ban jelent meg az ANSI X3. 1986. röviden ANSI 86 néven, majd 1987-ben az ISO is szabványosította.
CREATE TABLE
Az SQL relációs adatmodellt kezel, így a fő obejektuma a reláció, amit SQL-ben táblának (table) nevezünk. A táblát egy erre a célra szolgáló paranccsal (CREATE TABLE) definiáljuk.
A tábla neve max. 8 karakter hosszú lehet, betűvel kell kezdődnie, betűkből, számjegyekből és aláhúzás karakterekből állhat. SQL név már foglalt, ezért ezt nyilvánvaló hogy nem adhatjuk neki, ill. különböző tábláknak nem adhatunk azonos nevet.
Oszlopait típusokkal láthatjuk el, amelyeket deklarálni kell. Az oszlop azonosító max 10 karakteres, betűvel kell kezdődnie, betűkből, számjegyekből és aláhúzás karakterekből állhat. Két különböző táblában két oszlop neve lehet ugyanaz. Az oszlopneveknél az adattípus mellé beírható a NULL, vagy NOT NULL opció. A NULL azt jelenti hogy az oszlopban lehetnek "üres értékek" is. Ha NOT NULL-t írunk akkor viszonmt az adott oszlopban nem lehetnek üres értékek.
A táblák megengedett mérete SQL realizációnkent különbözik. A dBASE V-ben egy tábla 255 oszlopot tartalmazhat, de úgy hogy egy sor mérete nem haladhatja meg a 4000 byte-ot. Az ORACLE rendszerben egy sor hossza 2 gigabyte lehet (LONG adattípus hossza).
CREATE INDEX
Indexállomány lértehozása
Az indexállomány egy adott táblából kiemelt néhány rendezett oszlopból áll. Az oszlopok fizikailag rendezett oszlopok lesznek. (csökkenő vagy növekvő)
Előnye hogy ha a táblában azon oszlopok értékei szerint keresünk, amelyek indexelve vannak a keresés gyorsabb lesz, hoszú rendezett táblában könyebb a keresés viszont hátránya is lehet ebből amikor az indexet frissíteni kell új rekord bevitelnél, illetve azon esetekben amikor egy rekordban a kulcsot (amit indexeltünk) módosítjuk.
Hatása: Az ON után adott tábla felsorolt oszlopait rendezi és belőlük eg yaz INDEX szó után megadott nevű táblát készíti. Az UNIQUE azt jelenti hogy az oszlop értékei egyediek. Tehát ha több azonos érték szerepel egy mezőben , csak az első kerül az index táblába.
INSERT INTO
Sorokat (rekordokat) a táblába az INSERT paranccsal tudunk bevinni. A parancs egyszerre egy sort visz be. A táblába helyezett új sor fizikailag a meglévő utolsó sor utaán tárolódik.
Hatása: a felsorolt oszlopok sorrendben felveszik az értéklistában szereplő értékeket. Ha az oszlopnév-lista (vesszővel elválasztott oszlopnevek) elmarad, akkor a tábla definiálásánál megadott oszlopnevek sorrendjében kell az értéklista elemeinek szerepelni.
UPDATE
A tábla rekordjait bármikor lehet módosítani.Ezt a z UPDATE paranccsal tudjuk elérni.
Hatása: a megadott táblának a SET után felsorolt oszlopait az egyenlőségjel utáni kifejezéssel módosítja ( ez lesz az oszlop értéke) de csak azokra a sorokra, amelyek eleget tesznek a WHERE-ben szereplő logikai kifejezésnek. Ha WHERE.... nem szerepel, akkor az adott oszlop minden sorára ugyanazt az értéket írja be (azt amit a kifejezés jelent).
DELETE
A rekordok törlésre a DELETE parancsot használjuk.
Hatása: törli a táblából azokat a sorokat, amelyekre teljesül a feltétel. Ha a WHERE-t elhagyjuk, akkor minden sort töröl, azaz a tábla teljes tartalmát törli ( maga a tábla megmarad, tehát nem kell újra deklarálni)
SELECT
Az adatbázikezelés egyik fontos művelete a lekérdezés.
Az SQL lekérdezési parancsa egy összetett parancs ( több alparancsból áll) ; ha ugyanazt a lekérdezést mondjuk PASCAL-ban kellene felírni, akkor az egy hosszabb program lenne.
A SELECT parancs végrehajtásának eredményeként egy újabb tábla keletkezik, a ,tivábbiakban ezt eredménytáblának (E-tábla) hívjuk. Az E-tábla csak ideiglenesen jön létre, ha nem gondoskodunka rögzítéséről vagy mentéséről akkor bármely más parancsot kiadva eltűnik.
Szerkezete kötött, vagyis az alparancsok csak olyan sorrendben írhatók ahogyan meg van adva:
pl.
SELECT oszlop kiválasztása
[INTO ...] E-tábla 1. sorának tárolása
FROM... táblák DESCARTES-szorzata
[WHERE ...] sorok kiválasztása
[GROUP BY ...] csoportosítása
[HAVING ...] csoportok közötti választás
[UNION ...] E-táblák összefűzése
[ORDER BY/FOR UPDATE OF ...] E-tábla rendezése/tábla módosítása
[SAVE TO TEMP ...]; E-tábla megőrzése, elmentése
A SELECT paranccsal kiadható lekérdezések típusát az alparancsok, valamint az alparancsok operandusai adják meg.