Typy
numeryczne
} Liczby całkowite:
◦
tinyint (1B), smallint
(2B), int (4B), bigint (8B)
} Liczby niecałkowite:
◦
numeric
aka decimal (maksymalnie 38 cyfr)
Deklarujemy precyzję
i skalę – np. numeric(15,4)
◦
float,
real – nie są dokładne
} Pieniądze:
◦
money,
smallmoney
Obsługa symboli walut
Typy
tekstowe
} Stałej długości:
◦
char,
nchar – uzupełniane spacjami
} Zmiennej długości:
◦
varchar
(do 8000 znaków), nvarchar (do 4000 znaków)
} Duże typy tekstowe:
◦
varchar(max), nvarchar(max)
– do 2GB danych
} Unicode (UTF-16):
◦ nchar, nvarchar, nvarchar(max)
◦
Prefiks
N do oznaczania literałów w Unicode
Typy
daty i czasu
} Data i czas:
◦ datetime (8B), smalldatetime (4B) – stare typy
◦ datetime2 (6-8B) – deklarowana dokładność (maksymalnie 7 cyfr w części ułamkowej sekundy)
◦
datetimeoffset
(8-10B) – deklarowana dokładność, informacja o strefie czasowej
} Tylko data:
◦
date
(3B)
} Tylko czas:
◦
time
(3-5B) – deklarowana dokładność
Typy
binarne
} Stałej długości:
◦
binary
(maksymalnie 8000B) – uzupełniany zerami
} Zmiennej długości:
◦
varbinary
(maksymalnie 8000B)
} Duży typ binarny:
◦
varbinary(max)
– do 2GB danych
Typy
specjalne
} xml – przechowuje
dane w formacie XML
◦ Implementuje kontrolę poprawności formatu
◦
Umożliwia
walidację dokumentami XML Schema
} geometry – geometria
na płaszczyźnie
} geography – geografia
w różnych układach odniesienia
} hierarchyid –
przechowywanie i obsługa hierarchii
Inne
typy
} bit – logika
trójwartościowa: 0,1,NULL
} sql_variant – typ
ogólny, można do niego konwertować dane prawie każdego typu
} sysname –
nvarchar(128)
} timestamp aka rowversion
– znacznik śledzenia zmian w rekordach
} uniqueidentifier – GUID
◦
Funkcje
NEWID i NEWSEQUENTIALID
Typy
przestarzałe
} text
◦
Używać
varchar(max)
} ntext
◦
Używać
nvarchar(max)
} image
◦
Używać
varbinary(max)
Hierarchia
typów
Typy CLR
SQL_VARIANT
XML
DATETIMEOFFSET
DATETIME2
DATETIME
SMALLDATETIME
DATE
TIME
…
Konwersja
} Niejawna
◦
Nie
zawsze możliwa
◦
Jeżeli
zachodzi, to zawsze rzutowanie następuje na typ danych znajdujący się najwyżej
w hierarchii
} Jawna
◦
CAST
- prostsza
◦
CONVERT
– daje więcej możliwości
◦
Zalecana,
by uniknąć przypadkowych błędów, czasem nie można jej uniknąć
Typy danych użytkownika
} Typy bazujące na
typach systemowych
◦
Polecenie
CREATE TYPE
◦
Brak
polecenia ALTER TYPE
} Typy tabelaryczne
◦
Polecenie
CREATE TYPE … AS TABLE
◦
Wykorzystywane
przez zmienne tabelaryczne i parametry obiektów proceduralnych (READONLY)
} Typy CLR
◦
Tworzone
w technologii .NET
Źródło
Brak komentarzy:
Prześlij komentarz