Promotic

Datové typy MySQL

Datový typ Délka Popis
TINYINT 1 bajt Rozsah od -128 do +127 (bez znaménka: od 0 do 255)
SMALLINT 2 bajty Rozsah od -32 768 do +32 767 (bez znaménka: od 0 do 65 535)
MEDIUMINT 3 bajty Rozsah od -8 388 608 do +8 388 607 (bez znaménka: od 0 do 16 777 215)
INT,INTEGER 4 bajty Rozsah od -2 147 483 648 do +2 147 483 647 (bez znaménka: od 0 do 4 294 967 295)
BIGINT 8 bajty Rozsah od -9 223 372 036 854 775 808 do +9 223 372 036 854 775 807 (bez znaménka: od 0 do 18 446 744 073 709 551 615)
BIT, BOOL 1 bajt synonymum pro typ TINYINT(1)
FLOAT   Rozsah od -3.402823466E+38 do +3.402823466E+38
DOUBLE   Rozsah od -1.7976931348623157E+308 do +1.7976931348623157E+308
DOUBLE PRECISION, REAL   synonymum pro typ DOUBLE
DECIMAL(m,d), DEC(m,d), NUMERIC(m,d   rozsah nastaví parametry "m" a "d", maximální rozsah je stejný jak pro typ DOUBLE
DATE '0000-00-00' datum ve formátu "rok-měsíc-den" respektive "RRRR-MM-DD". Rozsah od 1000-01-01 do 9999-12-31
DATETIME '0000-00-00 00:00:00' datum a čas. Rozsah od 1000-01-01 00:00:00 do 9999-12-31 23:59:59 (format = "RRRR-MM-DD HH:MM:SS")
TIMESTAMP(n) '0000-00-00 00:00:00'
- datum a čas v rozsahu od 1970-01-01 00:00:00 do 2037-01-01 00:00:00 (vždy se ukládá všech 14 čísel !)
- formát zobrazení (a pro dotazy) lze nastavit parametrem "m" s hodnotou 14 (nebo chybějící), 12, 10, 8, 6, 4, nebo 2
- "RRRRMMDDHHMMSS", "RRMMDDHHMMSS", "RRMMDDHHMM", "RRRRMMDD", "RRMMDD", "YYMM", "YY"
- pokud do buňky tohoto typu nic nezapíšeme, pak MySQL sám doplní aktuální čas změny v daném řádku
TIME '00:00:00' časový rozsah je od "-838:59:59" do "838:59:59" (formát "HH:MM:SS")
YEAR(n) 0000 YEAR(4) = rozsah od 1901 do 2155, (formát "RRRR"), YEAR(2) = rozsah od 1970 do 2069
CHAR(m)  
- délka řetězce "m" může být v rozsahu od 0 do 255
- pokud je vložený řetězec kratší než nastavíme, pak jsou chybějící znaky automaticky doplněny mezerami (má tedy "pevnou" délku)
- CHAR (bez "m") je považováno za CHAR(1)
VARCHAR(m)  
- délka řetězce "m" může být v rozsahu od 0 do 255
- pokud je vložený řetězec kratší než nastavíme, pak se chybějící znaky nedoplňují (má tedy "plovoucí" velikost), ale navíc se ukládá informace o jeho délce
TINYBLOB, TINYTEXT   Délka řetězce je max. 255 znaků
BLOB, TEXT   Délka řetězce je max. 65 535 znaků
MEDIUMBLOB, MEDIUMTEXT   Délka řetězce je max. 16 777 215 znaků
LONGBLOB, LONGTEXT   Délka řetězce je max. 4 294 967 295 znaků
ENUM('item1','item2',...)  
- pole předem definovaných řetězců (itemů) o max. počtu 65 535
- v buňce tabulky pak může být pouze jeden z itemů, které jsou předdefinované
- místo názvů 'item' můžeme používat i jejich pořadí, tedy: 1 (místo 'item1'), 2 (místo 'item2')...
SET('item1','item2',...)  
- pole předem definovaných řetězců (itemů) o max. počtu 64
- v buňce tabulky pak může být i více z itemů, které jsou předdefinované


Viz http://dev.mysql.com/doc/refman/5.6/en/data-types.html, http://www.junext.net/mysql.
© MICROSYS, spol. s r.o.