Kurs MySQL -Typy danych i atrybuty w MySQL

Poprzednio tworzyliśmy podstawowe zapytania w MySQL. Było sporo mięsa dla początkujących i wierzę, że poradziliście sobie super! Tworząc tabelę, określaliśmy jakiego typu będą poszczególne kolumny. Dziś zgłębimy ten temat bardziej omawiając typy danych w MySQL.

Typy danych w MySQL

Numeryczne typy danych w MySQL

Nazwa Opis
TINYINT 1-bajtowe pole, przechowujące wartości całkowite bez znaku z przedziału od 0 do 255 lub ze znakiem z przedziału od -127 do 127
BOOL 1-bajtowe pole logiczne, zakres True (true != 0) oraz False (false == 0)
BOOLEAN
SMALLINT 2-bajtowa wartość całkowita. Zakres wartości bez znaku od 0 do 65 535 lub ze znakiem od -32 768 do 32 768
MEDIUMINT 3-bajtowa wartość całkowita. Zakres wartości od 0 do 16 777 215 lub ze znakiem od -8 388 608 do 8 388 608
INT 4-bajtowa wartość całkowita. Zakres wartości ze znakiem od -2 147 483 648 do 2 147 483 647 lub bez znaku od 0 do 4 294 967 295
INTEGER
BIGINT 8-bajtowa wartość całkowita. Typ BIGINT jest używany podczas przeprowadzania obliczeń. Stosując pola tego typu we własnej bazie danych należy uważać, aby ich wartości nie były zbyt duże, ponieważ użyte w obliczeniach mogą doprowadzić do błędu przepełnienia
FLOAT(M,D) 4-bajtowa liczba zmiennoprzecinkowa z zakresu od -1.402823466E+38 do -1.175494351E-38, 0 i 1.175494351E-38 do 3.402823466E+38
DOUBLE PRECISION(M,D) 8-bajtowa liczba zmiennoprzecinkowa przechowująca wartości z zakresu od -1.7976931348623157E+308 do -2.2250738585072014E-308, 0, i 2.2250738585072014E-308 do 1.7976931348623157E+308
DECIMAL(M,D) Pole zmiennoprzecinkowe o takiej samej pojemności jak DOUBLE. Liczba, zamiast zostać zredukowana do postaci szesnastkowej, pamiętana jest w formacie znakowym
DEC
NUMERIC Typ danych podobny do decimal ale bardziej precyzyjny.  Jeżeli podamy 4 miejsca decymalne, pole musi przechować 4 miejsca decymalne

Typy daty i czasy w MySQL

Nazwa Opis
DATE Data (bez czasu), wyświetlana w formacie RRRR-MM-DD. Akceptuje daty w różnych formatach z zakresu od 1000-01-01 do 9999-12-31
DATETIME Pole daty z czasem dnia wyświetlane według formatu RRRR-MM-DD GG:MM:SS. Może przechowywać wartości z zakresu od 1000-01-01 00:00:00 do 9999-12-31 23:59:59
TIMESTAMP Data i czas liczony od początku epoki systemu UNIX, 1970-01-01 00:00:00, do momentu kiedy 32-bitowe pole przechowujące liczbę sekund, jaka upłynęła od tej daty ulegnie przepełnieniu w roku 2037. Jeśli polu temu nie została nadana wartość przez wyrażenie INSERT lub UPDATE, domyślnie otrzyma ono wartość daty bieżącej
TIME Czas mieszczący się w przedziale od -838:59:59 do 838:59:59
YEAR Rok. Dozwolone wartości to przedział od 1901 do 2155 oraz wartość 0000. MySQL wyświetla wartość typu YEAR w formacie RRRR

Tekstowe / znakowe typy danych w MySQL

Nazwa Opis
CHAR[(M)] Pole znakowe o stałej długości z zakresu od 1 do 255 bajtów. Po wstawieniu wartości puste miejsca pola CHAR są uzupełniane z prawej strony spacjami
VARCHAR(M) Pole znakowe o zmiennej długości z zakresu od 1 do 255 bajtów. Zajmowany jest jedynie taki obszar pamięci, jakiego wymaga wartość wstawiona w to pole
BINARY(M) Typ odpowiadający CHAR ale przechowujący wartości binarne
VARBINARY(M) Typ odpowiadający VARCHAR ale przechowujący wartości binarne.
TINYBLOB Kolumna binarna lub tekstowa o rozmiarze nie przekraczającym 255 bajtów
TINYTEXT
BLOB Kolumna binarna lub tekstowa o rozmiarze nie przekraczającym 65 535 bajtów
TEXT
MEDIUMBLOB Kolumna binarna lub tekstowa o rozmiarze nie przekraczającym 16 777 215 bajtów
MEDIUMTEXT
LONGBLOB Kolumna binarna lub tekstowa o rozmiarze nie przekraczającym 4 294 967 295 bajtów
LONGTEXT
ENUM(‚value1’, ‚value2’, …) Kolumna łańcuchowa, która może zawierać jedną z wartości wymienionych na liście wartości w definicji tej kolumny
SET(‘elem1’, ‘elem2’, …) Kolumna łańcuchowa, która może zawierać dowolną liczbę wartości spośród  wartości występujących na liście w definicji tej kolumny

Atrybuty w MySQL

UNSIGNED

Informujemy bazę, że będziemy przechowywać tylko wartości dodatnie. Analogicznie SIGNED informuje, że będziemy przechowywać również ujemne.

ZEROFILL

Liczby zapisane w kolumnie zostaną poprzedzone zerami jeśli ich długość jest krótsza niż zdefiniowana. Jednocześnie liczby te zawsze będą dodatnie

AUTO INCREMENT

Służy do generowania unikalnej wartości liczbowej dla nowych wierszy.

NULL / NOT NULL

Informujemy bazę czy pole musi być uzupełnione czy dopuszczamy by nie zawierało wartości

Dzięki za udział w kolejnej lekcji, jeśli masz chwilę podziel się swoimi wrażeniami i >>zostaw komentarz<< w wątku do tego posta.