sql >> Database teknologi >  >> RDS >> Mysql

tinyint(størrelse), varchar(størrelse):størrelsesforklaring

Din løsning på forvirring er-

I Mysql betyder int(6) ikke, at de kan gemme op til 6 cifre. ikke mere end 999999.

Men CHAR(6)Dette betyder en tegnkolonne med en maksimal længde på 6 tegn, såsom disse ord:

huse

Hvis jeg prøvede at gemme ordet "special" i den kolonne, ville MySQL skære værdien til "specia", da det originale ord har 7 tegn.

Under alle omstændigheder har heltalskolonner alle et forudindstillet værdiområde tilladt. Tallet i parentes angiver kun visningsbredden.

Dette er sandsynligvis stadig forvirrende, så lad mig forklare yderligere...

Skærmbredden er et tal fra 1 til 255. Du kan indstille skærmbredden, hvis du ønsker, at alle dine heltalværdier skal "vises" på samme måde:

TINYINT[(M)] [UNSIGNED] [ZEROFILL]

M angiver den maksimale visningsbredde for heltalstyper. Den maksimale visningsbredde er 255. Skærmbredden er ikke relateret til rækken af ​​værdier, en type kan indeholde, . For typer med flydende komma og fast punkt er M det samlede antal cifre, der kan gemmes.

Hvis du angiver ZEROFILL for en numerisk kolonne, tilføjer MySQL automatisk UNSIGNED-attributten til kolonnen.

Så svaret på dit spørgsmål er

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 |
+------+------+-----------------+

*Så forstå, I Mysql virker skærmbredde kun med nulfyld.

*hvis du bruger, brug ikke zerofill, det er ikke effektivt.

Og hvis du bruger zerofill, vil mysql kontrollere display widht , og hvis du ikke tildeler, vil mysql automatisk tildele display-width til den kolonne. *




  1. SQL Server tjekke følsomhed mellem store og små bogstaver?

  2. En uventet bivirkning ved at tilføje et filtreret indeks

  3. En guide til databaseautomatisering med Severalnines ClusterControl

  4. SQL Full Outer Join med flere tabeller