Szukaj…


Wprowadzenie

W tej sekcji omówiono typy danych, których może używać SQL Server, w tym ich zakres danych, długość i ograniczenia (jeśli występują).

Dokładna numeracja

Istnieją dwie podstawowe klasy dokładnych typów danych liczbowych - liczba całkowita oraz stała precyzja i skala .

Typy danych całkowitych

  • kawałek
  • tinyint
  • smallint
  • int
  • bigint

Liczby całkowite to wartości liczbowe, które nigdy nie zawierają części ułamkowej i zawsze używają stałej ilości pamięci. Zakres i rozmiary pamięci całkowitych typów danych pokazano w poniższej tabeli:

Typ danych Zasięg Przechowywanie
kawałek 0 lub 1 1 bit **
tinyint Od 0 do 255 1 bajt
smallint -2 ^ 15 (-32768) do 2 ^ 15-1 (32767) 2 bajty
int -2 ^ 31 (-2 147 483 648) do 2 ^ 31-1 (2 147 483 647) 4 bajty
bigint -2 ^ 63 (-9 223 372,036,854,775,808) do 2 ^ 63-1 (9,223,372,036,854,775,807) 8 bajtów

Naprawiono typy danych precyzji i skali

  • numeryczny
  • dziesiętny
  • smallmoney
  • pieniądze

Te typy danych są przydatne do dokładnego przedstawiania liczb. Dopóki wartości mieszczą się w zakresie wartości przechowywanych w typie danych, wartość nie będzie mieć problemów z zaokrąglaniem. Jest to przydatne w przypadku wszelkich obliczeń finansowych, w których błędy zaokrąglania spowodują obłęd kliniczny dla księgowych.

Pamiętaj, że dziesiętny i numeryczny są synonimami tego samego typu danych.

Typ danych Zasięg Przechowywanie
Dziesiętny [(p [, s])] lub Numeryczny [(p [, s])] -10 ^ 38 + 1 do 10 ^ 38-1 Zobacz tabelę dokładności

Podczas definiowania dziesiętnego lub liczbowego typu danych może być konieczne określenie Precyzji [p] i Skali [s].

Precyzja to liczba cyfr, które można zapisać. Na przykład, jeśli chcesz przechowywać wartości między 1 a 999, potrzebujesz Precyzji 3 (aby utrzymać trzy cyfry na 100). Jeśli nie określisz precyzji, domyślna precyzja to 18.

Skala to liczba cyfr po przecinku. Jeśli chcesz zapisać liczbę z przedziału od 0,00 do 999,99, musisz podać dokładność 5 (pięć cyfr) i skalę 2 (dwie cyfry po przecinku). Musisz określić dokładność, aby określić skalę. Domyślna skala wynosi zero.

Precyzja dziesiętnego lub liczbowego typu danych określa liczbę bajtów wymaganą do przechowywania wartości, jak pokazano poniżej:

Tabela dokładności

Precyzja Bajty pamięci
1 - 9 5
10–19 9
20–28 13
29–38 17

Pieniężne stałe typy danych

Te typy danych są przeznaczone specjalnie dla danych księgowych i innych danych pieniężnych. Te typy mają stałą Skalę 4 - zawsze zobaczysz cztery cyfry po przecinku. W przypadku większości systemów pracujących z większością walut wystarczające będzie użycie wartości liczbowej ze skalą 2. Należy pamiętać, że wraz z wartością nie są przechowywane informacje o rodzaju reprezentowanej waluty.

Typ danych Zasięg Przechowywanie
pieniądze -922,337,203,685,477,5808 do 922,337,203,685,477,5807 8 bajtów
smallmoney -214,748.3648 do 214 448,3647 4 bajty

Przybliżona liczba

  • float [( n )]
  • real

Te typy danych są używane do przechowywania liczb zmiennoprzecinkowych. Ponieważ typy te są przeznaczone wyłącznie do przechowywania przybliżonych wartości liczbowych, nie należy ich stosować w przypadkach, w których błąd zaokrąglania jest niedopuszczalny. Jeśli jednak trzeba obsługiwać bardzo duże liczby lub liczby o nieokreślonej liczbie cyfr po przecinku, mogą to być najlepsze opcje.

Typ danych Zasięg Rozmiar
pływak -1,79E + 308 do -2,23E-308, 0 i 2,23E-308 do 1,79E + 308 zależy od n w tabeli poniżej
real -3,40E + 38 do -1,18E - 38, 0 i 1,18E - 38 do 3,40E + 38 4 bajty

n tabela wartości dla liczb zmiennoprzecinkowych . Jeśli nie zostanie podana żadna wartość w deklaracji liczby zmiennoprzecinkowej, zostanie użyta wartość domyślna 53. Zauważ, że liczba zmiennoprzecinkowa (24) jest odpowiednikiem wartości rzeczywistej .

wartość n Precyzja Rozmiar
1-24 7 cyfr 4 bajty
25–53 15 cyfr 8 bajtów

Data i godzina

Te typy są we wszystkich wersjach SQL Server

  • datetime
  • smalldatetime

Te typy są we wszystkich wersjach SQL Server po SQL Server 2012

  • data
  • datetimeoffset
  • datetime2
  • czas

Ciągi znaków

  • zwęglać
  • Varchar
  • tekst

Ciągi znaków Unicode

  • nchar
  • nvarchar
  • tekst

Ciągi binarne

  • dwójkowy
  • varbinary
  • wizerunek

Inne typy danych

  • kursor
  • znak czasu
  • hierarchyid
  • unikalny identyfikator
  • zmienna_sql
  • xml
  • stół
  • Typy przestrzenne


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow