Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL:Защо да посочвате ширината на дисплея, без да използвате Zerofill

Тази допълнителна ширина на дисплея с „функция“ е доста объркваща, тъй като в други типове колони като CHAR is определя дължината.

Ето кратка разбивка:

  • Най-важното:не указване на "пространството за съхранение" или "броя на цифрите". Просто се казва как са форматирани данните в тази колона преди да бъде върнато. INT(5) може да съхранява същото стойности като INT(16) или INT(255) - и трите могат да съхраняват всички (и само) стойности, които са валидни за INT. INT(255) не може да съхранява число с 255 цифри. Мястото за съхранение за всички тях е пространството, което заема INT.
  • Ако използвате ZEROFILL в колона с ширина на дисплея и низовото представяне на съхраненото число е по-късо от ширината на дисплея, то ще бъде допълнено отляво с нули. Ако е по-дълго, нищо не се случва. Ако изберете INT(5) и стойността е 13, тя ще бъде върната като 00013. Ако стойността е 123456, тя ще бъде върната като 123456.
  • Ако не използвате ZEROFILL , изобщо няма да има подпълване (без интервали и други подобни)
  • Ако използвате ZEROFILL , трябва да сте наясно, че колоната също ще бъде UNSIGNED
  • Във всеки случай ширината на дисплея се връща при запитване на метаданните на таблицата. Така едно приложение може да знае как трябва да бъдат форматирани данните.

Не ми харесва ширината на дисплея, защото слоят за съхранение "знае" за визуалното представяне на съхранените данни. Освен това, няма никаква полза, за която знам.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да:Класиране на резултатите от търсенето

  2. MySQL низ Последен индекс на

  3. Рамката на обект с миграциите на база данни mysql се провалят при създаване на индекси

  4. Надстройте MySQL до MariaDB 10 (Част 2 – Надстройте MariaDB/MySQL 5.5 до версия 10.0)

  5. изтегляне на RDS моментна снимка