MySQL: Po co określać szerokość wyświetlania bez używania zerofill

Niedawno zagłębiłem się w ekscytujący świat SQL. Nadal próbuję owinąć głowę wokół koncepcji. Postępowałem zgodnie z samouczkami online. Wiele z tych samouczków zawiera kod SQL do tworzenia takiej tabeli.

CREATE TABLE `users` (
     `id` tinyint(4) NOT NULL AUTO_INCREMENT,
     `username` varchar(10) NOT NULL,
     `password` varchar(100) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Po obejrzeniu takich liniiid tinyint(4)Zastanawiałem się, jaki parametr przekazano do typu danych. Myślałem: „czy to znaczy, że id może być dowolną liczbą całkowitą między -128 a 127 (nie więcej niż 4 znaki)?”

Więc skonsultowałem się z doktorami. Co to jestDokumenty MySQL mają do powiedzenia o atrybutach typu liczbowego.

Szerokość wyświetlania nie ogranicza zakresu wartości, które mogą być przechowywane w kolumnie. Nie zapobiega również poprawnemu wyświetlaniu wartości szerszych niż szerokość wyświetlania kolumny. Na przykład kolumna określona jako SMALLINT (3) ma zwykle zakres SMALLINT od -32768 do 32767, a wartości spoza zakresu dozwolonego przez trzy cyfry są wyświetlane w całości przy użyciu więcej niż trzech cyfr

W połączeniu z opcjonalnym atrybutem (niestandardowym) ZEROFILL domyślne wypełnienie spacji jest zastępowane zerami. Na przykład, dla kolumny zadeklarowanej jako INT (4) ZEROFILL, wartość 5 jest pobierana jako 0005.

Więc jeśli czytam to dobrze, deklaruję takie rzeczyINT(255) są bezużyteczne, chyba że używasz zerofill. Ok ma sens deklarując typ danych, który baza danych przydziela wystarczającą ilość miejsca dla tej bazy danych.

Dlaczego więc ludzie piszą taki kod? Czy to służy celowi? Czy całkowicie nie rozumiem?

questionAnswers(1)

yourAnswerToTheQuestion