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ípus | Leírás |
---|---|
CHAR | Rögzített hosszúságú karakterlánc. |
VARCHAR | Változó hosszúságú karakterlánc. |
TEXT | Szö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ípus | Leírás |
---|---|
BIT | Bitérték típus. |
TINYINT | Kisméretű egész szám tárolása. |
BOOL | Logikai értéket tárol. |
INT | Közepes méretű egész szám tárolására alkalmas. |
FLOAT | Lebegőpontos szám. |
DOUBLE | Normál méretű lebegőpontos szám. |
DECIMAL | Fixpontos szám. |
Dátum és idő adattípusok
Dátumok és időpontok tárolására alkalmas adattípusok.
Adattípus | Leírás |
---|---|
DATE | Dátum. Formátum: év-hónap-nap (YYYY-MM-DD) |
TIMESTAMP | Időbélyeg. Formátum: év-hónap-nap óra:perc:másodperc (YYYY-MM-DD hh:mm:ss) |
TIME | Idő. 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és | Leírás |
---|---|
NOT NULL | A mező nem lehet NULL, azaz érték nélküli. |
UNIQUE | A mező összes értékének egyedinek kell lennie. |
PRIMARY KEY | Elsődleges kulcs. Olyan mező, amely egyértelműen beazonosítja a rekordot. |
FOREIGN KEY | Egy másik tábla elsődleges kulcsára hivatkozhatunk vele. |
CHECK | Ellenőrzi, hogy az érték megfelel-e egy speciális feltételnek. |
DEFAULT | Ha nem adunk meg értéket, akkor beállít egy alapértelmezettet. |
CREATE INDEX | Indexeket 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.