English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tipi di dati SQL Server

以下各节描述了SQL Server支持的数据类型。

SQL Server数据类型

Microsoft SQL Server支持的数据类型可以分为三个主要类别:Stringhe,NumerieData/oraTipi di dati.

Tipi di dati stringa

I tipi di dati stringa sono solitamente utilizzati per memorizzare nomi, indirizzi, descrizioni o qualsiasi valore che contenga lettere e numeri, inclusi dati binari come immagini o file audio.

Tipo di datiDescrizione
char(n)Memorizzare stringhe di lunghezza fissa. La lunghezza massima è di 8.000 caratteri.
varchar(n)Memorizzare stringhe di lunghezza variabile. La lunghezza massima è di 8.000 caratteri.
varchar(max)Memorizzare stringhe di lunghezza variabile. In questo caso, max indica una dimensione massima di archiviazione di 2 GB.
textMemorizzare stringhe di lunghezza variabile. La dimensione massima di archiviazione è di 2 GB.
ncharMemorizzare stringhe Unicode di lunghezza fissa. La lunghezza massima è di 4.000 caratteri.
nvarcharMemorizzare stringhe Unicode di lunghezza variabile. La lunghezza massima è di 4.000 caratteri.
nvarchar(max)Memorizzare stringhe Unicode di lunghezza variabile. In questo caso, max indica una dimensione massima di archiviazione di 2 GB.
ntextMemorizzare stringhe Unicode di lunghezza variabile. La dimensione massima di archiviazione è di 2 GB.
binary(n)Memorizzare dati binari di lunghezza fissa. La dimensione massima di archiviazione è di 8.000 byte.
varbinary(n)Memorizzare dati binari di lunghezza variabile. La dimensione massima di archiviazione è di 8.000 byte.
varbinary(max)Memorizzare dati binari di lunghezza variabile. In questo caso, max indica una dimensione massima di archiviazione di 2 GB.
imageMemorizzare dati binari di lunghezza variabile. La dimensione massima di archiviazione è di 8.000 byte.

Tipi di dati numerici

I tipi di dati numerici sono solitamente utilizzati per memorizzare dati come prezzi, stipendi, ecc.

Tipo di datiDescrizione
bitConsente di memorizzare valori 1, 0 oNULL.
tinyintMemorizzare valori interi nell'intervallo da 0 a 255.
smallintMemorizzare valori interi nell'intervallo da -32,768 a 32,767.
intMemorizzare valori interi nell'intervallo da -2,147,483,648 a 2,147,483,647.
bigintMemorizzare valori interi da -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807.
decimal(p,s)Memorizzare precisione e numero di cifre decimali fisse. Il valorevalido è 10 ^38 +1 a 10 ^38-1. Relativamente aPer ulteriori dettagli,Si prega di consultare il testo seguente.
numeric(p,s)La funzione del tipo di dati numeric è equivalente a decimal.
smallmoneyConsente di memorizzare con precisione valori monetari o valori monetari, con un intervallo da -214,748.3648 a 214,748.3647.
moneyPermette di memorizzare valori monetari con precisione o valori monetari, con un intervallo da -922,337,203,685,477.5808 a 922,337,203,685,477.5807.
float(n)Memorizza valori a virgola mobile. I valori validi vanno da -1.79E + 308 a -2.23E-308, 0 e da 2.23E-308 a 1.79E + 308.
realMemorizza valori a virgola mobile. I valori validi vanno da -3.40E + 38 a -1.18E-38, 0 e da 1.18E-38 a 3.40E + 38.

Quando si dichiara una colonna decimal o numeric, è possibile specificare la precisione e il numero di cifre decimale, come decimal(p,s) o numeric(p,s), dove p o precisione rappresenta il numero massimo di cifre che possono essere memorizzate, inclusi quelli prima e dopo il punto decimale. La precisione deve essere un valore tra 1 e 38. La precisione predefinita è 18.

EsO scale indica il numero massimo di cifre che possono essere memorizzate dopo il punto decimale. Sottrarre questo numero da p per determinare il numero massimo di cifre prima del punto decimale. Il numero di cifre decimale deve essere un valore tra 0 e p. Il valore predefinito è 0.

Ad esempio, la colonna price decimal(6,2) può memorizzare qualsiasi valore con sei cifre e due decimali, ossia da -9999.99 a 9999.99.

Tipi di dati data e ora

I tipi di dati data e ora sono utilizzati per memorizzare dati come data di nascita, data di assunzione, data e ora di creazione o aggiornamento di un record nella tabella, ecc.

Tipo di datiDescrizione
dateMemorizza i valori di data, con un intervallo da 0001-01-01 (1 gennaio, gennaio) a
9999-12-31 (31 dicembre 9999).
timeMemorizza l'ora durante il giorno, con una precisione di 100 nanosecondi. I valori validi vanno da 00:00:00.0000000 a 23:59:59.9999999.
datetimeMemorizza i valori di data e ora combinati, con una precisione di 3.33 millisecondi. L'intervallo di date validhe per datetime è dal 1753-01-01 (1 gennaio 1753) al 9999-12-31 (31 dicembre 9999).
datetime2

datetime2 è un'estensione del tipo di dati datetime, che ha un intervallo di date più ampio. L'intervallo di date validhe per datetime2 va dal 0001-01-01 (1 gennaio 1) al 9999-12-31 (31 dicembre 9999).

smalldatetimeMemorizza i valori di data e ora combinati con una precisione di 1 minuto. L'intervallo di date validhe per smalldatetime va dal 1900-01-01 (1 gennaio 1900) a
2079-06-06 (6 giugno 2079).
datetimeoffsetLo stesso di datetime2 con offset di fuso orario. Il formato predefinito è YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+|-}hh:mm]. L'intervallo valido dell'offset di fuso orario è da -14:00 a +14:00.
timestampIn SQL Server, il timestamp è un sinonimo del tipo di dati rowversion, che nel database viene generato automaticamente un numero binario unico. rowversion viene comunemente utilizzato come marchio di versione delle righe della tabella

Attenzione:Ogni volta che si inserisce o modifica una riga con la colonna rowversion, il valore incrementale rowversion del database viene inserito nella colonna rowversion. Una tabella può avere una sola colonna rowversion.