A különböző SQL nyszerverekben általában ugyanazokat az adat típusokat használhatjuk, de az elnevezésekben és az adattípusok méreteiben vannak különbségek. Jelen esetben a MYSQL adattípusait vesszük át. az alábbiakban jelölöm a leggyakrabban használt típusokat
Numerikus típusok
Oszlop típus |
Tárolási hossz |
Leírás |
TINYINT |
1 byte |
Rövid egész |
SMALLINT |
2 byte |
Egész |
MEDIUMINT |
3 byte |
Egész |
INT |
4 byte |
Egész |
INTEGER |
4 byte |
Egész |
BIGINT |
8 byte |
Hosszú egész |
FLOAT(X) |
4 if X <= 24 or 8 if 25 <= X <= 53 |
Lebegőpontos típusok |
FLOAT |
4 bytes |
|
DOUBLE |
8 byte |
|
DOUBLE PRECISION |
8 byte |
|
REAL |
8 byte |
|
DECIMAL(M,D) |
Ha D>0, akkor M+2 bytes Ha D = 0 (D+2, if M < D) M+1 bytes |
Adott pontosságú típusok |
NUMERIC(M,D) |
Ha D > 0 akkor M+2 bytes Ha D = 0 (D+2, if M < D) Ha M+1 bytes |
|
Dátum és időpont típusok
A dátumot és időpontokat a Mysql úgynevezett belső formában tárolja. Ez a belső forma egy adott dátum óta eltelt másodpercek számát jelenti. A különböző típusú értékek ugyanattól a kezdőértéktől számolódnak. Az egyes dátumtípusok átkonvertálhatóak egymásba a MySQL megfelelő dátumfüggvényeit használva. A részletekért nézze meg a Mysql dokumentációját.
Oszlop típus |
Tárolási méret, formátum |
Leírás |
DATETIME |
8 byte: |
Dátum és időpont érték: '1000-01-01 00:00:00'-tól |
DATE |
3 byte, ’ÉÉÉÉ-HH-NN’ |
Dátum érték: A fentieknek megfelelő. |
TIMESTAMP |
4 byte, ’ÓÓ:PP:MM’ |
Egy időpont érték. 00:00:00 – 23:59:59 |
TIME |
3 byte |
Idő: |
YEAR |
1 byte |
Év: 0000-9999 |
String típusok
A szövegeket az SQL92-höz képest kibővítették a változó hosszúságú adattípusokkal. Ezek esetében a tárolási méret függ az adott mezőben aktuálisan letárolt adatok mennyiségétől.
Column type |
Tárolási hossz |
Leírás |
CHAR(N) |
N byte, 1 <= N <= 255 |
Karakter (String, szöveg) |
VARCHAR(N) |
L+1 byte, ahol |
Változó hosszúságú szöveg |
TINYBLOB, TINYTEXT |
L+1 byte, ahol L < 2^8 |
Rövid szöveg vagy bináris adat |
BLOB, TEXT |
L+2 byte, ahol L < 2^16 |
Szöveg vagy bináris adat |
MEDIUMBLOB, MEDIUMTEXT |
L+3 byte, ahol L < 2^24 |
Közepes hosszúságú szöveg vagy bináris adat |
LONGBLOB, LONGTEXT |
L+4 byte, ahol L < 2^32 |
Hosszú szöveg vagy bináris adat |
ENUM('value1','value2',...) |
1 vagy 2 byte, a kiértékelendő adatok számától |
|
SET('value1','value2',...) |
1, 2, 3, 4 vagy 8 byte, a halmaz elemeinek |
|