Ú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.
Ú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.
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.
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.
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.

|