Microsoft SQL Server
Tipi di dati
Ricerca…
introduzione
In questa sezione vengono descritti i tipi di dati che possono essere utilizzati da SQL Server, inclusi l'intervallo di dati, la lunghezza e le limitazioni (se presenti).
Numeri esatti
Esistono due classi base di tipi di dati numerici esatti: Integer , Fixed Precision e Scale .
Tipi di dati interi
- po
- tinyint
- smallint
- int
- bigint
Gli interi sono valori numerici che non contengono mai una parte frazionaria e utilizzano sempre una quantità fissa di spazio di archiviazione. L'intervallo e le dimensioni di archiviazione dei tipi di dati interi sono mostrati in questa tabella:
Tipo di dati | Gamma | Conservazione |
---|---|---|
po | 0 o 1 | 1 bit ** |
tinyint | Da 0 a 255 | 1 byte |
smallint | -2 ^ 15 (-32.768) a 2 ^ 15-1 (32.767) | 2 byte |
int | -2 ^ 31 (-2.147.483.648) a 2 ^ 31-1 (2.147.483.647) | 4 byte |
bigint | -2 ^ 63 (-9.223.372.036.854.775.808) a 2 ^ 63-1 (9.223.372.036.854.775.807) | 8 byte |
Risolti i tipi di dati di precisione e scala
- numerico
- decimale
- smallmoney
- i soldi
Questi tipi di dati sono utili per rappresentare esattamente i numeri. Finché i valori possono rientrare nell'intervallo dei valori memorizzabili nel tipo di dati, il valore non avrà problemi di arrotondamento. Questo è utile per qualsiasi calcolo finanziario, in cui gli errori di arrotondamento si tradurranno in follia clinica per i contabili.
Si noti che decimale e numerico sono sinonimi per lo stesso tipo di dati.
Tipo di dati | Gamma | Conservazione |
---|---|---|
Decimale [(p [, s])] o Numerico [(p [, s])] | -10 ^ 38 + 1 a 10 ^ 38 - 1 | Vedi tabella di precisione |
Quando si definisce un tipo di dati decimale o numerico , potrebbe essere necessario specificare Precisione [p] e Scala [s].
La precisione è il numero di cifre che possono essere memorizzate. Ad esempio, se è necessario memorizzare valori compresi tra 1 e 999, è necessaria una precisione di 3 (per contenere le tre cifre su 100). Se non si specifica una precisione, la precisione predefinita è 18.
Scala è il numero di cifre dopo il punto decimale. Se è necessario memorizzare un numero compreso tra 0,00 e 999,99, è necessario specificare una precisione di 5 (cinque cifre) e una scala di 2 (due cifre dopo il punto decimale). È necessario specificare una precisione per specificare una scala. La scala predefinita è zero.
La precisione di un tipo di dati decimale o numerico definisce il numero di byte necessari per memorizzare il valore, come mostrato di seguito:
Tabella di precisione
Precisione | Byte di archiviazione |
---|---|
1 - 9 | 5 |
10-19 | 9 |
20-28 | 13 |
29-38 | 17 |
Tipi di dati fissi monetari
Questi tipi di dati sono destinati specificamente alla contabilità e ad altri dati monetari. Questi tipi hanno una scala fissa di 4 - vedrai sempre quattro cifre dopo la cifra decimale. Per la maggior parte dei sistemi che funzionano con la maggior parte delle valute, sarà sufficiente utilizzare un valore numerico con una Scala di 2. Si noti che nessuna informazione sul tipo di valuta rappresentata viene memorizzata con il valore.
Tipo di dati | Gamma | Conservazione |
---|---|---|
i soldi | -922,337,203,685,477,5808 a 922,337,203,685,477,5807 | 8 byte |
smallmoney | Da -214.748.3648 a 214.748.3647 | 4 byte |
Numeri approssimativi
- float [( n )]
- vero
Questi tipi di dati vengono utilizzati per memorizzare numeri in virgola mobile. Poiché questi tipi sono destinati a contenere solo valori numerici approssimativi, questi non dovrebbero essere utilizzati nei casi in cui qualsiasi errore di arrotondamento non è accettabile. Tuttavia, se è necessario gestire numeri molto grandi o numeri con un numero indeterminato di cifre dopo la cifra decimale, queste potrebbero essere la soluzione migliore.
Tipo di dati | Gamma | Taglia |
---|---|---|
galleggiante | -1.79 E + 308 a -2.23E-308, 0 e 2.23E-308 a 1.79E + 308 | dipende da n nella tabella sottostante |
vero | -3.40E + 38 a -1.18E - 38, 0 e 1.18E - 38 a 3.40E + 38 | 4 byte |
n tabella dei valori per i numeri float . Se non viene specificato alcun valore nella dichiarazione del float, verrà utilizzato il valore predefinito 53. Si noti che float (24) è l'equivalente di un valore reale .
n valore | Precisione | Taglia |
---|---|---|
1-24 | 7 cifre | 4 byte |
25-53 | 15 cifre | 8 byte |
Data e ora
Questi tipi sono in tutte le versioni di SQL Server
- appuntamento
- smalldatetime
Questi tipi sono disponibili in tutte le versioni di SQL Server dopo SQL Server 2012
- Data
- datetimeoffset
- datetime2
- tempo
Stringhe di caratteri
- carbonizzare
- varchar
- testo
Stringhe di caratteri Unicode
- nchar
- nvarchar
- ntext
Stringhe binarie
- binario
- varbinary
- Immagine
Altri tipi di dati
- cursore
- timestamp
- hierarchyid
- identificativo unico
- sql_variant
- xml
- tavolo
- Tipi spaziali