TYPY DANYCH

Kursy Online SQL Server Bazy Danych Microsotf Typy Danych Andrzej Śmigielski

TYPY DANYCH W MsSQL SERVER

 
          Temat ten jest bardzo istotny z perspektywy projektowania struktur bazodanowych i koniecznie trzeba go dokładnie poznać, aby nauczyć się prawidłowego wykorzystywania wiedzy na tym poziomie.

To, jakie typy danych będziemy wykorzystywać i w jaki sposób ma wpływ na wiele aspektów:
używane miejsce
potencjalne błędy, problemy i anomalia
szybkość wykonywania operacji na tych danych.

Jest to oczywiście jeden z wielu tematów, na który trzeba zwrócić szczególną uwagę, o czym dowiesz się w kolejnych wpisach.

O niektórych typach danych chcę w tym miejscu tylko poinformować, że takowe typy danych istnieją, jednak zakres wiedzy zdecydowanie wykracza poza ten wpis. W pełnych wersjach kursów są one oczywiście szczegółowo opracowane:
CURSOR
HIERARCHYID
SQL_VARIANT
TABLE
XML

Poniższa tabela przedstawia wszystkie typy danych obsługiwane i przestarzałe, jakie są/były dostępne w Microsoft SQL Server:

Numeryczne dokładne:

BIGINT 8-bajtowy typ numeryczny w zakresie od: -263 (-9,223,372,036,854,775,808) do 263-1 (9,223,372,036,854,775,807).
BIT Wartości: 0, 1 lub NULL.
DECIMAL
NUMERIC
Wielkość typu zależy od określonej przez użytkownika precyzji:
1-9: 5 bajtów, 10-19: 9 bajtów, 20-28: 13 bajtów, 29-38: 17 bajtów.
INT 4-bajtowy typ numeryczny w zakresie od: -231 (-2,147,483,648) do 231-1 (2,147,483,647).
MONEY 8-bajtowy typ do zapisu walut w zakresie od: -922,337,203,685,477.5808 do 922,337,203,685,477.5807.
SMALLINT 2-bajtowy typ numeryczny w zakresie od: -215 (-32,768) do 215-1 (32,767).
SMALLMONEY 4-bajtowy typ do zapisu walut w zakresie od: – 214,748.3648 do 214,748.3647.
TINYINT 1-bajtowy typ numeryczny w zakresie od: 0 do 255.

Numeryczne przybliżone:

FLOAT Typ zmiennoprzecinkowy w zakresie od: – 1.79E+308 do -2.23E-308, 0 i od 2.23E-308 do 1.79E+308 Ilość bajtów zależy od określonej przez użytkownika precyzji: 1-24: 4 bajty (7 cyfr), 25-53: 8 bajtów (15 cyfr).
REAL 4-bajtowy typ zmiennoprzecinkowy w zakresie od: – 3.40E + 38 do -1.18E – 38, 0 i od 1.18E – 38 do 3.40E + 38. Typ REAL jest 24-cyfrowym typem FLOAT.

Data i godzina:

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) .
DATETIME 8-bajtowy typ do zapisu daty z zakresu 1 stycznia 1753 do 31 grudnia 9999 z dokładnością do 0.00333 sekund.
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.
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.
SMALLDATETIME 4-bajtowy typ do zapisu daty z zakresu 1900-01-01 do 2076-06-06 z dokładnością do 1 minuty.
TIME 3 – 5-bajtowy typ do zapisu czasu z dokładnością do 100 ns. Ilość bajtów zależy od określonej przez użytkownika skali precyzji.

Znakowe:

CHAR Stało-znakowy typ o wielkości 1 – 8000 bajtów.
TEXT Zmienno-znakowy typ o długości max. 230 – 1 bajtów.
VARCHAR Zmienno-znakowy typ o długości 1 – 8000 bajtów.

Znakowe Unicode:

NCHAR Stało-znakowy typ Unicode o wielkości 1 – 4000 bajtów.
NTEXT Zmienno-znakowy typ Unicode o wielkości max. 230 – 1 bajtów.
NVARCHAR Zmienno-znakowy typ Unicode o wielkości 1 – 4000 bajtów.

Binarne:

BINARY Przechowywany najczęściej jako stały strumień bajtów, typ o wielkości 1 – 8000 bajtów.
IMAGE Zmienno-bajtowy typ o długości 0 – 231 – 1, przeznaczony do składowania plików w bazie danych.
VARBINARY Przechowywany najczęściej jako zmienny strumień bajtów, typ o wielkości 1 – 8000 bajtów.

Przestrzenne:

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.

Inne:

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.
TIMESTAMP Typ danych automatycznie generujący liczby binarne, unikalne w całej bazie danych.
UNIQUEIDENTIFIER Typ umożliwiający automatyczne generowanie unikalnych liczb binarnych w bazie danych.

* Źródło: strony Microsoft.
 

Dane typu DATA można formatować za pomocą CONVERT, natomiast niektóre pozostałe typy danych można rzutować na inne za pomocą CAST.

Programowanie SQL Bazy Danych Typy Danych

* Źródło: strony Microsoft.
 
 

PLIKI DO ŚCIĄGNIĘCIA:

1. 003_Typy_Danych.sql
 

KURSY SQL ONLINE