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

MySQL:Po co określać szerokość wyświetlania bez używania zerowego wypełnienia?

Ta dodatkowa "funkcja" szerokości wyświetlania jest dość myląca, ponieważ w innych typach kolumn, takich jak CHAR to określa długość.

Oto krótki podział:

  • Najważniejsze:to nie określając „miejsce do przechowywania” lub „liczbę cyfr”. Mówi tylko o tym, jak dane w tej kolumnie są sformatowane zanim zostanie zwrócony. INT(5) może przechowywać to samo wartości takie jak INT(16) lub INT(255) - wszystkie trzy mogą przechowywać wszystkie (i tylko) wartości, które są ważne dla INT. INT(255) nie może przechowywać numeru składającego się z 255 cyfr. Miejsce do przechowywania dla wszystkich z nich to miejsce, które zajmuje INT.
  • Jeśli używasz ZEROFILL na kolumnie z szerokością wyświetlania, a ciąg reprezentujący przechowywaną liczbę jest krótszy niż szerokość wyświetlania, zostanie dopełniony zerami z lewej strony. Jeśli trwa dłużej, nic się nie dzieje. Jeśli wybierzesz INT(5), a wartość to 13, zostanie zwrócona jako 00013. Jeśli wartość to 123456, zostanie zwrócona jako 123456.
  • Jeśli nie używasz ZEROFILL , w ogóle nie będzie dopełniania (bez spacji itp.)
  • Jeśli używasz ZEROFILL , musisz mieć świadomość, że kolumna również będzie UNSIGNED
  • W każdym przypadku szerokość wyświetlania jest zwracana podczas zapytania o metadane tabeli. Dzięki temu aplikacja może wiedzieć, jak dane powinny być sformatowane.

Nie podoba mi się szerokość wyświetlacza, ponieważ warstwa przechowywania „wie” o wizualnej prezentacji przechowywanych danych. Poza tym nie ma sensu, o którym wiem.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie SQLAlchemy ORM dla klucza innego niż podstawowy, unikalny, automatycznie zwiększający się identyfikator

  2. Znaleziono:bit, oczekiwano:wartość logiczna po aktualizacji Hibernate 4

  3. KOLUMNA UPUSZCZANIA MySQL

  4. użyj mysql SUM() w klauzuli WHERE

  5. Jak uzyskać odpowiednik ResultSetMetaData bez ResultSet?