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 }]
- index: Az új index neve
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:
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[,...]])]
- összfüggvény: SQL összesítő függvény, amely a kiválasztott adatokkal végez számításokat.
- mező: az oszlopfejléceket adják meg.
- érték: az oszlopfejlécek rögzített értékei.
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.