MySQL INT Data Type

author
4 minutes, 9 seconds Read

Podsumowanie: W tym poradniku poznasz typ danych MySQL INT lub typ integer oraz dowiesz się jak używać go w projektowaniu tabel bazy danych. Dodatkowo pokażemy jak używać atrybutów display width oraz ZEROFILL dla kolumny integer.

Wprowadzenie do MySQL typ INT

W MySQL, INT oznacza liczbę całkowitą, która jest liczbą całkowitą. Liczba całkowita może być zapisana bez składnika ułamkowego np. 1, 100, 4, -10, natomiast nie może być 1.2, 5/3 itd. Liczba całkowita może być zerem, może być dodatnia lub ujemna.

MySQL obsługuje wszystkie standardowe typy liczb całkowitych SQL INTEGER lub INT i SMALLINT. Dodatkowo MySQL udostępnia TINYINT MEDIUMINT oraz BIGINT jako rozszerzenia standardu SQL.

Typ danych MySQL INT może być podpisany lub niepodpisany. Poniższa tabela przedstawia właściwości każdego typu całkowitego, w tym przechowywanie w bajtach, wartość minimalną oraz wartość maksymalną.

.

Typ Przechowywanie Wartość minimalna Wartość maksymalna
(Bytes) (Signed/Unsigned) (Signed/Unsigned)
TINYINT 1 -.128 127
0 255
SMALLINT 2 -.32768 32767
0 65535
MEDIUMINT 3 -.8388608 8388607
0 16777215
INT 4 -.2147483648 2147483647
0 4294967295
BIGINT 8 -.9223372036854775808 9223372036854775807
0 18446744073709551615

Przykłady użycia typu danych MySQL INT

Przyjrzyjrzyjmy się kilku przykładom użycia typu danych integer.

A) Przykład użycia MySQL INT dla kolumny

Ponieważ typ integer reprezentuje dokładne liczby, zazwyczaj używasz go jako klucz główny tabeli. Ponadto kolumna INT może mieć atrybut AUTO_INCREMENT .

Gdy wstawisz wartość NULL lub 0 do kolumny INT AUTO_INCREMENT, wartość kolumny zostanie ustawiona na następną wartość sekwencyjną. Zauważ, że wartość sekwencji zaczyna się od 1.

Gdy wstawisz wartość, która nie jest NULL lub zero, do kolumny AUTO_INCREMENT, kolumna przyjmuje tę wartość. Ponadto sekwencja jest resetowana do następnej wartości wstawionej wartości.

Na początku utwórz nową tabelę o nazwie items z kolumną integer jako kluczem głównym:

Code language: SQL (Structured Query Language) (sql)

Możesz użyć albo INT, albo INTEGER w powyższej instrukcji CREATE TABLE, ponieważ są one wymienne. Za każdym razem, gdy wstawiasz nowy wiersz do tabeli items, wartość kolumny item_id jest zwiększana o 1.

Następnie, następująca instrukcja INSERT wstawia trzy wiersze do tabeli items.

Code language: SQL (Structured Query Language) (sql)

Następnie odpytaj dane z tabeli items za pomocą następującej instrukcji SELECT:

Code language: SQL (Structured Query Language) (sql)

Potem wstaw nowy wiersz, którego wartość kolumny item_id jest określona jawnie.

Code language: SQL (Structured Query Language) (sql)

Ponieważ aktualna wartość kolumny item_id wynosi 10, sekwencja jest resetowana do 11. Jeśli wstawisz nowy wiersz, kolumna AUTO_INCREMENT użyje 11 jako następnej wartości.

Code language: SQL (Structured Query Language) (sql)

Na koniec ponownie odpytaj dane tabeli items, aby zobaczyć wynik.

Code language: SQL (Structured Query Language) (sql)

Zauważ, że począwszy od MySQL 5.1, kolumna AUTO_INCREMENT akceptuje tylko wartości dodatnie i nie dopuszcza wartości ujemnych.

B) Korzystanie z MySQL INT UNSIGNED przykład

Po pierwsze, utwórz tabelę o nazwie classes, która ma kolumnę total_member z typem danych unsigned integer:

Code language: SQL (Structured Query Language) (sql)

Po drugie, wstaw nowy wiersz do tabeli classes:

Code language: SQL (Structured Query Language) (sql)

Działało zgodnie z oczekiwaniami.

Po trzecie, próba wstawienia wartości ujemnej do kolumny total_member:

Code language: SQL (Structured Query Language) (sql)

MySQL wypisał następujący błąd:

Code language: SQL (Structured Query Language) (sql)

MySQL INT z atrybutem display width

MySQL udostępnia rozszerzenie, które pozwala określić szerokość wyświetlania wraz z typem danych INT. Na przykład INT(5) określa INT o szerokości wyświetlania pięciu cyfr.

Należy pamiętać, że atrybut szerokości wyświetlania nie kontroluje zakresu wartości, które kolumna może przechowywać. Atrybut szerokości wyświetlania jest zazwyczaj używany przez aplikacje do formatowania wartości całkowitych. MySQL zawiera atrybut szerokości wyświetlania jako metadane zwracanego zestawu wyników.

MySQL INT z atrybutem ZEROFILL

Oprócz atrybutu szerokości wyświetlania, MySQL udostępnia niestandardowy atrybut ZEROFILL. W tym przypadku MySQL zastępuje spacje zerem. Rozważmy następujący przykład.

Po pierwsze, utwórz tabelę o nazwie zerofill_tests :

Code language: SQL (Structured Query Language) (sql)

Po drugie, wstaw nowy wiersz do tabeli zerofill_tests.

Code language: SQL (Structured Query Language) (sql)

Po trzecie, wypytaj o dane z tabeli zerofill_tests .

Code language: SQL (Structured Query Language) (sql)


Kolumnav1ma szerokość wyświetlania 2 obejmującąZEROFILL.Jej wartość wynosi 1, dlatego na wyjściu widzisz01. MySQL zastępuje pierwszą spację przez 0.

Kolumna v2 ma szerokość wyświetlania 3, w tym ZEROFILL. Jej wartość wynosi 6, dlatego na wyjściu widzisz 00 jako zera wiodące.

Kolumna v3 ma szerokość wyświetlania 5 z ZEROFILL, podczas gdy jej wartość wynosi 9, dlatego MySQL wstawia 0000 na początku liczby.

Zauważ, że jeśli użyjesz atrybutu ZEROFILL dla kolumny integer, MySQL automatycznie doda atrybut UNSIGNED do kolumny.

W tym samouczku nauczyłeś się używać typu danych MySQL INT do projektowania tabel bazy danych.

  • Czy ten poradnik był pomocny?
  • TakNie

.

Similar Posts

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.