SQL Numeric vs. Dziesiętny

SQL Numeric vs. Dziesiętny
Chociaż w niektórych silnikach SQL nie ma różnicy między typami danych liczbowych i dziesiętnych.

W tym artykule omówiono, co i jak korzystać z typów numerycznych i dziesiętnych. Zbadamy również różnice między dwoma typami opisanymi w standardowym SQL.

Numeryczne w standardowym SQL

Podczas definiowania wartości liczbowej w standardowym SQL podajesz dwa główne argumenty: precyzja i skala.

Składnia jest jak pokazana poniżej:

Numeryczne (precyzja, skala)

Precyzja określa maksymalną liczbę cyfr, jaką może mieć wartość. (w tym punkty dziesiętne). Z drugiej strony skala ustawia maksymalną liczbę cyfr po punktach dziesiętnych.

Na przykład, jeśli wartość to 3.14159, precyzja wynosi 6 ze skalą 5

W standardowym SQL liczba może przechowywać wartości w zakresie -10^38+1 do 10^38

Stąd wartość precyzyjna dla typu liczbowego wynosi 38. Jednak, o ile nie określono wyraźnie, SQL nie będzie domyślnie wartości precyzyjnej 18.

Domyślna wartość skali to 0. Parametr skali można określić tylko wtedy, gdy uwzględniono parametr precyzyjny.

Dziesiętne w standardowym SQL

Nie ma dużej różnicy w definicji typu dziesiętnego i liczbowego w standardzie. Składnia definicji dziesiętnej jest jak pokazano poniżej:

Dziesiętne (precyzja, skala)

Podobnie jak typ numeryczny, dziesiętne może przechowywać wartości od -10^38+1 do 10^38.

Różnica między numeryczną vs. Dziesiętny

Okej, jeśli zarówno typy liczbowe, jak i dziesiętne dzielą tę samą deklarację i zakres, jaka jest różnica?

Różnica polega na tym, jak oba typy obsługują wartość precyzyjną.

W typach liczbowych wartość precyzyjna jest ustalona. Oznacza to, że nie można przekroczyć wartości precyzyjnej.

Z drugiej strony w dziesięciu możesz przekroczyć wartość precyzyjną. Zapewnia to elastyczność w całkowitej liczbie wartości, które możesz przechowywać.

Na przykład, jeśli zdefiniujesz dziesiętne jako:

Dziesiętne (10, 5)

Oznacza to, że możesz mieć więcej niż dziesięć wartości

Tak, to jedyna różnica.

Numeryczne i dziesiętne w innych silnikach SQL

Jak powiedzieliśmy wcześniej, różne silniki bazy danych zapewniają różnice ze standardowego SQL ANSI. Poniżej znajduje się, w jaki sposób zmiany te dotyczą typów numerycznych i dziesiętnych.

Mysql

W MySQL typ numeryczny jest zaimplementowany jako dziesiętny. To usuwa potrzebę martwienia się o precyzję i różnicę skali.

PostgreSQL

Z drugiej strony, PostgreSQL zachowuje funkcjonalność i różnicę między numeryczną i dziesiętną, jak podano w standardowym SQL.

SQL Server

W SQL Server zarówno dziesiętny, jak i numeryczny są zasadniczo podobne. Ponadto SQL Server traktuje dziesiętne jako synonim numeryczny. Dlatego możesz użyć obu typów zamiennych.

Więcej informacji na poniższy zasób sprawdź:

https: // dokumenty.Microsoft.com/en-us/sql/t-sql/data-typ/dziesiętny i numeryczny?Widok = SQL-SERVER-VER15

BigQuery

W BigQuery liczba jest traktowana jako pseudonim do typu dziesiętnego.

Wyrocznia

W bazach danych Oracle, dziesiętne i numeryczne są różne. Na przykład dziesiętne w Oracle może pomieścić do 15 znaczących liczb. Z drugiej strony liczba może pomieścić do 38 znaczących cyfr.

NOTATKA: Numer w Oracle jest przemianowany na numer.

Wniosek

W tym artykule przedstawiono różnicę między typem danych dziesiętnych i liczbowych zgodnie z definicją w standardowych silnikach SQL i innych bazach danych.

jak zwykle dziękujemy za przeczytanie!