Table des matières
MySQL 5 introduit un module de mathématiques de précision, c'est à dire des opérations arithmétiques avec une précision accrue et un contrôle supérieur sur les erreurs, par rapport aux versions précédentes. Les nouvelles mathématiques sont basés sur deux changements dans l'implémentation :
L'introduction de nouveau modes SQL en MySQL 5.0.2 qui contrôlent la sévérité du serveur lors de l'analyse des données.
L'introduction en MySQL 5.0.3 de la bibliothèque d'arithmétique.
Ces changements ont plusieurs implications au niveau des opérations numériques :
Plus grande précision dans les calculs.
Pour les nombres exacts, les calculs n'introduisent plus d'erreur de décimale. La précision totale est alors utilisée. Par exemple, un nombre tel que 0,0001 est traité comme une valeur exacte, et non plus comme une valeur approchée. Si vous l'additionnez à lui-même 10 000 fois (dix mille), vous obtiendrez la valeur de 1, et non pas une valeur proche de 1.
Arrondissement des valeurs maîtrisé.
Pour les nombres exacts, le résultat de
ROUND()
dépend de l'argument, et non plus
d'éléments comme la bibliothèque C sous-jacente.
Amélioration de la portabilité.
Les opérations sur les nombres exacts sont exactement les mêmes, quelque soit la plate-forme utilisée, Windows ou Unix.
Contrôle sur la gestion des valeurs invalides.
Les dépassements de capacité et les divisions par zéro sont
détectables, et peuvent être traitées comme des erreurs. Par
exemple, vous pouvez traiter une erreur trop grande pour une
colonne comme une erreur au lieu de la tronquer à la valeur
valide la plus proche. De même, vous pouvez traiter la division
par zéro comme une erreur plutôt que de produire une valeur de
type NULL
. Le choix de l'approche revient
alors à configurer la variable système
sql_mode
.
Une conséquence importante de ces changements est que MySQL est maintenant bien plus compatible avec les standards SQL.
Le chapitre suivant couvre différents aspects des mécanismes mathématiques, y compris les incompatibilités avec les anciennes applications. À la fin, des exemples illustrent le fonctionnement de MySQL 5.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.