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