MySQL – Typ 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 będziesz używać tylko 2 znaków. Tego
typu pola (lub kolumny) są również określane jako typy danych po typie
danych,które będą przechowywane w tych polach.
MySQL używa wielu różnych typów danych podzielonych na
trzy kategorie:
- Numeryczne
- Data i godzina
- Typy ciągów.
Omówmy je teraz szczegółowo.
Numeryczne typy danych
MySQL używa wszystkich standardowych typów danych liczbowych ANSI
SQL, więc jeśli wchodzisz do MySQL z innego systemu baz danych, te definicje
będą wyglądać znajomo. Poniższa lista pokazuje popularne typy danych
liczbowych i ich opisy -
·
INT - normalna liczba
całkowita, która może być ze znakiem lub bez znaku. Jeśli znak zostanie
dodany, dopuszczalny zakres wynosi od -2147483648 do 2147483647. Jeśli nie jest
ze znakiem, dopuszczalny zakres wynosi od 0 do 4294967295. Można podać
szerokość maksymalnie 11 cyfr.
·
TINYINT - bardzo mała liczba całkowita, która może być ze
znakiem lub bez znaku. Jeśli jest z znakiem, dopuszczalny zakres wynosi od
-128 do 127. Jeśli nie jest ze znakiem, dopuszczalny zakres wynosi od 0 do 255.
Można podać szerokość maksymalnie 4 cyfr.
·
SMALLINT - Mała liczba całkowita, która może być ze znakiem lub
bez znaku. Jeśli jest ze znakiem, dopuszczalny zakres wynosi od -32768 do
32767. Jeśli nie jest ze znakiem, dopuszczalny zakres wynosi od 0 do 65535.
Można podać szerokość maksymalnie 5 cyfr.
·
MEDIUMINT - średniej wielkości liczba całkowita, która może być
ze znakiem lub bez znaku. Jeśli znak zostanie dodany, dopuszczalny zakres
wynosi od -8388608 do 8388607. Jeśli nie jest ze znakiem, dopuszczalny zakres
wynosi od 0 do 16777215. Można podać szerokość maksymalnie 9 cyfr.
· BIGINT - Duża liczba
całkowita, która może być ze znakiem lub bez znaku. Jeśli znak zostanie
dodany, dopuszczalny zakres wynosi od -9223372036854775808 do
9223372036854775807. Jeśli nie jest ze znakiem, dopuszczalny zakres wynosi od 0
do 18446744073709551615. Można podać szerokość maksymalnie 20 cyfr.
·
FLOAT (M, D) - liczba zmiennoprzecinkowa, która nie może być bez
znaku. Możesz zdefiniować długość wyświetlania (M) i liczbę miejsc
dziesiętnych (D). Nie jest to wymagane i domyślnie wynosi 10,2, gdzie 2 to
liczba dziesiętna, a 10 to całkowita liczba cyfr (w tym miejsca dziesiętne). Dokładność
dziesiętna może osiągnąć 24 miejsca dla 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 dziesiętnych (D). Nie jest to wymagane i domyślnie będzie to
16,4, gdzie 4 to liczba miejsc dziesiętnych. Dokładność dziesiętna może
wynosić do 53 miejsc DOUBLE. REAL jest synonimem DOUBLE.
·
DECIMAL (M, D) - Liczba zmiennoprzecinkowa, która nie może być bez
znaku. Każde miejsce dziesiętne odpowiada jednemu bajtowi. Wymagane
jest określenie długości wyświetlania (M) i liczby miejsc po przecinku
(D). NUMERIC jest synonimem DECIMAL.
Typy daty i czasu
Typy dat i czasu MySQL są następujące:
- DATA -
data w formacie RRRR-MM-DD, od 1000-01-01 do 9999-12-31. Na przykład,
30 grudnia 1973 byłyby przechowywane jako 1973-12-30.
- DATETIME -
Kombinacja daty i czasu w formacie RRRR-MM-DD HH: 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 1973 byłyby przechowywane jako 1973-12-30
15:30:00.
·
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 − Przechowuje
czas w formacie HH: MM: SS.
·
YEAR(M) − Przechowuje
rok w formacie 2-cyfrowym lub 4-cyfrowym. Jeśli długość jest określona
jako 2 (na przykład YEAR (2)), YEAR może wynosić od 1970 do 2069 (od 70 do
69). Jeśli długość jest określona jako 4, wówczas YEAR może wynosić od
1901 do 2155. Domyślna długość to 4.
Typy ciągów
Chociaż typy numeryczne i daty są zabawne, większość danych, które
będziesz przechowywać, będzie w formacie tekstowym. Ta lista opisuje
typowe typy łańcuchów znaków w MySQL.
.
·
CHAR(M) − Ciąg o
stałej długości od 1 do 255 znaków (na przykład CHAR (5)), wypełniony od prawej
strony spacjami do określonej długości, gdy jest przechowywany. Określenie
długości nie jest wymagane, ale wartość domyślna to 1.
·
VARCHAR(M) − Ciąg o
zmiennej długości od 1 do 255 znaków. Na przykład VARCHAR
(25). Podczas tworzenia pola VARCHAR należy zdefiniować długość.
· BLOB lub TEXT − Pole o maksymalnej długości 65535 znaków. BLOBy to
"duże obiekty binarne" i służą do przechowywania dużych ilości danych
binarnych, takich jak obrazy lub inne typy plików. Pola zdefiniowane jako TEXT zawierają również duże ilości danych. Różnica między
nimi polega na tym, że sortowanie i porównywanie przechowywanych danych rozróżnia
małe i duże litery w polach TEXT. Nie określasz
długości z BLOB lub TEXT.
·
TINYBLOB lub TINYTEXT − kolumna BLOB lub TEXT o maksymalnej długości 255
znaków. Nie określasz długości za pomocą TINYBLOB lub TINYTEXT.
· MEDIUMBLOB lub
MEDIUMTEXT − kolumna BLOB lub TEXT o maksymalnej długości
16777215 znaków. Nie określasz długości z MEDIUMBLOB lub MEDIUMTEXT.
· LONGBLOB or LONGTEXT − kolumna BLOB lub TEXT o maksymalnej długości 4294967295
znaków. Nie określasz długości z LONGBLOB lub LONGTEXT.
· ENUM – Typ wyliczeniowy,
który jest wymyślnym terminem dla listy. Definiując ENUM, tworzysz listę
elementów, z których wartość musi zostać wybrana (lub może mieć wartość
NULL). Na przykład, jeśli chcesz, aby twoje pole zawierało "A"
lub "B" lub "C", zdefiniowałbyś ENUM jako ENUM
("A", "B", "C") i tylko te wartości (lub NULL)
może kiedykolwiek wypełnić to pole.
W następnym rozdziale omówimy sposób tworzenia tabel w MySQL.
Brak komentarzy:
Prześlij komentarz