Tábla létrehozása SQL adatbázisban: CREATE TABLE utasítás példákkal

Ebben a leckében az SQL CREATE TABLE utasítás kerül bemutatásra, amellyel táblákat hozhatunk létre az adatbázisunkban.

SQL alapok kezdőknek, SQL ismeretek kurzus borítókép

Tábla létrehozása SQL adatbázisban: CREATE TABLE utasítás példákkal

Az előző SQL leckében bemutattuk, hogy hogyan lehetséges egy adatbázis létrehozása, a következő lépés egy tábla létrehozása, amelyben majd később adatokat tárolhatunk. Ebben a leckében az SQL CREATE TABLE utasítás kerül bemutatásra.

CREATE TABLE utasítás

A CREATE TABLE utasítással egy új táblát hozhatunk létre az adatbázisban. A létrehozott táblában adatokat tárolhatunk. Ezeken a tárolt adatokon végezhetünk később lekérdezéseket.

SQL CREATE TABLE szintaktika

A CREATE TABLE kulcsszó után meg kell adni azt a táblanevet, amellyel a későbbiekben hivatkozni szeretnénk rá.

A mezők, oszlopok létrehozásához meg kell adnunk az oszlopok nevét és adattípusukat vesszővel elválasztva. Az utolsó oszlop után nem kell vesszőt tenni.

CREATE TABLE táblaNév (
    oszlopNév1 adattípus [megkötések],
    oszlopNév2 adattípus [megkötések],
    ...
);
Code language: SQL (Structured Query Language) (sql)

Az oszlopok nevei nem tartalmazhatnak duplikációt, még akkor sem, ha az adattípusuk más.

Ezentúl megadhatóak különböző megkötések az egyes oszlopokra, amelyek esetében a felvitt adatoknak meg kell felelniük az oszlopra meghatározott megkötéseknek.

SQL adattípusok

A szintaktika felírásánál látszott, hogy az oszlopok deklarációjához meg kell adnunk az oszlop adattípusát is. Alább pár alapvető SQL adattípus kerül bemutatásra.

Szöveg adattípusok

Ezek az adattípusok szöveg (string) tárolására alkalmasak.

AdattípusLeírás
CHARRögzített hosszúságú karakterlánc.
VARCHARVáltozó hosszúságú karakterlánc.
TEXTSzöveget tárol.

Szám adattípusok

Olyan adattípusok, amely számok formájában tárolják az értékeket, legyen szó akár konkrét számról vagy logikai értékről.

AdattípusLeírás
BITBitérték típus.
TINYINTKisméretű egész szám tárolása.
BOOLLogikai értéket tárol.
INTKözepes méretű egész szám tárolására alkalmas.
FLOATLebegőpontos szám.
DOUBLENormál méretű lebegőpontos szám.
DECIMALFixpontos szám.

Dátum és idő adattípusok

Dátumok és időpontok tárolására alkalmas adattípusok.

AdattípusLeírás
DATEDátum. Formátum: év-hónap-nap (YYYY-MM-DD)
TIMESTAMPIdőbélyeg. Formátum: év-hónap-nap óra:perc:másodperc (YYYY-MM-DD hh:mm:ss)
TIMEIdő. Formátum: óra:perc:másodperc (hh:mm:ss)
YEARÉv. Formátum: év (YYYY)

>> Itt olvashatsz bővebben a MySQL adattípusairól. <<

SQL megkötések, korlátozások, kényszerfeltételek

A következő tisztázandó dolgot angolul constraints-nek nevezik, míg magyarul szokás megkötésnek, korlátozásnak és kényszerfeltételnek is nevezni. Leginkább az első és az utolsó elnevezés terjedt el.

A kényszerfeltételeket arra használjuk, hogy az egyes mezők értékeire vonatkozólag megkötéseket tudjunk meghatározni. Ezzel csökkenteni tudjuk az adatbázisba kerülő hibás adatok számát, illetve növelni azok pontosságát.

Alább találhatóak a leggyakrabban használt SQL korlátozások:

MegnevezésLeírás
NOT NULLA mező nem lehet NULL, azaz érték nélküli.
UNIQUEA mező összes értékének egyedinek kell lennie.
PRIMARY KEYElsődleges kulcs. Olyan mező, amely egyértelműen beazonosítja a rekordot.
FOREIGN KEYEgy másik tábla elsődleges kulcsára hivatkozhatunk vele.
CHECKEllenőrzi, hogy az érték megfelel-e egy speciális feltételnek.
DEFAULTHa nem adunk meg értéket, akkor beállít egy alapértelmezettet.
CREATE INDEXIndexeket hoz létre a táblában, amellyel gyorsíthatóak a lekérdezések.

SQL CREATE TABLE példa

A következő példában egy „vasarlok” táblát hozunk létre, amelyben szerepel egy ID oszlop, amely int típusú és az értékét az adatbázis fogja automatikusan léptetni, azaz az első felvitt adat ID-ja 1 lesz, a második felvitt rekord értéke 2 és így tovább. Ezenfelül az ID egy PRIMARY KEY vagy elsődleges kulcs, azaz egyértelműen beazonosítja a rekordot. Ezen túl meghatároztunk még három darab varchar-t, mert szöveges adatokat szeretnénk tárolni bennünk: vezeteknev, keresztnev, lakhely. A „szuletesi_ev” year, azaz év típusú lesz.

SQL kód

CREATE TABLE vasarlok (
    ID int AUTO_INCREMENT PRIMARY KEY,
    vezeteknev VARCHAR(25),
    keresztnev VARCHAR(25),
    lakhely VARCHAR(25),
    szuletesi_ev YEAR
);
Code language: SQL (Structured Query Language) (sql)

Ha nem futottunk szintaktika hibába, azaz nem gépeltünk el semmit és csak olyan utasításokat használtunk, amelyek valóban léteznek az adatbáziskezelőnkben, akkor a fenti SQL kód eredménye egy létrejött tábla az adatbázisban.

Ha hasznos volt számodra, akkor kérlek oszd meg másokkal is, hogy ezzel támogass minket!