Cet article discutera de quoi et comment utiliser les types numériques et décimaux. Nous explorerons également les différences entre les deux types décrits dans SQL standard.
Numérique dans SQL standard
Lors de la définition d'une valeur numérique en SQL standard, vous fournissez deux arguments principaux: précision et échelle.
La syntaxe est comme indiqué ci-dessous:
Numérique (précision, échelle)La précision détermine le nombre maximum de chiffres qu'une valeur peut avoir. (y compris les décimaux). D'un autre côté, l'échelle définit le nombre maximum de chiffres après les points décimaux.
Par exemple, si la valeur est 3.14159, la précision est de 6 avec une échelle de 5
Dans SQL standard, un numéro numérique peut stocker des valeurs dans la plage de -10 ^ 38 + 1 à 10 ^ 38
Par conséquent, la valeur de précision pour un type numérique est de 38. Cependant, sauf si explicitement spécifié, SQL sera par défaut à une valeur de précision de 18.
La valeur d'échelle par défaut est 0. Le paramètre d'échelle ne peut être spécifié que lorsque le paramètre de précision est inclus.
Décimal dans SQL standard
Il n'y a pas beaucoup de différence dans la définition du type décimal et numérique en standard. La syntaxe pour la définition décimale est comme indiqué ci-dessous:
Décimal (précision, échelle)Comme un type numérique, une décimale peut stocker des valeurs de -10 ^ 38 + 1 à 10 ^ 38.
Différence entre numérique vs. Décimal
D'accord, si les types numériques et décimaux partagent la même déclaration et gamme, quelle est la différence?
La différence réside dans la façon dont les deux types gèrent la valeur de précision.
Dans les types numériques, la valeur de précision est fixe. Cela signifie que vous ne pouvez pas dépasser la valeur de précision.
En décimales, en revanche, vous pouvez dépasser la valeur de précision. Cela offre une flexibilité dans le nombre total de valeurs que vous pouvez stocker.
Par exemple, si vous définissez une décimale comme:
Décimal (10, 5)Cela signifie que vous pouvez avoir plus de dix valeurs
Oui, c'est la seule différence.
Numérique et décimal dans d'autres moteurs SQL
Comme nous l'avons dit précédemment, divers moteurs de base de données fournissent des variations de la SQL standard ANSI. Voici comment ces modifications s'appliquent aux types numériques et décimaux.
Mysql
Dans MySQL, le type numérique est implémenté comme une décimale. Cela supprime la nécessité de s'inquiéter de la précision et de la différence d'échelle.
Postgresql
D'un autre côté, PostgreSQL préserve la fonctionnalité et la différence entre numérique et décimal comme prévu dans SQL standard.
serveur SQL
Dans SQL Server, la décimale et le numérique sont fondamentalement similaires. De plus, SQL Server traite une décimale comme le synonyme de numérique. Par conséquent, vous pouvez utiliser les deux types interchangeables.
Vérifiez la ressource ci-dessous pour en savoir plus:
https: // docs.Microsoft.com / en-us / sql / t-sql / data-types / décimal et numeric-transact-sql?View = SQL-Server-Ver15
Grossery
Dans BigQuery, un numérique est traité comme un alias à un type décimal.
Oracle
Dans les bases de données Oracle, la décimale et le numérique sont différentes. Par exemple, une décimale d'Oracle peut contenir jusqu'à 15 nombres significatifs. D'un autre côté, un numérique peut contenir jusqu'à 38 chiffres importants.
NOTE: Numeric in Oracle est renommé numéro.
Conclusion
Cet article décrit la différence entre un type de données décimales et numérique tel que défini dans SQL standard et d'autres moteurs de base de données.
Comme toujours, merci d'avoir lu!