MySQL - typy danych
Prawidłowe zdefiniowanie pól w tabeli jest ważne dla ogólnej optymalizacji bazy danych. Powinieneś używać tylko typu i rozmiaru pola, którego naprawdę potrzebujesz. Na przykład nie definiuj pola o szerokości 10 znaków, jeśli wiesz, że zamierzasz użyć tylko 2 znaków. Te typy pól (lub kolumn) są również określane jako typy danych po rozszerzeniutype of data będziesz przechowywać na tych polach.
MySQL używa wielu różnych typów danych podzielonych na trzy kategorie -
- Numeric
- Data i godzina
- Typy strun.
Omówmy je teraz szczegółowo.
Numeryczne typy danych
MySQL wykorzystuje wszystkie standardowe numeryczne typy danych ANSI SQL, więc jeśli przychodzisz do MySQL z innego systemu bazy danych, te definicje będą wyglądać znajomo.
Poniższa lista przedstawia typowe numeryczne typy danych i ich opisy -
INT- Liczba całkowita o normalnej wielkości, która może być ze znakiem lub bez znaku. Jeśli znak jest podpisany, dopuszczalny zakres wynosi od -2147483648 do 2147483647. W przypadku braku znaku dopuszczalny zakres wynosi od 0 do 4294967295. Możesz określić szerokość do 11 cyfr.
TINYINT- Bardzo mała liczba całkowita, która może być ze znakiem lub bez znaku. Jeśli podpisany, dopuszczalny zakres wynosi od -128 do 127. Jeśli nie ma znaku, dopuszczalny zakres wynosi od 0 do 255. Możesz określić szerokość do 4 cyfr.
SMALLINT- mała liczba całkowita, która może być ze znakiem lub bez znaku. W przypadku podpisania dopuszczalny zakres wynosi od -32768 do 32767. Jeśli nie ma znaku, dopuszczalny zakres wynosi od 0 do 65535. Można określić szerokość do 5 cyfr.
MEDIUMINT- średniej wielkości liczba całkowita, która może być ze znakiem lub bez znaku. Jeśli znak jest podpisany, dopuszczalny zakres wynosi od -8388608 do 8388607. W przypadku braku znaku dopuszczalny zakres wynosi od 0 do 16777215. Możesz określić szerokość do 9 cyfr.
BIGINT- duża liczba całkowita, która może być ze znakiem lub bez znaku. Jeśli jest podpisany, dopuszczalny zakres wynosi od -9223372036854775808 do 9223372036854775807. W przypadku braku znaku dopuszczalny zakres wynosi od 0 do 18446744073709551615. Możesz określić szerokość do 20 cyfr.
FLOAT(M,D)- Liczba zmiennoprzecinkowa, której nie można bez znaku. Możesz zdefiniować długość wyświetlania (M) i liczbę miejsc po przecinku (D). Nie jest to wymagane i domyślnie wynosi 10,2, gdzie 2 to liczba miejsc po przecinku, a 10 to całkowita liczba cyfr (w tym dziesiętnych). Precyzja dziesiętna może dochodzić do 24 miejsc dla zmiennej FLOAT.
DOUBLE(M,D)- Liczba zmiennoprzecinkowa podwójnej precyzji, która nie może być bez znaku. Możesz zdefiniować długość wyświetlania (M) i liczbę miejsc po przecinku (D). Nie jest to wymagane i domyślnie wynosi 16,4, gdzie 4 to liczba miejsc po przecinku. Dokładność dziesiętna może dochodzić do 53 miejsc w przypadku DOUBLE. REAL to synonim DOUBLE.
DECIMAL(M,D)- Rozpakowana liczba zmiennoprzecinkowa, której nie można bez znaku. W rozpakowanych liczbach dziesiętnych każda cyfra dziesiętna odpowiada jednemu bajtowi. Wymagane jest zdefiniowanie długości wyświetlania (M) i liczby miejsc po przecinku (D). NUMERIC to synonim DECIMAL.
Typy daty i godziny
Typy danych daty i godziny MySQL są następujące -
DATE- Data w formacie RRRR-MM-DD między 1000-01-01 a 9999-12-31. Na przykład, 30 grudnia th , 1973 byłyby przechowywane jako 1973-12-30.
DATETIME- Kombinacja daty i godziny w formacie RRRR-MM-DD GG: MM: SS, między 1000-01-01 00:00:00 a 9999-12-31 23:59:59. Na przykład, 3:30 po południu w dniu 30 grudnia th , 1973 byłyby przechowywane jako 1973-12-30 15:30:00.
TIMESTAMP- znacznik czasu pomiędzy północy 1 stycznia st , 1970 i kiedyś w 2037 roku to wygląda poprzedniego formatu DateTime tylko bez myślników pomiędzy numerami; 3:30 po południu w dniu 30 grudnia th , 1973 byłyby przechowywane jako 19731230153000 (rrrrmmddggmmss).
TIME - Przechowuje czas w formacie HH: MM: SS.
YEAR(M)- Przechowuje rok w formacie dwu- lub czterocyfrowym. Jeśli długość jest określona jako 2 (na przykład ROK (2)), ROK może wynosić od 1970 do 2069 (od 70 do 69). Jeśli długość jest określona jako 4, to YEAR może wynosić od 1901 do 2155. Domyślna długość to 4.
Typy strun
Chociaż typy liczbowe i daty są zabawne, większość danych, które będziesz przechowywać, będzie w formacie ciągu. Ta lista opisuje typowe łańcuchowe typy danych w MySQL.
CHAR(M)- Ciąg o stałej długości od 1 do 255 znaków (na przykład CHAR (5)), dopełniony spacjami po prawej stronie do określonej długości podczas przechowywania. Określenie długości nie jest wymagane, ale wartość domyślna to 1.
VARCHAR(M)- Ciąg o zmiennej długości, zawierający od 1 do 255 znaków. Na przykład VARCHAR (25). Podczas tworzenia pola VARCHAR należy zdefiniować długość.
BLOB or TEXT- Pole o maksymalnej długości 65535 znaków. Obiekty BLOB to „duże obiekty binarne”, które służą do przechowywania dużych ilości danych binarnych, takich jak obrazy lub inne typy plików. Pola zdefiniowane jako TEKST również przechowują duże ilości danych. Różnica między nimi polega na tym, że sortowania i porównania przechowywanych danych sącase sensitive na BLOB-ach i są not case sensitivew polach TEKST. Nie określasz długości za pomocą BLOB lub TEXT.
TINYBLOB or TINYTEXT- Kolumna typu BLOB lub TEXT o maksymalnej długości 255 znaków. Nie określasz długości za pomocą TINYBLOB lub TINYTEXT.
MEDIUMBLOB or MEDIUMTEXT- Kolumna typu BLOB lub TEXT o maksymalnej długości 16777215 znaków. Nie określasz długości za pomocą MEDIUMBLOB lub MEDIUMTEXT.
LONGBLOB or LONGTEXT- Kolumna typu BLOB lub TEXT o maksymalnej długości 4294967295 znaków. Nie określasz długości za pomocą LONGBLOB lub LONGTEXT.
ENUM- Wyliczenie, które jest fantazyjnym określeniem listy. Definiując ENUM, tworzysz listę elementów, z których należy wybrać wartość (lub może to być NULL). Na przykład, jeśli chcesz, aby Twoje pole zawierało „A”, „B” lub „C”, możesz zdefiniować ENUM jako ENUM („A”, „B”, „C”) i tylko te wartości (lub NULL) mógłby kiedykolwiek wypełnić to pole.
W następnym rozdziale omówimy sposób tworzenia tabel w MySQL.