Adatdefiníciós utasítások

CREATE TABLE utasítás

Új tábla létrehozása

Szintaxis

CREATE TABLE tábla (mező1 típus [(méret)] [NOT NULL] [index1]
[, mező2 típus [(méret)] [NOT NULL] [index2] [, ...]]
[, CONSTRAINT többmezős index [, ...]])

A CREATE TABLE utasítás részei:

Elem

Leírás

tábla

A létrehozandó tábla neve

mező1, mező2

Az új tábla mezőjének vagy mezőinek neve. Legalább egy mezőt létre kell hoznunk.

típus

Az új tábla mezőjének adattípusa

Méret

A mező mérete karakterben (csak Szöveg és Bináris mezőnél)

index1, index2

Egymezős indexet meghatározó CONSTRAINT záradék. Az index létrehozásáról további információ a CONSTRAINT záradék címszó alatt található.

többmezős index

Többmezős indexet meghatározó CONSTRAINT záradék. Az index létrehozásáról további információ a CONSTRAINT záradék címszó alatt található.

Új tábla mezőkkel és megszorításokkal együtt történő létrehozásához használjuk a CREATE TABLE utasítást. A NOT NULL paraméterrel ellátott mezőkbe új rekord létrehozása esetén meg kell adni valamilyen adatot.
A CONSTRAINT záradék többféle megszorítást tartalmazhat a mezőre, így többek között elsődleges kulcs létrehozására is használható. Létező táblák elsődleges kulcsának illetve további indexeinek létrehozására a CREATE INDEX utasítás használható.
A NOT NULL paramétert használhatjuk egyetlen mezőre, vagy egy adott - egy vagy többmezős megszorításra vonatkozó - CONSTRAINT záradékon belül. A NOT NULL paramétert egy mezőre csak egyszer szabad alkalmazni, mert különben futásidejű hiba lép fel.

CREATE INDEX utasítás

Új index létrehozása a már létező táblán

Szintaxis

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

A CREATE INDEX utasítás részei:

Elem

Leírás

index

A létrehozandó index neve

tábla

A tábla neve, amelyet indexelni akarunk.

mező

A indexelendő mező(k) neve(i). Egymezős index esetén írjuk a mező nevét zárójelben a tábla neve után. Többmezős index esetén soroljuk fel azokat a mezőket, amelyekre az index vonatkozik. Csökkenő sorrend létrehozásához használjuk a DESC foglalt szót; egyébként a sorrend növekvő.

Különböző rekordok indexelt mezőiben az ismétlődések elkerülése érdekében használjuk a UNIQUE foglalt szót.

A WITH záradékkal az adatok érvényességi szabályait határozhatjuk meg (megadása nem kötelező):

  • A DISALLOW NULL beállítással tilthatjuk a Null értékű bejegyzéseket az új rekordok mezőibe.
  • Az IGNORE NULL beállítás esetén a Null értékű mezővel rendelkező rekordok nem fognak az indexben szerepelni.
  • A PRIMARY beállítással az indexelt mező(ke)t elsődleges kulcsként jelöljük meg. Ez magába foglalja a kulcs egyediségét is, ezért nem kell a UNIQUE foglalt szót használnunk.

Ha egy- vagy többmezős indexet akarunk a táblához hozzáadni, használhatjuk az ALTER TABLE utasítást. Az ALTER TABLE vagy a CREATE INDEX utasítással létrehozott indexeket az ALTER TABLE vagy a DROP utasítással törölhetjük.
Ha a táblában van már elsődleges kulcs, indexeléskor ne használjuk a PRIMARY foglalt szót, mert hibaüzenetet kapunk.

ALTER TABLE utasítás

 A CREATE TABLE utasítással létrehozott tábla megváltoztatása.

Szintaxis

ALTER TABLE tábla {ADD {COLUMN mezőtípus[(méret)] NOT NULL
[CONSTRAINT index] | CONSTRAINT többmezős index} |
DROP {COLUMN mező I CONSTRAINT indexnév} }

Az ALTER TABLE utasítás részei:

Elem

Leírás

tábla

A megváltoztatandó tábla neve

mező

A táblához hozzáadandó vagy az onnan törlendő mező neve

típus

A mező adattípusa

méret

A mező mérete karakterben (csak Szöveg (Text) és Bináris adattípusnál)

index

A mező indexe. Az index létrehozásáról további információkat a CONSTRAINT záradék leírásában találhatunk.

többmezős index

A táblához hozzáadandó többmezős index definíciója. Az index létrehozásáról további információkat a CONSTRAINT záradék leírásában találhatunk.

indexnév

A törlendő többmezős index neve

Az ALTER TABLE utasítás használatával a már létező táblákat többféleképpen változtathatjuk meg:

  • Ha a táblához új mezőt akarunk hozzáadni, használjuk az ADD COLUMN utasítást. Adjuk meg a mező nevét, adattípusát és (szöveges és bináris mezők esetén) a méretét. Például: a következő utasítással a Megjegyzés nevű 25 karakter hosszúságú szöveges mezőt adjuk hozzá az Alkalmazottak táblához:

    ALTER TABLE Alkalmazottak ADD COLUMN Megjegyzés TEXT(25)

    A mezőt indexelhetjük is. Az egymezős indexről további információkat a CONSTRAINT záradék leírásában találhatunk.

    Ha egy mezőhöz megadjuk a NOT NULL paramétert, akkor az új rekordok ezen mezőjébe kötelező lesz valamilyen adatot megadni.

  • Ha a táblához többmezős indexet akarunk hozzáadni, használjuk a ADD CONSTRAINT utasítást. A többmezős indexről további információkat a CONSTRAINT záradék leírásában találhatunk.
  • Mező törléséhez használjuk a DROP COLUMN utasítást. Ehhez csak a mező nevét kell megadni.
  • Többmezős index törléséhez használjuk a DROP CONSTRAINT utasítást. A CONSTRAINT foglalt szót követően csak az index nevét kell megadni.

Figyelem:

  • Egyszerre csak egy mezőt vagy indexet törölhetünk.
  • Ha a táblához egyszeres vagy többmezős indexet akarunk hozzáadni, használjuk a CREATE INDEX utasítást. Az ALTER TABLE vagy a CREATE INDEX utasítással létrehozott indexet az ALTER TABLE vagy a DROP utasítással lehet törölni.
  • A NOT NULL paramétert használhatjuk egyetlen mezőre, vagy egy adott - egy vagy többmezős megszorításra vonatkozó - CONSTRAINT záradékon belül. A NOT NULL paramétert egy mezőre csak egyszer szabad alkalmazni, mert különben futásidejű hiba lép fel.
CONSTRAINT záradék

A kényszer (CONSTRAINT) hasonló az indexhez, csak az a különbség, hogy segítségével kapcsolatot teremthetünk egy másik táblával.
A kapcsolat létrehozásához és törléséhez használjuk az ALTER TABLE és CREATE TABLE utasítások CONSTRAINT záradékát. A CONSTRAINT záradéknak két fajtája létezik: egy- vagy többmezős.

Szintaxis

Egymezős:

CONSTRAINT név {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES idegen tábla [(idegen mező1, idegen mező2)]}

Többmezős:

CONSTRAINT név {PRIMARY KEY (elsődleges1[,elsődleges2 [, ...]]) |
UNIQUE (egyedi1[, egyedi2 [, ...]]) | NOT NULL (nemnulla1[, nemnulla2 [, ...]]) |
FOREIGN KEY (hiv1[, hiv2 [, ...]])
REFERENCES idegen tábla [(idegen mező1 [, idegen mező2[, ...]])]}

A CONSTRAINT záradék részei:

Elem

Leírás

név

A létrehozandó kapcsolat neve

elsődleges1, elsődleges2

Az elsődleges kulcs mező vagy mezők neve

egyedi1, egyedi2

Az egyedi kulcs mező vagy mezők neve

nemnulla1, nemnulla2

A nem Null értékű mező vagy mezők neve

hiv1, hiv2

Más tábla mezőire vonatkozó idegen kulcs mező vagy mezők neve.

idegen tábla

Az idegen tábla neve, amelyben a idegen mező záradékban meghatározott mező vagy mezők találhatók.

idegen mező1, idegen mező2

Az idegen tábla mezője vagy mezői, amelyre a hiv1, hiv2 záradékban hivatkozunk. Ha a mező, amelyre hivatkozunk az idegen tábla elsődleges kulcsa, ezt a záradékot elhagyhatjuk.

Az ALTER TABLE vagy CREATE TABLE meződefiníció záradékában az egymezős szintaktikát közvetlenül a mező adattípusának meghatározása után használjuk.
A többmezős szintaktikát akkor alkalmazhatjuk, ha a CONSTRAINT foglalt szót az ALTER TABLE vagy a CREATE TABLE utasítás meződefinícióján kívül használjuk.

A CONSTRAINT záradék használatakor a mezőket a következőképpen jelölhetjük meg:

  • A mezőt egyedi kulcsként a UNIQUE foglalt szóval lehet megjelölni. Ez azt jelenti, hogy a táblában nem lehet két olyan rekord, amelyek ebben a mezőben azonos értékűek. Bármely mezőt vagy mezők listáját kijelölhetjük egyedinek. Ha több mezős Constraint utasításban egyedinek jelölünk egy mezőcsoportot, akkor az indexben csak a mezők értékkombinációjának kell egyedinek lenni, az egyes mezők értékének nem.
  • A táblában mezőt vagy mezőcsoportot elsődleges kulcsként a PRIMARY KEY foglalt szóval lehet megjelölni. Az elsődleges kulcs minden értékének egyedinek vagy nem Null értékűnek kell lennie, és a táblában csak egy elsődleges kulcs lehet.
    Figyelem: Ha a táblában van már elsődleges kulcs, ne adjuk meg a Constraint PRIMARY KEY záradékát, mert hibaüzenetet kapunk.
  • A mezőt idegen kulcsként a FOREIGN KEY foglalt szóval lehet megjelölni. Ha az idegen tábla elsődleges kulcsa több mezőt tartalmaz, a többmezős Constraint definíciót kell használnunk. Fel kell sorolnunk az összekapcsolandó mezőket, az idegen tábla nevét —és az előző felsorolás sorrendjének megfelelően — azokat az idegen tábla mezőneveket, amelyekre hivatkozni akarunk. Ha a mező(k), amely(ek)re hivatkozunk, az idegen tábla elsődleges kulcsa, alapértelmezésben nem kell a mezőket külön felsorolnunk, mert az adatbázis-motor az idegen tábla elsődleges kulcsát tekinti a hivatkozási alapnak.
DROP utasítás

Adatbázis-tábla, vagy már létező táblaindex törlése

Szintaxis

DROP {TABLE tábla | INDEX index ON tábla}

A DROP utasítás részei:

Elem

Leírás

tábla

A törlendő tábla vagy a törlendő index táblájának neve

index

A tábla törlendő indexének neve

A tábla törlése vagy az indexének eltávolítása előtt a táblát be kell zárnunk.
Index törlésére használhatjuk az ALTER TABLE utasítást is.

 

Összeállította:

Ajánlott felbontás:
800 x 600