Előző rész | Tartalom | Következő rész

AZ SQL


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

Relációs adatbázisokban (pl:ACCESS) való munkára nyújt lehetoségeket, mint lekérdezések készítése, adatbevitel, adatok csoportosítása. Az SQL-t több helyen használhatjuk a programon belül, kiegészíthetünk vele pl.: sorforrást, (QBE rács), de önálló programot is írhatunk benne.

A gyakrabban használt utasítások:

SELECT utasítás a már meglévő táblák lekérdezésére használható. Syntax:

SELECT [ALL, DISTINCT, DISTINCTROW, vagy TOP szűkítők] { * ¦ forrástábla.* ¦ [forrástábla.mező1], [ forrástábla.mező2]} [AS alias1 [,alias2 (a mezők elnevezéséhez adatlap nézetben)]

FROM táblakifejezés (forrástábla)[,...][IN külsőadatbázis]

[WHERE szurofeltételek]

[GROUP BY ..csoportosítás valami által ]

[HAVING összegzés]

[ORDER BY {ASC | DESC}] rendezés, ASC növekvő (alapértelmett), DESC fordított sorrend.

A csillag jellel a tábla összes mezőjét tudjuk kiválasztani. A mező neveket a pont operátorral választjuk el egymástól.

Szűkítlő feltételek:

ALL: Alapértelmezett, de be is állíthatjuk, az összes rekordot visszaadja a táblából.

DISTINCT: A DISTINCT a kiválasztott mezőkben lévő duplán szereplő adatok elhagyására szolgál. Akkor jó, ha egyedi rekordokat akarunk (pl.: Csak 1 Kovács lesz). Az ezt használó lekérdezés eredménye nem frissítheto, késobbi módosítások sem jelennek meg benne.

DISTINCTROW: A DISTINCTROW segítségével kihagyhatjuk azokat az adatokat a felgolgozásból, amelyeknek minden mezője azonos.

TOP: A TOP segítségével bizonyos számú rekordot kaphatunk meg egy ORDER BY által meghatározott tartomány aljáról, vagy tetejérol. (Ha nincs ORDER BY akkor a WHERE lesz figyelembe véve). A PERCENT szót hozzátoldva megkaphatunk egy bizonyos számú rekordot egy ORDER BY által meghatározott tartomány tetejérol, aljáról százalékban (pl 10 PERCENT a számot a TOP-al ellentétben itt az elejére tegyük).
A TOP után következő értéknek egész típusúnak kell lennie. A TOP nem változtatja meg a lekérdezés felülírhatóságát.

Tábla létrehozása

CREATE TABLE: Új táblák létrehozására alkalmas parancs. Syntax:

CREATE TABLE tábla (mező1 típus [(méret)][index1][,mező2 típus [(méret)][index2][,...]][,többmezősindex [,...]]). A tábla a létrehozandó tábla neve, a mezők pedig az új mezők nevei, a típus az adattípusa, méret karakterben csak szöveg típusú mezőknél. Az index a CONSTRAINT záradék által definiált indexek.

CREATE INDEX utasítással már meglévo táblákon is definiáhatunk indexeket. Syntax:

CREATE [UNIQUE] index ON tábla (mező[,...])[WITH { PRIMARY ¦ DISALLOW NULL ¦ IGNORE NULL }]

A UNIQUE szót annak elkerülésére használjuk, hogy különböző rekordok indexelt mezőjében, vagy mezőibe NULL érték kerüljön. A WITH záradék után érvényességi szabályokat adhatunk meg, mint: DISALLOW NULL, IGNORE NULL, PRIMARY.ALTER TABLE az indexkulcs listához való hozzátoldásra.

SQL foglalt szavak:

BIT, BOOLEAN, LOGICAL1, YESNO, BYTE,INTEGER1,, COUNTER, AUTOINCREMENT, CURRENCY, MONEY, DATETIME, DATE, TIME, TIMESTAMP, SINGLE, FLOAT4, IEEESINGLE, REAL,, DOUBLE, FLOAT, FLOAT8, IEEEDOUBLE, NUMBER, NUMERIC, SHORT, INTEGER2, SMALLINT, LONG INT, INTEGER, INTEGER4, LONGBINARY, GENERAL, OLEOBJECT, LONGTEXT, LONGCHAR, MEMO, NOTE, TEXT, ALPHANUMERIC, CHAR, CHARACTER, STRING, VARCHAR, VALUE (paraméteres lekérdezés).

INNER JOIN Ezt a műveletet a FROM záradéknál használhatjuk, segítsével szoros illesztést hajthatunk végre. A szoros illesztés az illesztések leggyakrabban használt fajtája. Két tábla rekordjait kombinálja, ha azok egy közös mezőében azonos értéket tartalmaznak. Syntax:

FROM tábla1 INNER JOIN tábla2 ON tábla1.mező1 = tábla2.mező2 tábla 1 és 2 az összekapcsolandó táblák nevei, mező1, 2 a kapcsoló mezők nevei, amelyek alapján a kombináció létrejön. Ha nem szám típusú adatokat tartalmaznak, akkor ugyanolyan adattípusúnak kell lenniük, és azonos fajta adatot kell tartalmazniuk, de a nevüknek nem kell megegyezni. Ha laza illesztést szeretnénk létrehozni, akkor a LEFT illetve RIGHT JOIN - t kell használnunk.

INSERT INTO Utasítással létrehozhatunk hozzáfűző lekérdezést. A SELECT előtt kell állnia.

INSERT INTO hova (céltábla) [IN külsőadatbázis] SELECT [(forrás) honnan.]mező1[,mező2[,...] FROM tábla kifejezés, vagy csak 1 recordot is hozzáfűzhetünk a VALUES -al. Fontos, hogy a hozzáfűzendő táblában esetlegesen meglévő elsődleges kulcs mezőhöz nem null értéket kell adni, számlálóhoz pedig ne fűzzünk hozzá. Ne legyenek azonos rekordok. Célszerű előtte egy választó lekérdezéssel megnézni a törlés utáni eredményt. A VALUES- al értékeket is hozzáfűzhetünk.

NULL Meghatározhatjuk, hogy egy kifejezés értéke nulla-e. Syntax:

Is [Not] Null (az IS operátor csak a nullszóval fordul elő).

PARAMETERS szó megadása nem kötelező, de ha megadjuk a SELECT előtt kell állnia. Syntax:

PARAMETERS szöveg adattípus[,szöveg adattípus[,...]]. A paramétereket vesszovel választjuk el. Lefutáskor egy ablakban kéri a paramétert.

PROCEDURE Egy teljes SQL eljárás egy PROCEDURE záradékból, a paraméterek definíciós listájából és egy sql utasításból áll. Syntax:

PROCEDURE név [param1 adattípus[, param2 adattípus[,...]]

UPDATE utasítás segítségével módosító lekérdezést hozhatunk létre, amely kicseréli a mezők adatait. Syntax:

UPDATE tábla SET újérték WHERE feltétel tábla: a módosítandó tábla neve ...több mezőt is cserélhetünk egyszerre.

UNION művelet segítségével egyesítő lekérdezést hozhatunk létre. Syntax:

Lekérdezés1 UNION [ALL] Lekérdezés2 UNION [ALL] Lekérdezésn [..]] A SELECT , vagy TABLE után áll. A UNION művelet alapértelmezett állapotban nem ad vissza azonos rekordokat, de ha az ALL szűkítő feltételt alkalmazzuk, akkor mindet visszakapunk. Az UNION művelet minden lekérdezésében ugyanannyi mezőnek kell lennie, de a mező adattípusainak vagy méreteinek nem kell megegyeznie. Használhatjuk a GROUP BY és a HAVING záradékot, illetve az ORDER BY-t.

TRANSFORM utasítással kereszttáblás lekérdezést hozhatunk létre. A lényege az oszlopfejléc. Syntax:

TRANSFORM összfüggvény SELECT utasítás PIVOT mező [IN (érték1[,érték2[,...]])] Ha meg van adva a SELECT utasítás előtt áll, amely a sorfejléceket adja. A PIVOT záradék mező argumentumából visszatérő értékeket fognak kiíródni. Egyenértékű az oszlopfejléc tulajdonság beállításával.

Előző rész | Tartalom | Következő rész