pytanie zadane 17 stycznia 2016 w Programowanie przez użytkownika Gość

1 odpowiedź

odpowiedź 17 stycznia 2016 przez użytkownika

MySQL generalnie posiada trzy główne kategorie typów danych. Są to typy znakowe, numeryczne oraz daty. Każdy programista zgodnie ze sztuką, powinien stosować, w zależności od używanych danych odpowiedni typ. Na przykład jeśli dane mają zawierać w sobie datę, powinno się używać typu danych DATETIME, który ma rozmiar 8 bajtów. Dzięki czemu aplikacja będzie zoptymalizowana, jeśli chodzi o wydajność serwera na którym będzie działała.

Typy danych w MySQL:

Nazwa lub alias Rozmiar Użycie
TINYINT(M)
(synonimy - BIT, BOOL, BOOLEAN)
1 bajt Jeśli nie ma znaku to przechowuje wartości od 0 do 255,
w innym wypadku od -128 do 127
SMALLINT(M) 2 bajty Jeśli nie ma znaku to przechowuje wartości od 0 do 65535,
w innym wypadku od -32768 do 32767
MEDIUMINT(M) 3 bajty Jeśli nie ma znaku to przechowuje wartości od 0 do 16777215,
w przeciwnym razie od -8388608 do 8388607
INT(M)
INTEGER(M)
4 bajty Jeśli nie ma znaku to przechowuje wartości od 0 do 4294967295,
w przeciwnym wypadku od -2147483648 do 2147483647
BIGINT(M) 8 bajtów Jeśli nie ma znaku to przechowuje wartości od 0 do
18446744073709551615, w innym wypadku od
-9223372036854775808 do 9223372036854775807
FLOAT
(precyzja)
4 lub 8 bajtów Parametr precyzja jest liczbą całkowitą o maksymalnej
wartości równej 53. Jeśli precyzja <= 24, liczba jest
przekształcona do typu FLOAT, natomiast jeśli precyzja
> 24 i <=53 to jest ona przekształcana do typu DOUBLE.
FLOAT(M,D) 4 bajty Liczba zmiennopozycyjna o pojedynczej precyzji
DOUBLE(M,D) 8 bajtów Liczba zmiennopozycyjna o podwójnej precyzji
DECIMAL(M,D) M+1 lub M+2 bajtów Nieskompresowana liczba zmiennopozycyjna
przechowywana jak CHAR. Używa się jej do
 przechowywania niewielkich liczb dziesiętnych
DATE 3 bajty Data wyświetlana (typ daty w MySQL) w formacie RRRR-MM-DD
DATETIME 8 bajtów Data wyświetlana w szerszym formacie
RRRR-MM-DD GG:MM:SS 
TIME 3 bajty Czas wyświetlany w formacie GGG:MM:SS.
 Wartość GGG ma zakres od -838 do 838.
YEAR 1 bajt Rok wyświetlany w formacie RRRR, który ma
wartość od 1901 do 2155.
Do zapisu wcześniejszego roku należy użyć typu TINYINT.
CHAR(M) M bajtów Typ o stałej długości. Parametr M musi mieć
 mniejszą wartość niż 255
VARCHAR(M) do M bajtów Typ o zmiennej długości. Parametr M musi mieć
 mniejszą wartość niż 255
TINYTEXT
lub
TINYBLOB
do 255 bajtów TINYTEXT ignoruje wielkość znaków, natomiast
TINYBLOB już tak przy sortowaniu i porównywaniu
BLOB
lub
TEXT
do 64KB BLOB rozróżnia wielkość znaków w trakcie
porównywania i sortowania, natomiast TEXT to ignoruje
MEDIUMBLOB
lub
MEDIUMTEXT
do 16MB MEDIUMBLOB rozróżnia wielkość znaków w trakcie
 porównywania i sortowania, natomiast MEDIUMTEXT to ignoruje
LONGBLOB
lub
LONGTEXT
do 4GB LONGBLOB rozróżnia wielkość znaków przy
porównywaniu i sortowaniu, natomiast LONGTEXT to ignoruje
ENUM (wartość1,
... wartośćN)
1 lub 2 bajty Pozwala na zapisanie do 65535 odrębnych wartości
SET(wartość1,
... wartośćN)
do 8 bajtów Pozwala na  zapisanie do 64 odrębnych wartości

(M) - oznacza maksymalną liczbę wyświetlanych cyfr
(D) - oznacza maksymalną liczbę miejsc dziesiętnych w liczbie zmiennoprzecinkowej

Zobacz również typy danych w języku PHP.

komentarz 25 lipca 2021 przez użytkownika Gość
Dzięki, zapisałem sobie do zakładek będę miał pod ręką, nie muszę zaglądać do książki ;)
...