środa, 19 września 2018

MySQL – Typ danych

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