Le parametre numérique pour les champs de type numeric sert à quoi ?

Le parametre numérique pour les champs de type numeric sert à quoi ? - SQL/NoSQL - Programmation

Marsh Posté le 14-11-2005 à 11:05:02    

Bonjours.
Voila pas mal d'années que je travail avec des sgbd telle que mysql et sqlServer mais avec le temps je remarque bêtement que j'attribus des valeurs numériques sur des champs de type numérique. exemple TYNINY(1).
Mais voila que je me pose la question, mais sur quoi le parametre numérique joue? :??: je sais pour les champs de type CHAR mais les numériques je vois pas trop.  
J'ai fais quelques recherches sur la doc mysql mais je trouve que la réponse manque de corps :/.
 

Citation :

En extension de la norme ANSI/ISO SQL92, MySQL supporte aussi les types entiers TINYINT  , MEDIUMINT  , et BIGINT  , comme présenté ci-dessus. Un autre extension supportée par MySQL permet de spécifier optionnellement la taille d'affichage, sous la forme d'une valeur entière entre parenthèses, juste après le mot clé spécifiant le type (par exemple, INT(4)). Cette spécification de taille est utilisée pour remplir à gauche, avec le caractère de remplissage par défaut, les nombres dont la taille est inférieure à celle spécifiée mais uniquement à l'affichage : cela ne réduit pas l'intervalle de validité des valeurs qui peuvent être stockées dans la colonne.
 
Lorsqu'elle est utilisée avec l'attribut de colonne optionnel ZEROFILL , le caractère de remplissage par défaut est remplacé par le caractère zéro. Par exemple, pour une colonne dont le type est INT(5) ZEROFILL , la valeur 4 sera lue 00004 .


 
Quel est la différence réelle entre mediumint(1) et mediumint(5) vu que l'intervalle pour ce type de champs est  entre -8388608 et 8388607. Est ce que je cherche une verité qui n'existe pas? :??:
merci

Reply

Marsh Posté le 14-11-2005 à 11:05:02   

Reply

Marsh Posté le 14-11-2005 à 11:07:09    

mediumint(1) ne pourra excéder 1 digit donc de -9 à 9 et mediumint(5) contient 5 digits... c'est tout :)

Reply

Marsh Posté le 14-11-2005 à 11:09:02    

orafrance a écrit :

mediumint(1) ne pourra excéder 1 digit donc de -9 à 9 et mediumint(5) contient 5 digits... c'est tout :)


Merci pour ton intervention.
donc sa a le même comportement que pour les champs de type char :??:
En faite c'est pas la peine que j'aille chercher plus loin !


Message édité par Berceker United le 14-11-2005 à 11:09:35
Reply

Marsh Posté le 14-11-2005 à 11:13:03    

Citation :


cela ne réduit pas l'intervalle de validité des valeurs qui peuvent être stockées dans la colonne.  


Il faut savoir lire parfois ...
la différence entre un mediumint(3) et un mediumint(7) c'est uniquement à l'affichage, pour une valeur stockée de 42 , le premier affichera " 42" et le second affichera "     42" , et si y'a l'attribut zerofille le premier affichera "042" et l'autre "0000042" et si le nombre était 2345 et pas 42 , le premier afficherait "2345" et le second "0002345".


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 14-11-2005 à 11:14:17    

La même question a été posée récemment. Voir http://forum.hardware.fr/hardwaref [...] 9461-1.htm
Le nombre entre parenthèse remplit trois fonctions :
 
1. Il permet de déterminer la taille physique du champ dans le cas : Number(2) pour être défini sur un ou deux octets, alors que Number(8) sera défini sur au moins quatre octets.
 
2. Il permet de faire un contrôle sur les valeurs trop grandes ou trop petites : Insert 12345 dans un champ Number(2) pourra générer un message d'erreur.
 
3. Il permet d'indiquer le nombre de chiffres à afficher par défaut.

Reply

Marsh Posté le 14-11-2005 à 11:15:26    

Reply

Marsh Posté le 14-11-2005 à 11:32:02    

Ok merci à vous.  
J'ai fais un test et effectivement cela n'affecte pas les intervalles du champ.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed