Typy danych programu SQL Server: Varchar, numeryczne, data i godzina (przykłady w języku T-SQL)

Spisie treści:

Anonim

Co to jest typ danych?

Typ danych jest zdefiniowany jako typ danych, które każda kolumna lub zmienna może przechowywać w MS SQL Server.

Tworząc dowolną tabelę lub zmienną, oprócz określenia nazwy, ustawiasz również Typ danych, które będą przechowywane.

Jak używać typu danych MS SQL

  • Musisz wcześniej zdefiniować typ danych, które może przechowywać kolumna lub zmienna. Określenie typu danych ogranicza również użytkownikowi możliwość wprowadzania nieoczekiwanych lub nieprawidłowych danych.
  • Możesz efektywnie wykorzystać pamięć, przypisując odpowiedni typ danych do zmiennej lub kolumny, która przydzieli tylko wymaganą ilość pamięci systemowej dla danych z odpowiedniej kolumny.
  • MS SQL oferuje szeroką kategorię typów danych zgodnie z potrzebami użytkownika. Jak data, obrazy binarne itp.

W tym samouczku dowiesz się:

  • Co to jest typ danych?
    • Jak używać typu danych MS SQL
  • Dlaczego warto korzystać z DataTypes?
    • Dokładna liczba
    • Przybliżona liczba
    • Data i godzina
    • Ciągi znaków
    • Ciągi znaków Unicode
    • Ciąg binarny
    • Inne typy danych

Dlaczego warto korzystać z DataTypes?

Weźmy przykład prostej strony rejestracji w aplikacji internetowej. Trzy pola wejściowe to imię, nazwisko i numer kontaktowy.

W tym miejscu należy zauważyć, że w czasie rzeczywistym:

  • „Imię / nazwisko” będzie zawsze wyświetlane w kolejności alfabetycznej .
  • „Kontakt” zawsze będzie miał wartość liczbową .

  • Z powyższego obrazka warto zdefiniować „Imię / Nazwisko” jako znak i Kontakt” jako liczbę całkowitą .

Jest oczywiste, że w każdej aplikacji wszystkie pola mają jeden lub drugi typ danych. Np. Numeryczne, alfabetyczne, data i wiele innych.

Należy również zauważyć, że różne typy danych mają różne wymagania dotyczące pamięci. Dlatego bardziej sensowne jest zdefiniowanie kolumny lub zmiennej z typem danych, które będzie przechowywać, w celu efektywnego wykorzystania pamięci.

Typ danych dostępny w MS SQL

Serwer MS SQL obsługuje następujące kategorie typu danych:

  • Dokładna liczba
  • Przybliżona liczba
  • Data i godzina
  • Ciągi znaków
  • Ciągi znaków Unicode
  • Ciągi binarne
  • Inne typy danych
Typy danych MSQL

Dokładna liczba

Dokładne liczbowe ma dziewięć typów podtypów danych. Dokładne numeryczne typy danych

Typ danych Opis Dolna granica Górna granica Pamięć
bigint Przechowuje liczby całkowite w podanym zakresie −2 63 (−9 223 372, 036 854 775 808) 2 63-1 (-9 223 372, 036 854 775 807) 8 bajtów
int Przechowuje liczby całkowite w podanym zakresie −2 31 (−2 147, 483 648) 2 31-1 (-2,147, 483 647) 4 bajty
smallint Przechowuje liczby całkowite w podanym zakresie −2 15 (−32 767) 2 15 (-32 768) 2 bajty
tinyint Przechowuje liczby całkowite w podanym zakresie 0 255 1 bajt
kawałek Może przyjmować wartości 0, 1 lub NULL. 0 1 Kolumna 1-bajtowa / 8-bitowa
dziesiętny Używany do skalowania i liczb o stałej precyzji −10 38 + 1 10 381-1 5 do 17 bajtów
numeryczny Używany do skalowania i liczb o stałej precyzji −10 38 + 1 10 381-1 5 do 17 bajtów
pieniądze Wykorzystane dane pieniężne -922,337,203,685,477,5808 +922,337, 203, 685 477,5807 8 bajtów
małe pieniądze Wykorzystane dane pieniężne −214.478,3648 +214.478.3647 4 bajty

Przykłady:

Pytanie:

DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int

Wyjście: 2

Składnia: Decimal (P, S)

Tutaj,

  • P to precyzja
  • S to skala

Pytanie:

DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31PRINT @Datatype_Decimal

Wyjście: 2,31

Przybliżona liczba

Kategoria Approximate Numeric obejmuje wartości zmiennoprzecinkowe i rzeczywiste. Są najczęściej używane w obliczeniach naukowych. Przybliżony numeryczny typ danych

Typ danych Opis Dolna granica Górna granica Pamięć Precyzja
float (n) Używany w przypadku liczby zmiennoprzecinkowej -1,79E + 308 1,79E + 308 Zależy od wartości n 7 cyfr
real Używany w przypadku liczby zmiennoprzecinkowej -3,40E + 38 3,40E + 38 4 bajty 15 cyfr
Syntax: FLOAT [(n)] 

Tutaj n to liczba bitów, które są używane do przechowywania mantysy liczby zmiennoprzecinkowej w notacji naukowej. Domyślnie wartość n wynosi 53.

Gdy użytkownik definiuje typ danych, taki jak float, n powinno być wartością z zakresu od 1 do 53.

SQL Server traktuje n jako jedną z dwóch możliwych wartości. Jeśli 1 <= n <= 24, n jest traktowane jako 24. Jeśli 25 <= n <= 53, n jest traktowane jako 53.

Przykładowe zapytanie:

DECLARE @Datatype_Float FLOAT(24) = 22.1234PRINT @Datatype_Float

Wyjście: 22.1234

Data i godzina

Przechowuje dane typu Data i czas. Data i godzina Typ danych

Typ danych Opis Rozmiar pamięci Precyzja Dolny zakres Górny zakres
DateTime Służy do określania daty i czasu od 1 stycznia 1753 do 31 grudnia 9999. Ma dokładność 3,33 milisekundy. 8 bajtów Zaokrąglone do przyrostów .000, .003, .007 1753-01-01 9999-12-31
smalldatetime Służy do określania daty i godziny od 1 stycznia 0001 do 31 grudnia 9999. Ma dokładność 100 nanosekund 4 bajty, naprawiono 1 minuta 1900-01-01 2079-06-06
data Używany tylko do przechowywania danych od 1 stycznia 0001 do 31 grudnia 9999 3 bajty, naprawiono 1 dzień 0001-01-01 9999-12-31
czas Służy do przechowywania tylko wartości czasu z dokładnością do 100 nanosekund. 5 bajtów 100 nanosekund 00: 00: 00.0000000 23: 59: 59,9999999
datetimeoffset Podobny do datatime, ale ma przesunięcie strefy czasowej 10 bajtów 100 nanosekund 0001-01-01 9999-12-31
datetime2 Służy do określania daty i godziny od 1 stycznia 0001 do 31 grudnia 9999 6 bajtów 100 nanosekund 0001-01-01 9999-12-31

Przykładowe zapytanie:

DECLARE @Datatype_Date DATE = '2030-01-01'PRINT @Datatype_Date

Wyjście: „2030-01-01”

Ciągi znaków

Ta kategoria jest związana z typem postaci. Pozwala użytkownikowi zdefiniować typ danych znaków, które mogą mieć stałą lub zmienną długość. Ma cztery rodzaje typów danych. Typy danych ciągów znaków

Typ danych Opis Dolna granica Górna granica Pamięć
zwęglać Jest to ciąg znaków o stałej szerokości. Przechowuje maksymalnie 8 000 znaków. 0 znaków 8000 znaków n bajtów
varchar To jest ciąg znaków o zmiennej szerokości 0 znaków 8000 znaków n bajtów + 2 bajty
varchar (maks.) To jest ciąg znaków o zmiennej szerokości. Przechowuje maksymalnie 1 073 741 824 znaków. 0 znaków 2 31 znaków n bajtów + 2 bajty
tekst To jest ciąg znaków o zmiennej szerokości. Przechowuje maksymalnie 2 GB danych tekstowych. 0 znaków 2.147.483.647 znaków n bajtów + 4 bajty

Przykładowe zapytanie:

DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype'PRINT @Datatype_Char

Wyjście: to jest typ danych znaku

Ciągi znaków Unicode

W tej kategorii przechowywany jest pełen zakres znaków Unicode, które używają kodowania znaków UTF-16. Typy danych ciągu znaków Unicode

Typ danych Opis Dolna granica Górna granica Pamięć
nchar Jest to ciąg znaków Unicode o stałej szerokości 0 znaków 4000 znaków 2 razy n bajtów
nvarchar Jest to ciąg znaków Unicode o zmiennej szerokości 0 znaków 4000 znaków 2 razy n bajtów + 2 bajty
ntext Jest to ciąg znaków Unicode o zmiennej szerokości 0 znaków 1.073.741.823 char 2 razy długość sznurka

Przykładowe zapytanie:

DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'PRINT @Datatype_nChar

Wynik : to jest typ danych nCharacter

Ciąg binarny

Ta kategoria zawiera ciąg binarny o stałej i zmiennej długości. Typy danych w postaci ciągów binarnych

Typ danych Opis Dolna granica Górna granica Pamięć
dwójkowy Jest to ciąg binarny o stałej szerokości. Przechowuje maksymalnie 8 000 bajtów. 0 bajtów 8000 bajtów n bajtów
varbinary To jest ciąg binarny o zmiennej szerokości. Przechowuje maksymalnie 8 000 bajtów 0 bajtów 8000 bajtów Rzeczywista długość wprowadzonych danych + 2 bajty
wizerunek To jest ciąg binarny o zmiennej szerokości. Przechowuje maksymalnie 2 GB. 0 bajtów 2 147 483 647 bajtów

Przykładowe zapytanie:

DECLARE @Datatype_Binary BINARY(2) = 12;PRINT @Datatype_Binary

Wyjście: 0x000C

Inne typy danych

Są to inne typy danych z poniższym opisem:

Typ danych Opis
Kursor Jego wynikiem jest kolumna sp_cursor_list i sp_describe_cursor. Zwraca nazwę zmiennej kursora.
Wersja rzędowa Wersja ta oznacza wiersze tabeli.
Hierarchyid Ten typ danych reprezentuje pozycję w hierarchii
Unikalny identyfikator Konwersja z wyrażenia znakowego.
Sql_variant Przechowuje wartości typów danych obsługiwanych przez serwer SQL.
XML Przechowuje dane XML w kolumnie.
Typ geometrii przestrzennej Przedstawia dane w płaskim układzie współrzędnych.
Typ geografii przestrzennej Reprezentuje dane w okrągłym układzie współrzędnych.
stół Przechowuje zestaw wyników do późniejszego przetwarzania.

Interesujące fakty!

  • Typ danych CHAR jest szybszy niż VARCHAR podczas pobierania danych.

Podsumowanie:

  • Każda kolumna w tabelach definiuje swój typ danych podczas tworzenia tabeli.
  • Istnieje sześć głównych kategorii i jedna inna kategoria różnorodna. Inne różne mają dziewięć podkategorii dostępnych typów danych.