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!