Znałem wartość logiczną w mysql jako tinyint (1)
.
Dzisiaj widzę tabelę ze zdefiniowaną liczbą całkowitą tinyint(2)
, a także innymi int(4)
, int(6)
...
Co oznacza rozmiar w polu typu integer i tinyint?
mysql
sqldatatypes
realtebo
źródło
źródło
Odpowiedzi:
Oznacza szerokość wyświetlacza
Bez względu na to, czy używasz tinyint (1), czy tinyint (2), nie ma to znaczenia.
Zawsze używam tinyint (1) i int (11), korzystałem z kilku klientów mysql (navicat, sequel pro).
W ogóle nic nie znaczy! Przeprowadziłem test, wszystkie powyższe klienty, a nawet klient wiersza poleceń wydaje się to ignorować.
Ale szerokość wyświetlania jest najważniejsza, jeśli używasz
ZEROFILL
opcji, na przykład twoja tabela ma następujące 2 kolumny:Tinyint (2) ZEROFILL
B tinyint (4) zerofill
obie kolumny mają wartość 1, dane wyjściowe dla kolumny A byłyby,
01
a0001
dla B , jak widać na zrzucie ekranu poniżej :)źródło
(m)
Wskazuje szerokość wyświetlania kolumny; aplikacje takie jak klient MySQL wykorzystują to podczas wyświetlania wyników zapytania.Na przykład:
Tutaj
a
,b
ac
używaszTINYINT(1)
,TINYINT(2)
iTINYINT(3)
odpowiednio. Jak widać, wypełnia wartości po lewej stronie, używając szerokości wyświetlania.Należy zauważyć, że nie wpływa to na akceptowany zakres wartości dla tego konkretnego typu, tzn.
TINYINT(1)
Nadal akceptuje[-128 .. 127]
.źródło
źródło
Informacje o INT, TINYINT ... Są to różne typy danych, INT to liczba 4-bajtowa, TINYINT to liczba 1-bajtowa. Więcej informacji tutaj - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT .
Składnia typu danych TINYINT to TINYINT (M), gdzie M oznacza maksymalną szerokość wyświetlania (używaną tylko, jeśli obsługuje go klient MySQL).
Atrybuty typu liczbowego .
źródło