Blog JSystems - uwalniamy wiedzę!

Szukaj

Typy danych, w skrócie

Najczęściej używane typy kolumn:

INT, BIGINT              -- liczby calkowite
DECIMAL(p,s)             -- liczby z przecinkiem
VARCHAR(n), NVARCHAR(n)  -- tekst
DATE, DATETIME           -- data / data i czas
BIT                      -- wartosc 0 lub 1

W każdej kolumnie w tabeli, jak i zmiennej i parametrowi musi zostać przypisany okreslony typ danych. To właśnie on decyduduje jakie dane możemy umieścić w danym obiekcie, także wybór ten nie może być przypadkowy.

W SQL Server występuje wiele typów danych, które możemy podzielić na cztery główne kategorie:

- liczbowe

- znakowe / ciągowe (łańcuchy tekstowe)

- daty i godziny

- inne

Liczbowe

bigint -  8-bajtowy typ numeryczny z zakresem: -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807).

numeric - Wielkość typu zależy od precyzji. 1-9 – 5 bajtów, 10-19 – 9 bajtów, 20-28 – 13 bajtów, 29-38 – 17 bajtów.

bit - Wartości 0,1 lub NULL

smallint - 2-bajtowy typ numeryczny z zakresem: -2^15 (-32,768) do 2^15-1 (32,767).

decimal - Wielkość typu zależy od precyzji. 1-9 – 5 bajtów, 10-19 – 9 bajtów, 20-28 – 13 bajtów, 29-38 – 17 bajtów.

smallmoney - 4-bajtowy typ do zapisu walut z zakresem: - 214,748.3648 do 214,748.3647.

int - 4-bajtowy typ numeryczny z zakresem: -2^31 (-2,147,483,648) do 2^31-1 (2,147,483,647).

tinyint - 1-bajtowy typ numeryczny z zakresem: 0 – 255.

money - 8-bajtowy typ do zapisu walut z zakresem: -922,337,203,685,477.5808 do 922,337,203,685,477.5807.

float - Typ zmiennoprzecinkowy z zakresem: - 1.79E+308 to -2.23E-308, 0 and 2.23E-308 to 1.79E+308. Ilość bajtów zależy od precyzji. 1-24 – 4 bajty (7 cyfr), 25-53 – 8 bajtów (15 cyfr).

real - 4-bajtowy typ zmiennoprzecinkowy z zakresem: - 3.40E + 38 to -1.18E - 38, 0 and 1.18E - 38 to 3.40E + 38. Typ real jest 24-cyfrowym typem float.

Znakowe

char - Stało-znakowy typ o wielkości 1 – 8000 bajtów.

text - Zmienno-znakowy typ o długości max. 2^30 – 1 bajtów.

varchar - Zmienno-znakowy typ o długości 1 – 8000 bajtów.

nchar - Stało-znakowy typ Unicode o wielkości 1 – 4000 bajtów.

nvarchar- Zmienno-znakowy typ Unicode o wielkości 1 – 4000 bajtów.

ntext - Zmienno-znakowy typ Unicode o wielkości max. 2^30 – 1 bajtów

Data i czas

date - 10-znakowy typ zapisu daty z precyzją: 10.0. Domyślnym formatem jest: YYYY-MM-DD, natomiast domyślna wartość to 1900-01-01 (używana jako niejawna konwersja time do typu datetime2 albo datetimeoffset).

datetimeoffset - 8-bajtowy typ do zapisu daty z zakresu: 1 stycznia 1 roku n.e. do 31 grudnia roku 9999, liczone wg kalendarza gregoriańskiego oraz czas 24-godzinny z dokładnością do 100 ns. Uwzględnia przesunięcie strefy czasowej.

datetime2 - 8-bajtowy typ do zapisu daty z zakresu: 1 stycznia 1 roku n.e. do 31 grudnia 9999 oraz czas 24-godzinny z dokładnością do 100 ns.

smalldatetime - 4-bajtowy typ do zapisu daty z zakresu 1900-01-01 do 2076-06-06 z dokładnością do 1 minuty.

datetime - 8-bajtowy typ do zapisu daty z zakresu 1 stycznia 1753 do 31 grudnia 9999 z dokładnością do 0.00333 sekund.

time - 3 – 5-bajtowy typ do zapisu czasu z dokładnością do 100 ns. Ilość bajtów zależy od skali precyzji.

Inne

binary - Przechowywany najczęściej jako stały strumień bajtów typ o wielkości 1 – 8000 bajtów.

varbinary - Przechowywany najczęściej jako zmienny strumień bajtów typ o wielkości 1 – 8000 bajtów.

image - Zmienno-bajtowy typ o długości 0 – 2^31 – 1, przeznaczony do składowania obrazów w bazie danych.

cursor - Typ danych dla zmiennych parametrów wyjściowych procedury, które zawierają doniesienie do kursora

hierarchyid - Typ o zmiennej długości danych, służący do reprezentowania pozycji danej informacji w hierarchii.

sql_variant - Typ danych, przechowujący różne wartości typów obsługiwanych przez SQL Server. Jest odpowiednikiem typu var w języku C#.

table - Typ tabelaryczny

uniqueidentifier - Typ umożliwiający automatyczne generowanie unikalnych liczb binarnych w bazie danych

xml - Typ XML-owy

geography - Typ do przechowywania danych geograficznych, zaimplementowany w .NET CLR. Wykorzystywany jest głównie do zapisu pozycji GPS. Uwzględnia krzywiznę Ziemi.

geometry - Typ do przechowywania typów geometrycznych (w szczególności figur), zaimplementowany w .NET CLR.

 

Baner szkolenia Kompleksowe SQL w Microsoft SQL Server w JSystems, terminy gwarantowane

Szkolenie Kompleksowe SQL w Microsoft SQL Server →

To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.

★★★★★Średnia ocena naszych szkoleń w Google: 5/5

Najczęściej zadawane pytania

Na jakie główne kategorie dzielą się typy danych w SQL Server?
W SQL Server typy danych dzielą się na cztery główne kategorie: liczbowe, znakowe (łańcuchy tekstowe), daty i godziny oraz typy inne. Każdej kolumnie, zmiennej i parametrowi trzeba przypisać typ, bo to on decyduje, jakie dane można w danym obiekcie umieścić.
Czym różni się VARCHAR od NVARCHAR?
Oba to zmienno-znakowe typy tekstowe, ale NVARCHAR przechowuje tekst w Unicode. VARCHAR ma wielkość od 1 do 8000 bajtów, a NVARCHAR od 1 do 4000 znaków Unicode. Warianty ze stałą długością to odpowiednio CHAR i NCHAR, a bardzo długi tekst obsługują TEXT i NTEXT.
Jakiego typu użyć do liczb z częścią ułamkową?
Do liczb z przecinkiem służą DECIMAL i NUMERIC, których wielkość zależy od precyzji. Dostępne są też typy zmiennoprzecinkowe FLOAT i REAL, gdzie liczba bajtów również zależy od precyzji. Do kwot walutowych przewidziano osobne typy MONEY i SMALLMONEY.
Które typy służą do zapisu daty i czasu?
Podstawowe to DATE (sama data), DATETIME oraz DATETIME2 (data i czas), a także SMALLDATETIME o mniejszym zakresie i dokładności do minuty oraz TIME dla samego czasu. Typ DATETIMEOFFSET dodatkowo uwzględnia przesunięcie strefy czasowej.
Do czego służą typy inne, na przykład BIT, XML czy geography?
Kategoria inne obejmuje między innymi BIT (wartość 0, 1 lub NULL), binarne BINARY i VARBINARY, XML do danych w tym formacie, uniqueidentifier do unikalnych identyfikatorów oraz typy przestrzenne geography i geometry, gdzie geography uwzględnia krzywiznę Ziemi i nadaje się do zapisu pozycji GPS.

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...