02. Adattípusok MySQL-ben

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:
'ÉÉÉÉ-HH-NN ÓÓ:PP:MM'

Dátum és időpont érték:

'1000-01-01 00:00:00'-tól
'9999-12-31 23:59:59'-ig

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
L <= N és 1 <= N <= 255

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
függően (65535 érték maximum)

 

SET('value1','value2',...)

1, 2, 3, 4 vagy 8 byte, a halmaz elemeinek
számától függően (64tag lehet maximum)