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.


