Typy danych SQL Server / Transact-SQL


Typy danych SQL Server / Transact-SQL – wprowadzenie

Dlaczego takie ważne jest wybranie właściwego typu danych dla naszych kolumn i zmiennych w MsSQL Server? Każda dana zarówno ta przechowywana w kolumnie tabeli, jak i zmienna w Transact-SQL posiada swój typ danych i zapisana jest w określony sposób. Wynika z tego m.in.:

  • ile zajmuje miejsca w bazie,
  • jakie wartości może przyjmować
  • jak SQL Server będzie daną interpretował.

Daty zapisujemy w typach danych dat i czasu. Liczby zapisujemy w typach liczbowych. Tekst zapisujemy w typach danych przystosowanych do przechowywania tekstu. Przykładowo na liczbach zapisanych jako tekst nie możesz wykonywać działań arytmetycznych. W SQL Server wyróżniamy następujące grupy typów danych:

  • Liczbowe
  • Tekstowe
  • Daty i czasu
  • Binarne
  • Pozostałe

W kolejnych rozdziałach opiszę wykorzystanie większości typów danych w Transact-SQL. W tym rozdziale przedstawiam najważniejsze typy danych, z których powinieneś korzystać.

Najważniejsze typy danych SQL Server / Transact-SQL

SQL Server oferuje nam kilkadziesiąt typów danych. Najważniejsze z nich do zapamiętania to: BITINT, BIGINT, FLOAT, CHAR, NCHARVARCHAR, NVARCHARDATETIME2, DATETIME, VARBINARY. To właśnie te typy danych powinieneś zapamiętać z kursu SQL Server. Opis tych typów zamieszczam poniżej:

Typ danychOpisZakresZajmowana przestrzeń w bajtach (B)
bitTyp danych długiści jednego bita. Przechowuje wartość 1, 0 lub null.0, 1, null1B dla każdych 8 kolumn o tym typie w tabeli
intTyp do przechowywania dużych liczb całkowitych.-2^31 (-2,147,483,648) do 2^31-1 (2,147,483,647)4B
bigintTyp do przechowywania bardzo dużych liczb całkowitych.-2^63 (-9,223,372,036,854,775,808) do 2^63-1 (9,223,372,036,854,775,807)8B
float [n]Typ do przechowywania liczb zmiennoprzecinkowych o precyzji do 15 miejsc po przecinku.– 1.79E+308 do -2.23E-308, 0 i 2.23E-308 do 1.79E+3084B dla precyzji 7 miejsce po przecinku lub 8B dla precyzji 15 miejsc po przecinku.
char [ ( n ) ]Typ do przechowywania danych tekstowych o stałej długości znaków.Do 8000 znaków.do 8000B
varchar[ ( n | max ) ]Typ do przechowywania danych tekstowych o zmiennej długości znaków.Do 8000 znaków.Zadeklarowana długość lub 2B + 2^31-1 bytes (2 GB) dla deklaracji max.
nchar [ ( n ) ]Typ do przechowywania danych tekstowych o stałej długości znaków. Obsługuje UNICODE.Do 4000 znaków. 1 znak to 2Bdo 8000B
nvarchar [ ( n | max ) ]Typ do przechowywania danych tekstowych o zmiennej długości znaków. Obsługuje UNICODE.Do 4000 znaków. 1 znak to 2BZadeklarowana długość x2 lub 2B + 2^31-1 bytes (2 GB) dla deklaracji max.
datetime2Typ do przechowywania daty o elementach rok, miesiąc, dzień, godzina, minuta, sekunda, precyzja 100ns, strefa czasowa.0001-01-01 – 9999-12-31 23:59:59.99999996 B dla precyzji mniejszej niż 10ms; 7 B dla precyzji 1ms i 0,1ms. 8B dla wyższych precyzji.
datetimeTyp do przechowywania daty o elementach rok, miesiąc, dzień, godzina, minuta, sekunda, precyzja 1ms.1753-01-01 – 9999-12-31 23:59:59.9978B

Przykład wykorzystania typów na danych z tabeli

Poniżej przykład tworzenia tabeli w SQL Server z głównymi typami danych. Po utworzeniu tabeli następuje INSERT przykładowych wartości do tabeli. Zwróć uwagę na to, że w przypadku typów binarnych najpierw konwertujemy dane na typ binarny. Możemy to zrobić za pomocą funkcji CAST lub CONVERT.

Następnie do utworzonej tabeli możesz wprowadzić dane rzeczywiste

Typy danych SQL Server
Typy danych SQL Server

Zmiana typów danych. Konwersja typów danych w SQL Server

W jaki sposób zmienić typ danych w SQL Server? Można to zrobić za pomocą dwóch funkcji: CONVERT lub CAST. Funkcja CAST jest używana także w bazach innych niż tworzonych w oparciu o SQL Server. Funkcja CONVERT poza samą zmianą typu umożliwia w niektórych przypadkach nadanie formatu danych wyjściowych. Pamiętaj, że przy konwersji typów danych, dane muszą być konwertowalne. Tzn. Nie przekowertujesz danych o typie tekstowym na liczbę. Jest natomiast możliwość wykonanina operacji odwrotnej, tzn. konwersja liczby na tekst.

Zmiana typu danych za pomocą funkcji CAST wykonywana jest za pomocą następującej składni:

Zmiana typu danych za pomocą funkcji CONVERT wykonywana jest za pomocą następującej składni:

Przykład zastosowania CAST i CONVERT poniżej:

Kurs SQL Server – Typy danych. Konwersja typów danych

Poniższe informacje to treści, do których możesz wrócić. Nie stanowią części kursu SQL Server. Traktuj te informacje jako coś, do czego możesz wrócić w celu uzupełnienia wiedzy. Nie próbuj nauczyć się ich na pamięć.

Lista wszystkich typów danych w SQL Server / Transact-SQL

Poniżej spis wszystkich typów danych wykorzystywanychh w bazach SQL Server wraz z opisem:

Przykład deklaracji zmiennych i typów danych w Transact-SQL

W nieco inny sposób wygląda pisanie podprogramów w Transact-SQL. Pisząc np procedurę składowaną lub funkcję, na początek powinniśmy zadeklarować zmienną o określonym typie danych. Następnie przypisujemy do zmiennej wartość, którą możemy już użyć w programie.

Typy danych T-SQL
Typy danych T-SQL

Dodaj komentarz

Twój adres email nie zostanie opublikowany.