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

MySQL:Hvorfor angive skærmbredde uden at bruge nulfyld

Denne ekstra "funktion" visningsbredde er ret forvirrende, fordi i andre kolonnetyper som CHAR er angiver længden.

Her er en kort oversigt:

  • Vigtigst:Det er ikke med angivelse af "lagerplads" eller "antal cifre". Det siger bare, hvordan dataene i denne kolonne er formateret før den returneres. INT(5) kan gemme det samme værdier som INT(16) eller INT(255) - alle tre kan gemme alle (og kun) værdier, der er gyldige for INT. INT(255) kan ikke gemme et nummer med 255 cifre. Lagerpladsen for dem alle er den plads, en INT optager.
  • Hvis du bruger ZEROFILL på en kolonne med visningsbredde, og strengrepræsentationen af ​​det lagrede nummer er kortere end visningsbredden, vil den være polstret til venstre med nuller. Hvis den er længere, sker der ikke noget. Hvis du vælger INT(5), og værdien er 13, returneres den som 00013. Hvis værdien er 123456, returneres den som 123456.
  • Hvis du ikke bruger ZEROFILL , vil der ikke være nogen udfyldning overhovedet (ingen mellemrum og sådan noget)
  • Hvis du bruger ZEROFILL , skal du være opmærksom på, at kolonnen også vil være UNSIGNED
  • Under alle omstændigheder returneres visningsbredden, når tabellens metadata forespørges. Så en applikation kunne vide, hvordan dataene skal formateres.

Jeg kan ikke lide visningsbredden, fordi lagerlaget "vider" om visuel præsentation af de lagrede data. Udover dette er der ingen nytte, som jeg er klar over.




  1. PHP PDOException:SQLSTATE[HY093]:Ugyldigt parameternummer

  2. Sådan bruger du Crosstab Query Wizard i Access

  3. Finde/søge efter manglende værdier i MySQL

  4. Undgå knee-Jerk Performance fejlfinding