SQL NUMERISK VS. Desimal

SQL NUMERISK VS. Desimal
Selv om det ikke er noen forskjell mellom numeriske og desimale datatyper i noen SQL -motorer, gir standard SQL variasjoner mellom de to typene.

Denne artikkelen vil diskutere hva og hvordan du bruker numeriske og desimaltyper. Vi vil også utforske forskjellene mellom de to typene beskrevet i standard SQL.

Numerisk i standard SQL

Når du definerer en numerisk verdi i standard SQL, gir du to hovedargumenter: presisjon og skala.

Syntaksen er som vist nedenfor:

Numerisk (presisjon, skala)

Presisjonen bestemmer det maksimale antall sifre en verdi kan ha. (inkludert desimalpoengene). På den annen side setter skalaen det maksimale antall sifre etter desimalpunktene.

For eksempel, hvis verdien er 3.14159, er presisjonen 6 med en skala på 5

I standard SQL kan en numerisk lagre verdier i området -10^38+1 til 10^38

Derfor er presisjonsverdien for en numerisk type 38. Imidlertid, med mindre eksplisitt er spesifisert, vil SQL standard være en presisjonsverdi på 18.

Standard skalaverdi er 0. Skalaparameteren kan bare spesifiseres når presisjonsparameteren er inkludert.

Desimal i standard SQL

Det er ikke mye forskjell i definisjonen av desimal og numerisk type i standard. Syntaks for desimaldefinisjon er som vist nedenfor:

Desimal (presisjon, skala)

Som en numerisk type, kan en desimal lagre verdier fra -10^38+1 til 10^38.

Forskjell mellom numerisk vs. Desimal

Ok, hvis både numeriske og desimaltyper deler den samme erklæringen og rekkevidden, hva er forskjellen?

Forskjellen ligger i hvordan begge typer håndterer presisjonsverdien.

I numeriske typer er presisjonsverdien fikset. Dette betyr at du ikke kan overskride presisjonsverdien.

I desimaler kan du derimot overskride presisjonsverdien. Dette gir fleksibilitet i det totale antall verdier du kan lagre.

For eksempel, hvis du definerer en desimal som:

Desimal (10, 5)

Det betyr at du kan ha mer enn ti verdier

Ja, det er den eneste forskjellen.

Numerisk og desimal i andre SQL -motorer

Som vi sa tidligere, gir forskjellige databasemotorer variasjoner fra ANSI Standard SQL. Følgende er hvordan disse endringene gjelder numeriske og desimaltyper.

Mysql

I MySQL implementeres den numeriske typen som en desimal. Dette fjerner behovet for å bekymre deg for presisjons- og skalaforskjellen.

PostgreSql

På den annen side bevarer PostgreSQL funksjonaliteten og forskjellen mellom numerisk og desimal som angitt i standard SQL.

SQL Server

I SQL Server er både desimal og numerisk grunnleggende like. Videre behandler SQL Server en desimal som synonym for numerisk. Derfor kan du bruke begge typene om hverandre.

Sjekk ressursen nedenfor for mer:

https: // dokumenter.Microsoft.COM/EN-US/SQL/T-SQL/DATA-TYPER/DECIMAL-OG-NUMERIC-TRANSACT-SQL?Vis = SQL-SERVER-VER15

BigQuery

I BigQuery blir et numerisk behandlet som et alias for desimal -type.

Oracle

I Oracle -databaser er desimal og numerisk forskjellige. For eksempel kan en desimal i Oracle inneholde opptil 15 betydelige antall. På den annen side kan et numerisk inneholde opptil 38 betydelige sifre.

MERK: Numerisk i Oracle blir omdøpt til nummer.

Konklusjon

Denne artikkelen skisserer forskjellen mellom en desimal og numerisk datatype som definert i standard SQL og andre databasemotorer.

Som alltid, takk for at du leser!