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.