In SQL Server 2005 a ogni colonna, variabile locale, espressione e parametro è associato un attributo che specifica i tipi di dati che l'oggetto può contenere, ovvero numeri interi, caratteri, valute, date e ore, stringhe binarie e così via.
Conoscere i tipi di dati e saperli usare correttamente significa aumentare drasticamente le performance del Database nonché la forte diminuzione delle sue dimensioni.
All'interno di SQL Server 2005 i tipi di dati sono suddivisi nelle seguenti categorie:
- Dati numerici esatti
- Stringhe di testo Unicode
- Numerici approssimati
- Stringhe binarie
- Data e ora
- Altri tipi di dati
- Stringhe di caratteri
Dati numerici esatti
Tipi di dati numerici esatti che utilizzano dati integer:
- bigint: dati di dimensioni a 8 byte. Da -2^63 a 2^63-1
- int: dati di dimensioni a 4 byte. Da -2^31 a 2^31-1
- smallint: dati di dimensioni a 2 byte. Da -2^15 a 2^15-1
- tinyint: dati di dimensioni a 1 byte. Da 0 a 255
- bit: può assumere il valore 0 o 1. Il valore true viene convertito in 1 e false in 0
- decimal: numeri con precisione e scala fisse. Se viene utilizzata la precisione massima, i valori validi sono compresi nell'intervallo da - 10^38 +1 a 10^38 - 1
- numeric: funzionalmente è come decimal
- money: dati di dimensioni a 8 byte.
- smallmoney: dati di dimensioni a 4 byte.
Numerici approssimati
Tipi di dati numerici approssimati da utilizzare con dati numerici a virgola mobile.
- float: da - 1,79E+308 a -2,23E-308, 0 e da 2,23E-308 a 1,79E+308
- real: da - 3,40E + 38 a -1,18E - 38, 0 e da 1,18E - 38 a 3,40E + 38
Data e ora
Tipi di dati che vengono utilizzati per rappresentare la data e l'ora del giorno
- datetime: 1 gennaio 1753 - 31 dicembre 9999
- smalldatetime: 1 gennaio 1900 - 6 giugno 2079
Stringhe e caratteri
Tipo di dati character a lunghezza fissa o variabile:
- char: dati di tipo carattere a lunghezza fissa non Unicode con una lunghezza di n byte. n deve essere un valore compreso tra 1 e 8.000. Le dimensioni di archiviazione sono di n byte. Il sinonimo utilizzato in SQL 2003 per char è character.
- varchar: dati di tipo carattere a lunghezza variabile non Unicode. Le dimensioni di archiviazione sono pari all'effettiva lunghezza dei dati immessi + 2 byte. La lunghezza dei dati immessi può essere uguale a 0 caratteri. I sinonimi utilizzati in SQL 2003 per varchar sono char varying o character varying.
- text: dati non Unicode a lunghezza variabile nella tabella codici del server con lunghezza massima di 2^31-1 caratteri. Quando la tabella codici del server utilizza caratteri DBCS, lo spazio di archiviazione è sempre pari a 2.147.483.647 byte. In base alla stringa di caratteri, le dimensioni dello spazio di archiviazione possono essere minori di 2.147.483.647 byte
Stringhe di caratteri UNICODE
Tipi di dati carattere che rappresentano dati UNICODE a lunghezza fissa (nchar) o variabile (nvarchar) e utilizzano il set di caratteri UNICODE UCS-2.
- nchar: dati Unicode di tipo carattere a lunghezza fissa contenenti n caratteri, dove n deve essere un valore compreso tra 1 e 4.000. Le dimensioni di archiviazione sono pari al doppio di n byte. I sinonimi di SQL-2003 per il tipo di dati nchar sono national char e national character
- nvarchar: dati Unicode di tipo carattere a lunghezza variabile. Le dimensioni di archiviazione, espresse in byte, sono pari al doppio del numero di caratteri immessi + 2 byte. La lunghezza dei dati immessi può essere uguale a 0 caratteri. I sinonimi di SQL-2003 per il tipo di dati nvarchar sono national char varying e national character varying
- ntext: dati Unicode a lunghezza variabile con lunghezza massima di 2^30 - 1 caratteri. Le dimensioni dello spazio di archiviazione, espresse in byte, sono pari al doppio del numero di caratteri immessi. Il sinonimo di SQL-2003 per ntext è national text
Stringhe binarie
Tipi di dati binary a lunghezza fissa o variabile.
- binary: dati binari a lunghezza fissa con lunghezza di n byte, dove n rappresenta un valore compreso tra 1 e 8.000. Le dimensioni dello spazio di archiviazione corrispondono a n byte.
- varbinary: dati binari a lunghezza variabile
- image: dati binari a lunghezza variabile da 0 a 2^31-1 byte
Altri tipi di dati
Tutti gli altri tipi di dati che non possono essere catalogati nelle categorie precedenti:
- cursor: tipo di dati per variabili o parametri di OUTPUT di stored procedure che contengono un riferimento a un cursore
- sql variant: tipo di dati per l'archiviazione di valori per vari tipi di dati supportati da SQL Server 2005
- table: tipo di dati speciale utilizzabile per archiviare un set di risultati per l'elaborazione successiva
- timestamp: tipo di dati che espone i numeri binari univoci generati automaticamente all'interno di un database
- uniqueidentifier: è possibile inizializzare una colonna o variabile locale di tipo uniqueidentifier su un valore specifico
- xml: tipo di dati in cui vengono archiviati i dati XML. È possibile archiviare istanze xml in una colonna oppure una variabile di tipo xml.