Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Typy danych MySQL:poznaj, których należy używać i w jaki sposób

Tworząc tabelę w bazie danych, powinna ona mieć zarówno nazwę, jak i typ danych. Typ danych kolumny definiuje wartości, które zawiera kolumna, takie jak liczba całkowita, pieniądze, binarny, znak, data i godzina. Dlatego zadaniem programisty jest określenie, które typy danych będą przechowywane w każdej kolumnie podczas tworzenia baz danych i tabel.

Mówiąc prościej, typy danych to wskazówki, które pomagają SQL w zrozumieniu, jaki typ danych jest wymagany w kolumnie. Jest również skuteczny w identyfikowaniu interakcji SQL z przechowywanymi danymi.

Należy zauważyć, że typy danych mogą zawierać różne nazwy w różnych bazach danych, a w przypadkach, gdy nazwy są takie same, inne aspekty i szczegóły, takie jak rozmiar, będą się różnić. Dlatego zaleca się, aby zawsze odwoływać się do dokumentacji, gdy napotkasz podobne przypadki.

Następujące cechy mogą identyfikować typy danych w MySQL:

  • Wartości typów danych, które mogą być indeksowane i tych, które nie mogą być indeksowane
  • Rodzaj wartości, które reprezentują
  • Miejsce, które zajmują, niezależnie od tego, czy wartości mają zmienną długość, czy stałą długość
  • Jak MySQL porównuje się z różnymi wartościami określonych typów danych

Zanim zagłębimy się i omówimy typy danych MySQL, konieczne jest poznanie i zrozumienie konwencji używanych w opisach typów danych, jak podkreślono poniżej:

  • (M ):W przypadku typów całkowitych wskazuje maksymalną szerokość, jaką może wyświetlić typ danych.
    :Oznacza całkowitą liczbę cyfr, które mogą być przechowywane dla typów stałoprzecinkowych i zmiennoprzecinkowych.
    :W przypadku typów ciągów pokazuje maksymalną długość

Uwaga:M Maksymalna dopuszczalna wartość zależy od typu danych

• (D ):dotyczy tylko typów stałoprzecinkowych i zmiennoprzecinkowych. Wskazuje skalę (liczbę cyfr po przecinku). Maksymalna możliwa wartość to 10, ale nie powinna być ważniejsza niż M -2

• Nawiasy kwadratowe ([i]) pokazują opcjonalne części typu definicji.

f sp: ta konwencja dotyczy typów sygnatury czasowej, DateTime i czasu. Reprezentuje precyzję ułamków sekund (liczbę cyfr po przecinku dla ułamków sekund). Podany fsp wartość musi mieścić się w zakresie 0-6. Wartość 0 oznacza, że ​​podana wartość nie zawiera części ułamkowych. Jednak w przypadkach, gdy wartość jest pominięta, precyzja jest oznaczana jako 0.

W MySQL istnieją trzy główne kategorie typów danych, które zawierają podkategorie. Podstawowe typy danych to:

  1. Typy danych łańcuchowych
  2. Typy danych daty i godziny.
  3. Liczbowe typy danych

Istnieją inne typy danych obsługiwane przez MySQL, takie jak typy danych przestrzennych i typy danych JSON.

Artykuł ten w sposób kompleksowy obejmuje wszystkie typy danych wymienione powyżej. Dlatego, aby uzyskać jasne zrozumienie typów danych, trzymaj się tego artykułu.

Typy danych ciągu

Typy danych ciąg są używane głównie do przechowywania danych binarnych i zwykłego tekstu, takich jak obrazy i pliki. Ponadto MYSQL ma możliwość porównywania i wyszukiwania wartości ciągów na podstawie pasującego wzorca, takiego jak wyrażenia regularne i operatory.

Poniżej znajduje się szczegółowa ilustracja wszystkich typów danych łańcuchowych obsługiwanych przez MySQL:

CHAR ( rozmiar ): Jest to ustalona długość łańcucha. Może zawierać litery, znaki specjalne lub cyfry. Parametr rozmiar oznacza długość kolumny w znakach i może wynosić od 0 do 255. Domyślny rozmiar to 1.

VARCHAR ( rozmiar ): To jest zmienna długość ciągu. Zawiera cyfry, znaki specjalne lub litery. Parametr rozmiar pokazuje maksymalną długość kolumny w znakach i może wynosić od 0 do 65535.

BINARNY ( rozmiar ): Są one równe CHAR(), przechowując tylko binarne ciągi bajtów. Parametr rozmiar określa długość kolumny w bajtach. Wartość domyślna to 1

SŁOWNICA ( rozmiar ): Jest to równe VARCHAR(), tylko że przechowuje binarne ciągi bajtów. Parametrrozmiar określa maksymalną długość kolumny w bajtach.

TINYTEXT: Zawiera ciągi o maksymalnej długości 255 znaków.

TEKST ( rozmiar ): Przechowuje ciągi o maksymalnej długości 65 535 bajtów.

BLOB ( rozmiar ): Dla dużych obiektów binarnych (BLOB). Mieszczą do 65 535 bajtów danych.

TINYBLOB: Dla dużych obiektów binarnych (BLOB). Zawiera maksymalną długość 255 bajtów.

LONGLOB: Dla dużych obiektów binarnych (BLOB). Mieszczą do 4 294 967 295 bajtów danych.

LONGTEKST: Zawiera ciągi o maksymalnej długości 4 294 967 295 znaków.

MEDIUMTEXT: Zawiera ciągi o maksymalnej długości 16 777 215 znaków.

ŚREDNIA BLOB: Dla dużych obiektów binarnych (BLOB). Mieszczą do 16 777 215 bajtów danych.

USTAW ( val1, val2, val3, … ): Jest to obiekt ciągu, który zawiera więcej niż jedną wartość (ciągi zawierające 0 lub więcej wartości). Są one wybierane z listy możliwych wartości, podobnie jak ENUM. Jednak na liście SET można podać tylko do 64 wartości.

LICZBA ( val1, val2, val3, … ): Jest to obiekt tekstowy, który może zawierać tylko jedną wartość wybraną z listy wszystkich możliwych wartości. Na liście ENUM można podać do 65535 wartości. Jeśli zostanie wstawiona wartość, której nie ma na liście, wstawiona wartość będzie pusta. Należy również pamiętać, że wartości są sortowane w zależności od kolejności, w jakiej użytkownik je wprowadził.

Typy danych daty i godziny

Typy danych daty i godziny określają wartości czasowe, takie jak DateTime, znacznik czasu, rok, godzina i data. Każdy z wymienionych typów temporalnych ma wartości zawierające zero. Za każdym razem, gdy zostanie wstawiona nieprawidłowa wartość, MySQL nie może jej przedstawić. Dlatego wybierane jest zero.

Poniżej znajduje się wyczerpująca ilustracja typów danych daty i godziny obsługiwanych przez MySQL:

DATA: Standardowy format daty to odpowiednio lata, miesiące i dni (RRRR-MM-DD), a obsługiwany zakres to „1000-01-01” do „9999-12-31”.

DATA GODZINA ( fsp ): Jest to połączenie daty i godziny. Standardowy format w tym przypadku to odpowiednio lata, miesiące, dni, godziny, minuty i sekundy (RRRR-MM-DD gg:mm:ss)

Uwaga: Dodanie wartości DEFAULT i ON UPDATE w kolumnie jest niezbędne do rozpoczęcia automatycznej inicjalizacji i aktualizuje aktualny czas i datę.

ZNACZNIK CZASOWY ( fsp ): Od epoki Uniksa wartości znaczników czasu są przechowywane jako liczba sekund, na przykład („1970-01-01 0;00;00” UTC). Standardowy format to odpowiednio lata, miesiące, dni, godziny, minuty i sekundy (RRRR-MM-DD gg:mm:ss), natomiast obsługiwany zakres to „('1970-01-01 00;00;01' UTC do ('2038-01-09 03;14;07' UTC. DEFAULT_CURRENT_TIMESTAMP i ON UPDATE CURRENT_TIMESTAMP są niezbędne do automatycznego inicjowania i aktualizowania bieżącej daty i godziny.

CZAS ( fsp ): Standardowy obsługiwany format czasu to odpowiednio godziny, minuty, sekundy (gg:mm:ss), a obsługiwany zakres to „-838:59:59” do „838:59:59”.

ROK: Rok jest reprezentowany w formacie czterocyfrowym — wartości dozwolone w formacie czterocyfrowym mieszczą się w zakresie od 1902 do 2155 i 0000.

Uwaga: Najnowsza wersja MySQL (8.0) nie obsługuje dwucyfrowego formatu roku.

Liczbowe typy danych

Typy danych liczbowych obejmują wszystkie dokładne typy danych liczbowych, takie jak liczba całkowita, dziesiętna i numeryczna. Zawiera również przybliżone typy danych liczbowych, takie jak zmiennoprzecinkowa, podwójna, podwójna precyzja i rzeczywista. Numeryczne typy danych przechowują wartości bitowe, ponieważ obsługują one typy danych BIT. Zwykle typy danych numerycznych w MySQL są podzielone na dwie kategorie:typy danych ze znakiem i typy danych bez znaku; jednak jest to wyjątek od typów danych bitowych.

Poniżej znajduje się szczegółowa ilustracja zawierająca wszystkie numeryczne typy danych obsługiwane przez MySQL oraz ich opis:

BIT ( rozmiar ): Jest to typ wartości bitowej, w którym liczba bitów na wartość jest określana jako rozmiar . Parametr rozmiar ma możliwość przechowywania wartości od 1 do 64, a jego domyślna wartość dla rozmiaru to 1.

TINYINT ( rozmiar ): Jest to bardzo mała liczba całkowita, której zakres ze znakiem wynosi od -128 do 127, a zakres bez znaku od 0 do 255. Parametr rozmiar oznacza maksymalną szerokość do wyświetlenia, która wynosi około 255.

BOOLEAN: Jest równy BOOL

BOOL: W BOOL wartości niezerowe są uważane za prawdziwe. Jednocześnie wartości zero są uważane za fałszywe.

INT ( rozmiar ): Jest to średnia liczba całkowita, której zakres ze znakiem wynosi od -2147483648 do 2147483647, a zakres bez znaku wynosi od 0 do 4294967295. Parametr rozmiar określa maksymalną szerokość do wyświetlenia, która wynosi około 255.

ŚREDNIA ( rozmiar ): Jest to również średnia liczba całkowita, której zakres ze znakiem wynosi od -32768 do 32767, podczas gdy zakres bez znaku wynosi od 0 do 65535. Parametrsize określa maksymalną szerokość do wyświetlenia, która wynosi około 255.

MAŁY ( rozmiar ): Jest to mała liczba całkowita, której zakres ze znakiem wynosi od -32768 do 32767, a zakres bez znaku wynosi od 0 do 16777215. rozmiar parametr w tym przypadku służy do określenia maksymalnej szerokości wyświetlacza, której zakres wynosi około 255.

PŁYWAJĄCY ( rozmiar, d ): Jest to liczba zmiennoprzecinkowa, której całkowita liczba cyfr jest oznaczona rozmiarem. d parametr pomaga określić liczbę cyfr po przecinku.

Uwaga: ten parametr został uznany za przestarzały w MySQL w wersji 8.0.17. Dlatego nie zostanie odtworzony w przyszłych wersjach MySQL.

LICZBA CAŁKOWITA ( rozmiar ): Jest to równoważne INT (rozmiar ).

PŁYWAJĄCY( p ): Jest to liczba zmiennoprzecinkowa. P parametr służy do określenia, czy w wynikowym typie danych zostanie użyty FLOAT czy DOUBLE. KiedyP -wartość waha się od 0 do 24, dane są znane jako FLOAT (). Natomiast kiedy P -wartość waha się od 25 do 53, następnie typ danych zmienia się na PODWÓJNE ().

GRUDZIEŃ ( rozmiar, d ): Jest to odpowiednik DECIMAL (rozmiar, d )

PODWÓJNE ( rozmiar, d ): Oznacza to standardowy rozmiar liczba zmiennoprzecinkowa, której całkowita liczba cyfr jest podana w rozmiarze. d parametr pomaga określić liczbę cyfr po przecinku.

DZIESIĘTNY ( rozmiar, d ): Jest to dokładna liczba stałoprzecinkowa, której całkowita liczba cyfr jest określona w kategoriach rozmiar . d parametr określa cyfry liczby po przecinku. Maksymalny rozmiar liczba wynosi 65, a d maksymalna liczba to 30. Dlatego domyślna wartość d wynosi 0, podczas gdy domyślna wartość rozmiar to 10.

Uwaga: wszystkie typy liczbowe zawierają dodatkowe opcje; ZEROFILL i UNSIGNED. Jeśli zostanie dodana opcja UNSIGNED, MySQL zabroni ujemnych wartości w kolumnie. Z drugiej strony, jeśli zostanie dodana opcja ZEROFILL, MySQL automatycznie doda atrybut UNSIGNED do wspomnianej kolumny.

Inne typy danych

Typ danych logicznych

Najmniejsza liczba całkowita TINYINT (1) jest używana do reprezentowania wartości logicznych w MySQL, ponieważ MySQL nie zawiera wbudowanego typu danych BOOL lub BOOLEAN. Dlatego podczas pracy z wartościami BOOL i BOOLEAN należy je zrównać z TINYINT (1).

Typ danych przestrzennych

MySQL zapewnia obsługę kilku typów danych przestrzennych, które mają różne rodzaje wartości geograficznych i geometrycznych, jak wskazano poniżej:

GEOMETRIA: Jest to agregat lub punkt, który może przechowywać wartość przestrzenną dowolnego typu, o ile mają lokalizację.

WIELOKĄT: Jest to płaska powierzchnia reprezentowana przez geometrię wieloboczną. Może być zdefiniowany przez zero lub tylko jedną zewnętrzną i więcej wewnętrznych granic.

WIELOLINIOWY ŁAŃCUCH: To jest geometria z wieloma krzywymi, która zawiera zbiór wartości LINESTRING.

WIELOKĄT: Jest to obiekt wielopowierzchniowy reprezentowany przez zbiór kilku elementów wielokąta i jest to geometria dwuwymiarowa

PUNKT: Jest to punkt lub para zawierająca współrzędne X i Y. Można powiedzieć, że jest to punkt w geometrii, który reprezentuje pojedynczą lokalizację.

KOLEKCJA GEOMETRII: To jest zbiór wartości GEOMETRIA

LINESTRING: Jest to krzywa zawierająca co najmniej jedną wartość punktową. W przypadkach, gdy ciąg linii zawiera tylko dwa punkty, oznacza to, że reprezentuje linię.

WIELOPUNKTOWY: Jest to zbiór wartości POINT, dzięki którym punkt nie może być w żaden sposób uporządkowany ani połączony.

Typ danych JSON

MYSQL obsługuje natywny typ danych JSON od momentu powstania wersji 5.7.8, co pozwala na szybkie i efektywne przechowywanie i zarządzanie dokumentami JSON. Ponadto natywny typ danych JSON odpowiada za zapewnienie optymalnego formatu przechowywania i automatyczną walidację dokumentów JSON.

Wniosek

Ten artykuł kompleksowo omówił wszystkie aspekty dotyczące typów danych MySQL, które pomogą Ci zrozumieć, które typy danych powinny być używane i jak powinny być używane. Wierzymy, że artykuł pomoże również poszerzyć Twoją wiedzę na temat MySQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. zaktualizować wiele wierszy za pomocą limitu w mysql?

  2. Ile wierszy w bazie danych to ZA DUŻO?

  3. Pobieranie nieprzetworzonego ciągu zapytania SQL z przygotowanych instrukcji PDO

  4. Porównanie rozwiązań do replikacji Oracle i MySQL

  5. Jak uciec od pojedynczego cudzysłowu i znaków specjalnych w MySQL