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!