Główne typy danych SQL Server / Transact-SQL

Tomasz Kenig/ / Kurs SQL Server/ 0 komentarzy

1. 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 przypisana jest do konkretnego typu. Wynika z tego m.in. to, ile zajmuje miejsca w bazie, jakie wartości może przyjmować i 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ę wszystkie typy danych w Transact-SQL. W tym rozdziale przedstawiam najważniejsze typy danych, z których powinieneś korzystać.

2. 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
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
varbinary [ ( n | max) ]Typ dla danych binarnych o zmiennej długości.od 1 do 8000B. Dla deklaracji max od 0B do 2^31-1B (2,147,483,647)

3. 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.

Typy danych SQL Server

Typy danych SQL Server

4. 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

Zostaw Komentarz

Twój adres email nie zostanie opublikowany.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">