Typy danych w SQL

Typy danych używane przez Microsoft Access, MySQL oraz SQL Server i ich zakres.

Typy danych Microsoft Access

Typ danych Opis Przechowywanie
Text Do tekstu lub kombinacji tekstu i liczb. Maksymalnie 255 znaków.  
Memo

Memo do przechowywania większej ilości tekstu. Maksymalnie 65,536 znaków.

Uwaga: Memo pole nie można sortować. Jednak jest wyszukiwalne.

 
Byte Pozwala na liczby między 0 a 255. 1 bajt
Integer Pozwala na liczby między -32,768 a 32,767. 2 bajty
Long Pozwala na wszystkie liczby między -2,147,483,648 a 2,147,483,647. 4 bajty
Single Liczba zmiennoprzecinkowa o jednej zmiennoprzecinkowej. Obsługuje większość liczb ułamkowych. 4 bajty
Double Dwuwymiarowa liczba zmiennoprzecinkowa. Obsługuje większość liczb ułamkowych. 8 bajtów
Waluta

Do waluty. Obsługuje 15 miejsc po przecinku, oraz 4 miejsca po przecinku w części ułamkowej.

Uwaga: Możesz wybrać walutę kraju.

8 bajtów
AutoNumber Pole AutoNumber automatycznie przypisuje liczby każdemu rekordowi, zazwyczaj zaczynając od 1. 4 bajty
Data/Czas Do dat i czasu 8 bajtów
Yes/No

Pole logiczne, które można wyświetlić jako Yes/No, True/False lub Wł/Wył.

W kodzie używaj stałych True i False (równoważne 1 i 0)

Uwaga: W polu Yes/No nie można wprowadzić wartości Null

1 bit
Ole Object Można przechowywać obrazy, dźwięki, wideo lub inne BLOBs (Binary Large OBjects) Maksymalnie 1 GB
Hyperlink Zawiera linki do innych plików, w tym stron internetowych.  
Lookup Wizard Pozwala utworzyć listę opcji do wyboru z poniższej listy. 4 bajty

Typy danych MySQL

W MySQL istnieją trzy główne typy: typy tekstu, liczbowe i daty/czasu.

Typ tekstu:

Typ danych Opis
CHAR(rozmiar) Zapisz stałą długości ciąg znaków (może zawierać litery, cyfry oraz znaki specjalne). W nawiasach kwadratowych określ długość ciągu. Maksymalnie 255 znaków.
VARCHAR(rozmiar)

Zapisz zmienną długości ciągów znaków (może zawierać litery, cyfry oraz znaki specjalne). W nawiasach kwadratowych określ maksymalną długość ciągu. Maksymalnie 255 znaków.

注释:如果值的长度大于 255,则被转换为 TEXT 类型。

TINYTEXT Komentarz: Jeśli długość wartości jest większa niż 255, zostanie ona przekształcona do typu TEXT.
TINYTEXT Przechowuje ciąg znaków o maksymalnej długości 255 znaków.
TEXT Przechowuje ciąg znaków o maksymalnej długości 65,535 znaków.
BLOB Używane dla BLOBs (Binary Large OBjects). Przechowuje maksymalnie 65,535 bajtów danych.
MEDIUMTEXT Przechowuje ciąg znaków o maksymalnej długości 16,777,215 znaków.
MEDIUMBLOB Używane dla BLOBs (Binary Large OBjects). Przechowuje maksymalnie 16,777,215 bajtów danych.
LONGTEXT Przechowuje ciąg znaków o maksymalnej długości 4,294,967,295 znaków.
LONGBLOBUżywane dla BLOBs (Binary Large OBjects). Przechowuje maksymalnie 4,294,967,295 bajtów danych.,ENUM(,xy

z

,itp.)

Pozwala na wprowadzenie listy możliwych wartości. Możesz wymienić maksymalnie 65535 wartości w liście ENUM. Jeśli wartość nie istnieje w liście, zostanie wprowadzona pusta wartość.

Komentarz: Te wartości są przechowywane w kolejności, w której wprowadziłeś. Możesz wprowadzić możliwe wartości w tym formacie: ENUM('X','Y','Z')

Typ Number:

Typ danych Opis
SETrozmiar) Podobne do ENUM, SET może zawierać maksymalnie 64 elementy listy, ale SET może przechowywać więcej niż jedną wartość.
SMALLINT(rozmiar) -32768 do 32767 standardowe. 0 do 65535 nieskładane *. Maksymalna liczba miejsc określona w nawiasach.
MEDIUMINT(rozmiar) -8388608 do 8388607 standardowe. 0 do 16777215 nieskładane *. Maksymalna liczba miejsc określona w nawiasach.
INT(rozmiar) -2147483648 do 2147483647 standardowe. 0 do 4294967295 nieskładane *. Maksymalna liczba miejsc określona w nawiasach.
BIGINT(rozmiar) -9223372036854775808 do 9223372036854775807 standardowe. 0 do 18446744073709551615 nieskładane *. Maksymalna liczba miejsc określona w nawiasach.
FLOAT(rozmiar,d) Liczby z浮点小数点。Maksymalna liczba miejsc określona w nawiasach. Maksymalna liczba miejsc po przecinku określona w parametrze d.
DOUBLE(rozmiar,d) Duże liczby z przecinkiem ruchomym. W nawiasach okrągłych określa się maksymalną liczbę miejsc. W parametrze d określa się maksymalną liczbę miejsc po przecinku.
DECIMAL(rozmiar,d) Typ DOUBLE przechowywany jako ciąg znaków, który pozwala na stałą przecinkową.

*Te typy liczb całkowitych mają dodatkową opcję UNSIGNED. Zwykle liczby całkowite mogą być ujemne lub dodatnie. Jeśli doda się atrybut UNSIGNED, zakres zacznie się od 0, zamiast od pewnej liczby ujemnej.

Typ Date:

Typ danych Opis
DATE()

Data. Format: YYYY-MM-DD

Komentarz: Obsługiwany zakres to od '1000-01-01' do '9999-12-31'

DATETIME()

*Kompozycja daty i czasu. Format: YYYY-MM-DD HH:MM:SS

Komentarz: Obsługiwany zakres to od '1000-01-01 00:00:00' do '9999-12-31 23:59:59'

TIMESTAMP()

*Czas znacznika. Wartości TIMESTAMP przechowują opis od Unix epoch ('1970-01-01 00:00:00' UTC) do teraz. Format: YYYY-MM-DD HH:MM:SS

Komentarz: Obsługiwany zakres to od '1970-01-01 00:00:01' UTC do '2038-01-09 03:14:07' UTC

TIME()

Czas. Format: HH:MM:SS

Komentarz: Obsługiwany zakres to '-838:59:59' do '838:59:59'.

YEAR()

Rok w formacie 2 lub 4 miejsc.

Komentarz: Dopuszczalne wartości dla formatu 4 miejsc: od 1901 do 2155. Dopuszczalne wartości dla formatu 2 miejsc: od 70 do 69, co oznacza lata od 1970 do 2069.

* Chociaż DATETIME i TIMESTAMP zwracają ten sam format, działają zupełnie inaczej. W zapytaniach INSERT lub UPDATE, TIMESTAMP automatycznie ustawia się na bieżącą datę i czas. TIMESTAMP akceptuje różne formaty, takie jak YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD lub YYMMDD.

Typ danych SQL Server

Ciąg znaków z liter:

Typ danych Opis Przechowywanie
char(n) Ciąg znaków o stałej długości. Maksymalnie 8,000 znaków. n
varchar(n) Ciąg znaków o zmiennej długości. Maksymalnie 8,000 znaków.  
varchar(max) Ciąg znaków o zmiennej długości. Maksymalnie 1,073,741,824 znaków.  
text Ciąg znaków o zmiennej długości. Maksymalnie 2GB danych znakowych.  

Ciąg znaków Unicode:

Typ danych Opis Przechowywanie
nchar(n) Dane Unicode o stałej długości. Maksymalnie 4,000 znaków.  
nvarchar(n) Dane Unicode o zmiennej długości. Maksymalnie 4,000 znaków.  
nvarchar(max) Dane Unicode o zmiennej długości. Maksymalnie 536,870,912 znaków.  
ntext Dane Unicode o zmiennej długości. Maksymalnie 2GB znaków.  

Typ Binary:

Typ danych Opis Przechowywanie
bit Zawiera 0, 1 lub NULL  
binary(n) Dane binarne o stałej długości. Maksymalnie 8,000 bajtów.  
varbinary(n) Dane binarne o zmiennej długości. Maksymalnie 8,000 bajtów.  
varbinary(max) Dane binarne o zmiennej długości. Maksymalnie 2GB bajtów.  
image Dane binarne o zmiennej długości. Maksymalnie 2GB.  

Typ Number:

Typ danych Opis Przechowywanie
tinyint Zawiera wszystkie liczby między 0 a 255. 1 bajt
smallint Zawiera wszystkie liczby między -32,768 a 32,767. 2 bajty
int Zawiera wszystkie liczby między -2,147,483,648 a 2,147,483,647. 4 bajty
bigint Zawiera wszystkie liczby między -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807. 8 bajtów
decimal(p,s)

Liczby o stałej precyzji i proporcji. Zawiera liczby od -10^38 +1 do 10^38 -1.

Parametr p wskazuje maksymalną liczbę miejsc po przecinku, które mogą być przechowywane po stronie lewej i prawej. Wartość p musi być z przedziału 1 do 38. Domyślną wartością jest 18.

Parametr s wskazuje maksymalną liczbę miejsc po przecinku, które mogą być przechowywane po stronie lewej. Wartość s musi być z przedziału 0 do p. Domyślną wartością jest 0.

5-17 bajtów
numeric(p,s)

Liczby o stałej precyzji i proporcji. Zawiera liczby od -10^38 +1 do 10^38 -1.

Parametr p wskazuje maksymalną liczbę miejsc po przecinku, które mogą być przechowywane po stronie lewej i prawej. Wartość p musi być z przedziału 1 do 38. Domyślną wartością jest 18.

Parametr s wskazuje maksymalną liczbę miejsc po przecinku, które mogą być przechowywane po stronie lewej. Wartość s musi być z przedziału 0 do p. Domyślną wartością jest 0.

5-17 bajtów
smallmoney Dane monetarne między -214,748.3648 a 214,748.3647. 4 bajty
money Dane monetarne między -922,337,203,685,477.5808 a 922,337,203,685,477.5807. 8 bajtów
float(n)

Liczby zmiennoprzecinkowe o precyzji od -1.79E + 308 do 1.79E + 308.

Parametr n wskazuje, czy pole zapisuje 4 bajty czy 8 bajtów. float(24) zapisuje 4 bajty, a float(53) zapisuje 8 bajtów. Domyślną wartością n jest 53.

4 lub 8 bajtów
real Liczby zmiennoprzecinkowe z precyzją浮 from -3.40E + 38 do 3.40E + 38. 4 bajty

Typ Date:

Typ danych Opis Przechowywanie
datetime Od 1 stycznia 1753 roku do 31 grudnia 9999 roku, precyzja 3.33 milisekund. 8 bajtów
datetime2 Od 1 stycznia 1753 roku do 31 grudnia 9999 roku, precyzja 100 nanosekund. 6-8 bajtów
smalldatetime Od 1 stycznia 1900 roku do 6 czerwca 2079 roku, precyzja 1 minuty. 4 bajty
date Przechowywanie tylko daty. Od 1 stycznia 0001 roku do 31 grudnia 9999 roku. 3 bajty
time Przechowywanie tylko czasu. Precyzja 100 nanosekund. 3-5 bajtów
datetimeoffset Takie jak datetime2, z dodatkowym offsetem strefy czasowej. 8-10 bajtów
timestamp Przechowywanie unikalnych liczb, które aktualizują się przy każdym tworzeniu lub modyfikowaniu wiersza. Timestamp oparty na wewnętrznym zegarze, nie odpowiada rzeczywistemu czasowi. Każda tabela może mieć tylko jeden zmienną timestamp.  

Inne typy danych:

Typ danych Opis
sql_variant Przechowywanie danych różnych typów do 8,000 bajtów, oprócz text, ntext oraz timestamp.
uniqueidentifier Przechowywanie unikalnych identyfikatorów (GUID).
xml Przechowywanie danych sformatowanych w formacie XML. Maksymalnie 2GB.
cursor Przechowywanie odniesień do wskaźników używanych do operacji na bazie danych.
table Przechowywanie wyników zestawów danych do późniejszej obróbki.