Typy danych w MySQL

W MySQL’u czyli najpopularniejszej bazie danych używanych w tworzeniu stron internetowych, rozróżniamy trzy podstawowe typy danych i bardzo dużo różnych podtypów.

Poniżej przedstawiam zestawienie, które ułatwi odpowiedni dobór typu kolumn w projektowanej bazie danych, w celu najodpowiedniejszej optymalizacji:

Typu numeryczne

  • TINYINT - 1-bajtowe pole które obejmuje bardzo małe liczby całkowite, zakresy jakie przyjmuje to: 0..255 lub ze znakiem -127..128
  • SMALLINT - 2-bajtowe pole, które obejmuje małe liczby całkowite, zakresy jakie przyjmuje to: 0..65535 lub ze znakiem -32768..32767
  • MEDIUMINT - 3-bajtowe pole, które obejmuje średnie liczby całkowite, zakresy jakie przyjmuje to: 0 do 16 777 215 lub ze znakiem od -8 388 608 do 8 388 608
  • INT - 4-bajtowe pole, które obejmuje duże liczby całkowite, zakresy jakie przyjmuje to: 0 do 4 294 967 295 lub ze znakiem -2 147 483 648 do 2 147 483 647
  • BIGINT - 8-bajtowe pole, które obejmuje bardzo duże liczby całkowite, ten typ używany jest podczas obliczeń, należy ostrożnie jego używać
  • FLOAT(dokładność) – pole liczby zmiennoprzecinkowej z precyzją wyrażona w bajtach
  • FLOAT - 4-bajtowe pole liczby zmiennoprzecinkowej, równoznaczne FLOAT(4), zakres jako może przyjmować to: od -1.402823466E+38 do -1.175494351E-38, 0 i 1.175494351E-38 do 3.402823466E+38
  • DOUBLE - 8-bajtowa liczba zmiennoprzecinkowa, zakres jaki może przyjmować to: -1.7976931348623157E+308 do -2.2250738585072014E-308, 0, i 2.2250738585072014E-308 do 1.7976931348623157E+308
  • DECIMAL - liczba zmiennoprzecinkowa o takiej samej wielkości jak DOUBLE, jednak wartości są w niej przechowywane jako znaki – CHAR

Typy czasu i daty

  • DATE - data, która ma format: YYYY-MM-DD, zakres: od 1000-01-01 do 9999-12-31
  • DATETIME - data i czas, format to: YYYY-MM-DD GG:MM:SS, a zakres jakie przyjmuje: od 1000-01-01 00:00:00 do 9999-12-31 23:59:59
  • TIMESTAMP - UNIX’owy znacznik czasu, czyli ilość sekund jakie minęły od ery UNIX’a, zakres to 1970-01-01 00:00:00 do roku 2037
  • TIME - zakres czasu: od -838:59:59 do 838:59:59
  • YEAR - rok, format to: YYYY, a zakres: od 1901 do 2155 oraz wartość 0000


Typy znakowe

  • CHAR - łańcuch znakowy o stałej długości, który przyjmuje wartości od 1 do 255
  • VARCHAR - łańcuch znakowy o zmiennej długości, który przyjmuje wartości od 1 do 255
  • TINYBLOB - obiekt binarny który nie przekracza 255 bajtów wielkości
  • TINYTEXT - pole tekstowe które nie przekracza 255 bajtów wielkości
  • BOLB - obiekt binarny który nie przekracza 65 535 bajtów wielkości
  • TEXT - pole tekstowe które nie przekracza 65 535 bajtów wielkości
  • MEDIUMBLOB - obiekt binarny który nie przekracza 16 777 215 bajtów wielkości
  • MEDIUMTEXT - pole tekstowe które nie przekracza 16 777 215 bajtów wielkości
  • LONGBLOB - obiekt binarny który nie przekracza 4 294 967 295 bajtów wielkości
  • LONGTEXT - obiekt binarny który nie przekracza 4 294 967 295 bajtów wielkości
  • ENUM(‚wartosc1′,’wartosc2′,…) – kolumna znakowa, która przyjmuje wartości wymienione w liście, maksymalna ilość wartości 65535
  • SET(‚elem1′, ‚elem2′, …) - kolumna znakowa, która przyjmuje dowoloną liczbę wartości, które występują w liście, maksymalna ilość w zbiorze to: 64

Komentowanie jest zakończone.