Promotic

Typy danych w MySQL

Typ danych Długość Opis
TINYINT 1 bajt Zakres od -128 do +127 (bez znaku: od 0 do 255)
SMALLINT 2 bajty Zakres od -32 768 do +32 767 (bez znaku: od 0 do 65 535)
MEDIUMINT 3 bajty Zakres od -8 388 608 do +8 388 607 (bez znaku: od 0 do 16 777 215)
INT,INTEGER 4 bajty Zakres od -2 147 483 648 do +2 147 483 647 (bez znaku: od 0 do 4 294 967 295)
BIGINT 8 bajty Zakres od -9 223 372 036 854 775 808 do +9 223 372 036 854 775 807 (bez znaku: od 0 do 18 446 744 073 709 551 615)
BIT, BOOL 1 bajt synonim dla typu TINYINT(1)
FLOAT   Zakres od -3.402823466E+38 do +3.402823466E+38
DOUBLE   Zakres od -1.7976931348623157E+308 do +1.7976931348623157E+308
DOUBLE PRECISION, REAL   synonim dla typu DOUBLE
DECIMAL(m,d), DEC(m,d), NUMERIC(m,d   zakres ustawi parametry "m" oraz "d", maksymalny zakres jest taki sam jak dla typu DOUBLE
DATE '0000-00-00' data w formacie "rok-miesiąc-dzień" względnie "RRRR-MM-DD". Zakres od 1000-01-01 do 9999-12-31
DATETIME '0000-00-00 00:00:00' data oraz czas. Zakres 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'
- data oraz czas w zakresie od 1970-01-01 00:00:00 do 2037-01-01 00:00:00 (zapisywanych jest zawsze wszystkich 14 liczb !)
- format wyświetlenia (i dla zapytań) można ustawić przy pomocy parametru "m" o wartości 14 (lub bez wartości), 12, 10, 8, 6, 4, lub 2
- "RRRRMMDDHHMMSS", "RRMMDDHHMMSS", "RRMMDDHHMM", "RRRRMMDD", "RRMMDD", "YYMM", "YY"
- jeżeli do pola bazy danych tego typu nie zostanie zapisana żadna wartość, wtedy MySQL sam uzupełni czas bieżący zmiany do danego wiersza
TIME '00:00:00' zakres czasu wynosi od "-838:59:59" do "838:59:59" (format "HH:MM:SS")
YEAR(n) 0000 YEAR(4) = zakres od 1901 do 2155, (format "RRRR"), YEAR(2) = zakres od 1970 do 2069
CHAR(m)  
- długość łańcucha "m" może być w zakresie od 0 do 255
- jeżeli zapisywany łańcuch będzie krótszy niż jest ustawione, wtedy zostanie automatycznie uzupełniony o spacje (ma zatem "stałą" wielkość)
- CHAR (bez "m") jest uważane za CHAR(1)
VARCHAR(m)  
- długość łańcucha "m" może być w zakresie od 0 do 255
- jeżeli zapisywany łańcuch jest krótszy niż jest ustawione, wtedy brakujące znaki nie są uzupełniane (łańcuch ma zatem zmienną długość), lecz dodatkowo jest zapisywana informacja o jego długości
TINYBLOB, TINYTEXT   Długość łańcucha wynosi maks. 255 znaków
BLOB, TEXT   Długość łańcucha wynosi maks. 65 535 znaków
MEDIUMBLOB, MEDIUMTEXT   Długość łańcucha wynosi maks. 16 777 215 znaków
LONGBLOB, LONGTEXT   Długość łańcucha wynosi maks. 4 294 967 295 znaków
ENUM('item1','item2',...)  
- tablica z góry zdefiniowanych łańcuchów (itemów) o maks. ilości 65 535
- w polu tabeli może się znaleźć tylko jeden z itemów, które zostały z góry przygotowane
- zamiast nazwy 'item' można stosować również ich kolejność, a więc: 1 (zamiast 'item1'), 2 (zamiast 'item2')...
SET('item1','item2',...)  
- tablica z góry zdefiniowanych łańcuchów (itemów) o maks. ilości 64
- w polu tabeli może się znaleźć nawet kilka itemów, które są z góry definiowane


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