SQL NUMERIC VS. Decimale

SQL NUMERIC VS. Decimale
Sebbene non vi sia alcuna differenza tra i tipi di dati numerici e decimali in alcuni motori SQL, SQL standard fornisce variazioni tra i due tipi.

Questo articolo discuterà di cosa e come utilizzare i tipi numerici e decimali. Esploreremo anche le differenze tra i due tipi descritti in SQL standard.

Numerico in SQL standard

Quando si definisce un valore numerico in SQL standard, si forniscono due argomenti principali: precisione e scala.

La sintassi è come mostrato di seguito:

Numerico (precisione, scala)

La precisione determina il numero massimo di cifre che un valore può avere. (compresi i punti decimali). D'altra parte, la scala imposta il numero massimo di cifre dopo i punti decimali.

Ad esempio, se il valore è 3.14159, la precisione è 6 con una scala di 5

In SQL standard, un numerico può archiviare valori nell'intervallo di -10^38+1 a 10^38

Quindi, il valore di precisione per un tipo numerico è 38. Tuttavia, se non esplicitamente specificato, SQL sarà inadempiente a un valore di precisione di 18.

Il valore di scala predefinito è 0. Il parametro di scala può essere specificato solo quando è incluso il parametro di precisione.

Decimale in SQL standard

Non c'è molta differenza nella definizione di tipo decimale e numerico nello standard. La sintassi per la definizione decimale è come mostrato di seguito:

Decimale (precisione, scala)

Come un tipo numerico, un decimale può archiviare valori da -10^38+1 a 10^38.

Differenza tra numerico vs. Decimale

Va bene, se entrambi i tipi numerici e decimali condividono la stessa dichiarazione e gamma, qual è la differenza?

La differenza sta nel modo in cui entrambi i tipi gestiscono il valore di precisione.

In tipi numerici, il valore di precisione è fisso. Ciò significa che non è possibile superare il valore di precisione.

Nei decimali, d'altra parte, puoi superare il valore di precisione. Ciò fornisce flessibilità nel numero totale di valori che è possibile archiviare.

Ad esempio, se si definisce un decimale come:

Decimale (10, 5)

Significa che puoi avere più di dieci valori

Sì, questa è l'unica differenza.

Numerico e decimale in altri motori SQL

Come abbiamo affermato in precedenza, vari motori di database forniscono variazioni da ANSI Standard SQL. Di seguito è riportato come queste modifiche si applicano ai tipi numerici e decimali.

Mysql

In MySQL, il tipo numerico è implementato come decimale. Questo rimuove la necessità di preoccuparsi della differenza di precisione e scala.

Postgresql

D'altra parte, PostgreSQL preserva la funzionalità e la differenza tra numerico e decimale fornito in SQL standard.

server SQL

In SQL Server, sia decimale che numerico sono fondamentalmente simili. Inoltre, SQL Server tratta un decimale come sinonimo di numerico. Quindi, puoi usare entrambi i tipi in modo intercambiabile.

Controlla la risorsa qui sotto per ulteriori informazioni:

https: // docs.Microsoft.com/en-us/sql/t-sql/dati-tipi/decimali e numerico-transact-sql?Visualizza = SQL-Server-Ver15

BigQuery

In BigQuery, un numerico viene trattato come un alias a un tipo decimale.

Oracolo

Nei database Oracle, decimale e numerico sono diversi. Ad esempio, un decimale in Oracle può contenere fino a 15 numeri significativi. D'altra parte, un numerico può contenere fino a 38 cifre significative.

NOTA: Numerico in Oracle viene rinominato in numero.

Conclusione

Questo articolo delinea la differenza tra un tipo di dati decimale e numerico come definito in SQL standard e altri motori di database.

Come sempre, grazie per la lettura!