Maison > Article > base de données > Quel est le type de numéro de MySQL ?
Les types numériques de MySQL sont : le type INT, le type TINYINT, le type SMALLINT, le type MEDIUMINT, le type BIGINT, le type FLOAT, le type DOUBLE et le type DECIMAL.
(Tutoriel recommandé : Tutoriel vidéo MySQL)
Type de numéro MySQL
1. Type entier MySQL
Le type entier est également appelé données numériques. Le type de données numérique est principalement utilisé pour stocker des nombres.
MySQL fournit une variété de types de données numériques. Différents types de données fournissent différentes plages de valeurs. Plus la plage de valeurs pouvant être stockée est grande, plus l'espace de stockage requis est grand.
Les principaux types d'entiers fournis par MySQL sont TINYINT, SMALLINT, MEDIUMINT, INT et BIGINT, et des contraintes d'incrémentation automatique AUTO_INCREMENT peuvent être ajoutées à leurs champs d'attributs. Le tableau suivant répertorie les types numériques dans MySQL.
Comme vous pouvez le voir dans le tableau ci-dessus, différents types d'entiers nécessitent différents nombres d'octets à stocker. Celui qui occupe le plus petit nombre d'octets est le type TINYINT, qui occupe des octets. Le plus grand est le type BIGINT. Plus le type occupe d'octets, plus la plage de valeurs qu'il peut représenter est grande.
La plage de valeurs de chaque type de données peut être trouvée en fonction du nombre d'octets occupés. Par exemple, TINYINT nécessite 1 octet (8 bits) pour stocker, alors la valeur maximale du numéro non signé TINYINT est 28-1, soit 255 ; la valeur maximale du numéro signé TINYINT est 27-1, soit 127. La méthode de calcul pour la plage de valeurs des autres types d’entiers est la même, comme indiqué dans le tableau suivant.
Conseil : La largeur d'affichage n'a rien à voir avec la plage de valeurs du type de données. La largeur d'affichage spécifie uniquement le nombre maximum de chiffres que MySQL peut afficher. Si le nombre de chiffres est inférieur à la largeur spécifiée, il sera rempli d'espaces. Si une valeur supérieure à la largeur d'affichage est insérée, la valeur peut toujours être insérée et affichée tant qu'elle ne dépasse pas la plage de valeurs de l'entier de ce type. Par exemple, le champ année est inséré dans 19999. Lorsque vous utilisez SELECT pour interroger la valeur de la colonne, MySQL affichera le 19999 complet avec 5 chiffres au lieu de la valeur à 4 chiffres.
D'autres types de données entières peuvent également spécifier la largeur d'affichage requise lors de la définition de la structure du tableau. Si cela n'est pas spécifié, le système spécifie une valeur de largeur par défaut pour chaque type.
Différents types d'entiers ont des plages de valeurs différentes et nécessitent un espace de stockage différent. Par conséquent, le type le plus approprié doit être sélectionné en fonction des besoins réels. Cela contribuera à améliorer l'efficacité des requêtes et à économiser de l'espace de stockage.
2. Type décimal mysql
MySQL utilise des nombres à virgule flottante et des nombres à virgule fixe pour représenter les décimales.
Il existe deux types de nombres à virgule flottante, les nombres à virgule flottante simple précision (FLOAT) et les nombres à virgule flottante double précision (DOUBLE) ; il n'y a qu'un seul type à virgule fixe, qui est DECIMAL ;
Les types à virgule flottante et les types à virgule fixe peuvent être représentés par (M, D), où M est appelé précision, indiquant le nombre total de chiffres ; D est appelé échelle, indiquant le nombre de chiffres décimaux ; .
La plage de valeurs du type nombre à virgule flottante est M (1 ~ 255) et D (1 ~ 30, et ne peut pas être supérieure à M-2), qui représentent respectivement la largeur d'affichage et le nombre de décimales. M et D sont facultatifs dans FLOAT et DOUBLE, et les types FLOAT et DOUBLE seront enregistrés avec la précision maximale prise en charge par le matériel. La valeur D par défaut pour DECIMAL est 0 et la valeur M est 10.
Le tableau suivant répertorie les types décimaux et les exigences de stockage dans MySQL.
Le type DECIMAL est différent de FLOAT et DOUBLE. DOUBLE est en fait stocké sous la forme d'une chaîne. La plage de valeurs maximale possible de DECIMAL est la même que celle de DOUBLE, mais la plage de valeurs effective est déterminée par M et D. Si M est modifié et D est fixe, la plage de valeurs s'élargira à mesure que M grandira.
Comme vous pouvez le voir dans le tableau ci-dessus, l'espace de stockage de DECIMAL n'est pas fixe, mais est déterminé par la valeur de précision M, occupant M+2 octets.
La plage de valeurs du type FLOAT est la suivante :
La plage de valeurs signée : -3.402823466E+38~-1.175494351E-38.
Plage de valeurs non signées : 0 et -1.175494351E-38~-3.402823466E+38.
La plage de valeurs de type DOUBLE est la suivante :
Plage de valeurs signées : -1.7976931348623157E+308~-2.2250738585072014E-308 .
Plage de valeurs non signées : 0 et -2.2250738585072014E-308~-1.7976931348623157E+308.
Conseil : qu'il s'agisse d'un type à virgule fixe ou à virgule flottante, si la précision spécifiée par l'utilisateur dépasse la plage de précision, elle sera arrondie pour le traitement.
FLOAT et DOUBLE prendront par défaut la précision réelle (déterminée par le matériel informatique et le système d'exploitation) lorsque la précision n'est pas spécifiée. DECIMAL sera par défaut (10, 0) si la précision n'est pas spécifiée. .
L'avantage des nombres à virgule flottante par rapport aux nombres à virgule fixe est qu'ils peuvent représenter une plage plus large lorsque la longueur est constante ; l'inconvénient est que cela peut entraîner des problèmes de précision.
Enfin, permettez-moi de souligner : dans MySQL, les nombres à virgule fixe sont stockés sous forme de chaînes. Lorsque les exigences de précision sont relativement élevées (comme la devise, les données scientifiques), il est préférable d'utiliser le DECIMAL. type, et les deux autres types flottants sont meilleurs. Les nombres à points sont également sujets à des problèmes lors des opérations de soustraction et de comparaison, vous devez donc faire attention lorsque vous utilisez des nombres à virgule flottante et essayer d'éviter les comparaisons à virgule flottante.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!