W MySQL, każda kolumna w tabeli ma określony typ danych. Wybór odpowiedniego typu danych dla kolumny jest kluczowy, ponieważ wpływa na zakres wartości, które można w niej przechowywać, oraz na sposób przechowywania tych wartości. W tym artykule przyjrzymy się dostępnym typom danych w MySQL, ich zakresom i zastosowaniom.
Typy liczbowe
| Typ danych | Opis | Zakres | Przykłady |
|---|---|---|---|
| TINYINT | Mała liczba całkowita | -128 do 127 | 1, -50, 100 |
| SMALLINT | Mała liczba całkowita | -32,768 do 32,767 | 3000, -15000 |
| MEDIUMINT | Średnia liczba całkowita | -8,388,608 do 8,388,607 | 500000, -2000000 |
| INT | Liczba całkowita | -231 do 231-1 | 200000000, -500000000 |
| BIGINT | Duża liczba całkowita | -263 do 263-1 | 9000000000000000 |
| FLOAT | Liczba zmiennoprzecinkowa | Zależy od precyzji | 3.14, -0.001, 20.5 |
| DOUBLE | Dokładna liczba zmiennoprzecinkowa | Zależy od precyzji | 3.141592653589793, -0.0000001 |
| DECIMAL(M,N) | Dokładna liczba zmiennoprzecinkowa | Zależy od M i N | 10.75, -3.33, 100.01 |
| BIT | Wartość binarna | 0 lub 1 | 0, 1 |
Typy tekstowe
| Typ danych | Opis | Zakres | Przykłady |
|---|---|---|---|
| CHAR(n) | Ciąg znaków o stałej długości | 0 do 255 znaków | ’A’, 'HELLO’ |
| VARCHAR(n) | Ciąg znaków o zmiennej długości | 0 do 65,535 znaków | ’Hello’, 'MySQL’, 'Data’ |
| TINYTEXT | Mały ciąg znaków | 0 do 255 znaków | ’Lorem ipsum’, 'Krótki tekst’ |
| TEXT | Ciąg znaków | 0 do 65,535 znaków | ’Lorem ipsum dolor sit…’, 'Tekst artykułu…’ |
| MEDIUMTEXT | Średnia długość ciąg znaków | 0 do 16,777,215 znaków | ’Dłuższy tekst artykułu…’ |
| LONGTEXT | Długi ciąg znaków | 0 do 4,294,967,295 znaków | ’Cała książka w formie tekstu…’ |
| ENUM(’value1′,’value2′,…) | Lista wartości | Zależy od listy wartości | ’RED’, 'GREEN’, 'BLUE’ |
| SET | Zestaw wartości | Do 64 wartości | ’apple,banana’, 'orange,mango,grape’ |
Typy daty i czasu
| Typ danych | Opis | Zakres | Przykłady |
|---|---|---|---|
| DATE | Data | ’1000-01-01′ do '9999-12-31′ | ’2023-04-25′, '1999-12-31′ |
| DATETIME | Data i czas | ’1000-01-01 00:00:00′ do '9999-12-31 23:59:59′ | ’2023-04-25 12:30:45′ |
| TIMESTAMP | Znacznik czasu | ’1970-01-01 00:00:01′ UTC do '2038-01-19 03:14:07′ UTC | ’2023-04-25 12:30:45′ |
| TIME | Czas | ’-838:59:59′ do '838:59:59′ | ’12:30:45′, '100:00:00′ |
| YEAR | Rok | 1901 do 2155 (i 0000) | ’2023′, '1999′ |
Typy binarne
| Typ danych | Opis | Zakres | Przykłady |
|---|---|---|---|
| BINARY(n) | Ciąg binarny o stałej długości | 0 do 255 bajtów | ’0A1E’, 'FE2D’ |
| VARBINARY(n) | Ciąg binarny o zmiennej długości | 0 do 65,535 bajtów | ’0A1E23′, 'FE2D45′ |
| TINYBLOB | Mały ciąg binarny | 0 do 255 bajtów | Dane binarne |
| BLOB | Ciąg binarny | 0 do 65,535 bajtów | Dane binarne |
| MEDIUMBLOB | Średni ciąg binarny | 0 do 16,777,215 bajtów | Dane binarne |
| LONGBLOB | Długi ciąg binarny | 0 do 4,294,967,295 bajtów | Dane binarne |
Typy logiczne
| Typ danych | Opis | Zakres | Przykłady |
|---|---|---|---|
| BOOLEAN | Wartość prawda/fałsz | TRUE lub FALSE | TRUE, FALSE |
Typy JSON
| Typ danych | Opis | Zakres | Przykłady |
|---|---|---|---|
| JSON | Wartość JSON | Zależy od wartości | '{„name”: „John”, „age”: 30}’, '[„apple”, „banana”, „cherry”]’ |
Wybór odpowiedniego typu danych jest kluczowy dla zapewnienia integralności danych, wydajności bazy danych i optymalizacji przestrzeni dyskowej. Przy projektowaniu tabeli w MySQL warto dokładnie przemyśleć potrzeby aplikacji i dobrać odpowiednie typy danych do przechowywanych informacji.