Mysql
 sql >> Baza danych >  >> RDS >> Mysql

tinyint (rozmiar), varchar (rozmiar):wyjaśnienie rozmiaru

Twoim rozwiązaniem na zamieszanie jest-

W Mysql int(6) nie oznacza, że ​​mogą przechowywać do 6 cyfr. nie więcej niż 999999.

Jednak CHAR(6)Oznacza to kolumnę znaków o maksymalnej długości 6 znaków, na przykład te słowa:

domy

Gdybym spróbował zapisać słowo „specia” w tej kolumnie, MySQL podzieliłby wartość na „specia”, ponieważ oryginalne słowo ma 7 znaków.

W każdym razie wszystkie kolumny liczb całkowitych mają wstępnie ustawiony zakres wartości. Liczba w nawiasie wskazuje tylko szerokość wyświetlania.

To prawdopodobnie nadal jest mylące, więc pozwól, że wyjaśnię dalej…

Szerokość wyświetlania to liczba od 1 do 255. Możesz ustawić szerokość wyświetlania, jeśli chcesz, aby wszystkie wartości całkowite „wyglądały” podobnie:

TINYINT[(M)] [BEZ PODPISU] [ZEROFILL]

M wskazuje maksymalną szerokość wyświetlania dla typów liczb całkowitych. Maksymalna szerokość wyświetlania to 255. Szerokość wyświetlania nie jest powiązana z zakresem wartości, jakie może zawierać typ, . W przypadku typów zmiennoprzecinkowych i stałoprzecinkowych M jest całkowitą liczbą cyfr, które można zapisać.

Jeśli określisz ZEROFILL dla kolumny numerycznej, MySQL automatycznie doda do kolumny atrybut UNSIGNED.

Więc odpowiedź na twoje pytanie to

create table foo
(
col2 tinyint(2) unsigned zerofill, col4 tinyint(4) unsigned zerofill, col5notzerofill        tinyint(5)  
)engine=innodb;

insert into foo values (1,2,3),(11,12,14),(123,123,156),(1234,1234,12756);
select * from foo;

OUTPUT :-
+------+------+-----------------+
| col2 | col4 | col5notzerofill |
+------+------+-----------------+
|   01 | 0002 |               3 |
|   11 | 0012 |              14 |
|  123 | 0123 |             127 |
|  255 | 0255 |             127 |
+------+------+-----------------+

*Więc zrozum, w Mysql szerokość wyświetlania działa tylko z zerowym wypełnieniem.

*jeśli używasz nie używaj zerofill, nie jest to skuteczne.

Jeśli użyjesz zerofill, mysql sprawdzi szerokość ekranu , a jeśli nie przypiszesz, mysql automatycznie przypisze szerokość ekranu do tej kolumny. *




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uatrakcyjnienie wyglądu znacznika czasu PHP/MySQL

  2. Plik danych ładowania MySql STR_TO_DATE zwraca pusty?

  3. Unikalne ograniczenie, które pozwala na puste wartości w MySQL

  4. Zamień pierwszą literę każdego słowa na wielką literę w istniejącej tabeli

  5. Jak korzystać z order by w Laravel, gdy używa CASE WEN?