SQL numérico vs. Decimal

SQL numérico vs. Decimal
Embora não haja diferença entre tipos de dados numéricos e decimais em alguns mecanismos SQL, o SQL padrão fornece variações entre os dois tipos.

Este artigo discutirá o que e como usar os tipos numéricos e decimais. Também exploraremos as diferenças entre os dois tipos descritos no SQL padrão.

Numérico no SQL padrão

Ao definir um valor numérico no SQL padrão, você fornece dois argumentos principais: precisão e escala.

A sintaxe é como mostrado abaixo:

Numérico (precisão, escala)

A precisão determina o número máximo de dígitos que um valor pode ter. (incluindo os pontos decimais). Por outro lado, a escala define o número máximo de dígitos após os pontos decimais.

Por exemplo, se o valor for 3.14159, a precisão é 6 com uma escala de 5

No SQL padrão, um numérico pode armazenar valores na faixa de -10^38+1 a 10^38

Portanto, o valor de precisão para um tipo numérico é 38. No entanto, a menos que explicitamente especificado, o SQL padrão de um valor de precisão de 18.

O valor da escala padrão é 0. O parâmetro de escala só pode ser especificado quando o parâmetro de precisão estiver incluído.

Decimal no SQL padrão

Não há muita diferença na definição de tipo decimal e numérico em padrão. A sintaxe para definição decimal é como mostrado abaixo:

Decimal (precisão, escala)

Como um tipo numérico, um decimal pode armazenar valores de -10^38+1 a 10^38.

Diferença entre numérico vs. Decimal

Ok, se os tipos numéricos e decimais compartilham a mesma declaração e alcance, qual é a diferença?

A diferença está em como os dois tipos lidam com o valor de precisão.

Nos tipos numéricos, o valor de precisão é fixo. Isso significa que você não pode exceder o valor de precisão.

Em decimais, por outro lado, você pode exceder o valor de precisão. Isso fornece flexibilidade no número total de valores que você pode armazenar.

Por exemplo, se você definir um decimal como:

Decimal (10, 5)

Isso significa que você pode ter mais de dez valores

Sim, essa é a única diferença.

Numérico e decimal em outros motores SQL

Como afirmamos anteriormente, vários mecanismos de banco de dados fornecem variações do ANSI Standard SQL. A seguir, é como essas mudanças se aplicam aos tipos numéricos e decimais.

Mysql

No MySQL, o tipo numérico é implementado como um decimal. Isso remove a necessidade de se preocupar com a diferença de precisão e escala.

PostGresql

Por outro lado, o PostgreSQL preserva a funcionalidade e a diferença entre numérico e decimal, conforme previsto no SQL padrão.

servidor SQL

No servidor SQL, decimal e numérico são fundamentalmente semelhantes. Além disso, o SQL Server trata um decimal como o sinônimo de numérico. Portanto, você pode usar os dois tipos de forma intercambiável.

Verifique o recurso abaixo para obter mais:

https: // docs.Microsoft.COM/EN-US/SQL/T-SQL/Data-Types/Decimal-and Numéric-Transact-SQL?View = SQL-Server-ver15

BigQuery

Em BigQuery, um numérico é tratado como um pseudônimo para o tipo decimal.

Oráculo

Nos bancos de dados Oracle, decimal e numérico são diferentes. Por exemplo, um decimal no Oracle pode manter até 15 números significativos. Por outro lado, um numérico pode suportar até 38 dígitos significativos.

OBSERVAÇÃO: Numérico no Oracle é renomeado para numeros.

Conclusão

Este artigo descreve a diferença entre um tipo de dados decimal e numérico, conforme definido em SQL padrão e outros mecanismos de banco de dados.

Como sempre, obrigado pela leitura!