Existe-t-il une différence entre INT (1) et TINYINT (1) dans MySQL?

Je suppose que INT (1) est exactement la même chose que TINYINT (1) mais je n’en ai aucune idée. Chaque fois que j’ai des valeurs qui ne peuvent être qu’un seul entier (par exemple, une valeur de 0 à 9), j’ai toujours utilisé INT (1) pour dire que c’est un entier et que ce ne sera qu’un seul caractère. il ne peut s’agir que d’une valeur de 0 à 9 (merci de m’expliquer si je me trompe). J’ai toujours ignoré les autres types d’INT que vous pouvez convertir en nombre. Je ne suis pas un expert de MySQL et j’ai tendance à éviter les choses plus compliquées que vous pouvez faire avec.

Donc, ma question est la suivante: existe-t-il une différence entre les différents types entiers INT, TINYINT, SMALLINT, MEDIUMINT et BIGINT si vous définissez une longueur de 1 pour chaque type ;? Si non, est-ce que je devrais les utiliser de toute façon (je peux voir les utiliser pour une signification plus sémantique, TINYINT étant plus spécifique que juste INT)? Si oui, pourrais-je facilement (et / ou devrais-je) parcourir ma firebase database et changer tous mes champs INT (1) en champs TINYINT (1)?

Le nombre entre parenthèses pour les types de colonnes entières est la “largeur d’affichage”. Cela n’affecte pas les exigences de stockage telles qu’elles sont prédéfinies.

Lectures complémentaires

Ici, vous comprendrez mieux!

 tinyint: 1 byte, -128 to +127 / 0 to 255 (unsigned) smallint: 2 bytes, -32,768 to +32,767 / 0 to 65,535 (unsigned) mediumint: 3 bytes, -8,388,608 to 8,388,607 / 0 to 16,777,215 (unsigned) int/integer: 4 bytes, -2,147,483,648 to +2,147,483,647 / 0 to 4,294,967,295 (unsigned) bigint: 8 bytes, -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 / 0 to 18,446,744,073,709,551,615 (unsigned) 

Comme l’explique la réponse acceptée:

Le nombre entre parenthèses indique le nombre de caractères pour afficher ce champ , pas la taille de stockage du champ.

Mais si vous voulez connaître la taille de stockage, vous devriez vérifier les documents sources MySQL.

Source: MySQL Docs: Types entiers (valeur exacte) – INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT

TINYINT : 1 octet, -128 à 127 non signé, 0 à 255 signé

SMALLINT : 2 octets, -32768 à 32767 non signés, 0 à 65535 signés

MEDIUMINT : 3 octets, -8388608 à 8388607 non signés, 0 à 16777215 signés

INT : 4 octets, -2147483648 à 2147483647, 0 à 4294967295 signés

BIGINT : 8 octets, -26 ^ 3 à 26 ^ 3-1 non signés, 0 à 26 ^ 4-1 signés