Cos'è il tipo di dati?
Un tipo di dati è definito come il tipo di dati che qualsiasi colonna o variabile può memorizzare in MS SQL Server.
Durante la creazione di qualsiasi tabella o variabile, oltre a specificare il nome, imposti anche il tipo di dati che memorizzerà.
Come utilizzare il tipo di dati MS SQL
- È necessario definire in anticipo il tipo di dati che una colonna o una variabile può memorizzare. La determinazione del tipo di dati impedisce inoltre all'utente di immettere dati imprevisti o non validi.
- È possibile fare un uso efficiente della memoria assegnando un tipo di dati appropriato alla variabile o alla colonna che allocherà solo la quantità richiesta di memoria di sistema per i dati della rispettiva colonna.
- MS SQL offre un'ampia categoria del tipo di dati secondo le esigenze dell'utente. Come la data, le immagini binarie, ecc.
In questo tutorial imparerai:
- Cos'è il tipo di dati?
- Come utilizzare il tipo di dati MS SQL
- Perché utilizzare DataTypes?
- Numerico esatto
- Numerico approssimativo
- Data e ora
- Stringhe di caratteri
- Stringhe di caratteri Unicode
- Stringa binaria
- Altri tipi di dati
Perché utilizzare DataTypes?
Facciamo un esempio della semplice pagina di registrazione dell'applicazione del sito Web. Tre campi di input sono Nome, Cognome e Numero di contatto.
Qui dobbiamo notare che in tempo reale:
- "Nome / Cognome" sarà sempre alfabetico .
- "Contatto" sarà sempre numerico .
- Dall'immagine sopra vale la pena definire "Nome / Cognome" come carattere e " Contatto" come numero intero .
È evidente che in qualsiasi applicazione tutti i campi hanno l'uno o l'altro tipo di dati. Ad esempio, numerico, alfabetico, data e molti altri.
Inoltre, tieni presente che un tipo di dati diverso ha requisiti di memoria diversi. Pertanto, ha più senso definire la colonna o la variabile con il tipo di dati che manterrà per un uso efficiente della memoria.
Tipo di dati disponibile in MS SQL
Il server MS SQL supporta le seguenti categorie di tipo di dati:
- Numerico esatto
- Numerico approssimativo
- Data e ora
- Stringhe di caratteri
- Stringhe di caratteri Unicode
- Stringhe binarie
- Altri tipi di dati

Numerico esatto
Numerico esatto ha nove tipi di sottotipi di dati. Tipi di dati numerici esatti
Tipo di dati | Descrizione | Limite inferiore | Limite superiore | Memoria |
---|---|---|---|---|
bigint | Memorizza numeri interi nell'intervallo fornito | −2 63 (−9.223.372, 036.854.775.808) | 2 63−1 (−9.223.372, 036.854.775.807) | 8 byte |
int | Memorizza numeri interi nell'intervallo fornito | −2 31 (−2.147, 483.648) | 2 31−1 (−2.147, 483.647) | 4 byte |
smallint | Memorizza numeri interi nell'intervallo fornito | −2 15 (−32.767) | 2 15 (−32.768) | 2 byte |
tinyint | Memorizza numeri interi nell'intervallo fornito | 0 | 255 | 1 byte |
po | Può richiedere valori 0, 1 o NULL. | 0 | 1 | Colonna da 1 byte / 8 bit |
decimale | Utilizzato per numeri di scala e di precisione fissa | −10 38 + 1 | 10 381-1 | Da 5 a 17 byte |
numerico | Utilizzato per numeri di scala e di precisione fissa | −10 38 + 1 | 10 381-1 | Da 5 a 17 byte |
i soldi | Dati monetari utilizzati | −922.337, 203, 685.477.5808 | +922.337, 203, 685.477.5807 | 8 byte |
smallmoney | Dati monetari utilizzati | −214.478,3648 | +214.478.3647 | 4 byte |
Esempi:
Query:
DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int
Uscita: 2
Sintassi: decimale (P, S)
Qui,
- P è precisione
- S è la scala
Query:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31PRINT @Datatype_Decimal
Uscita: 2.31
Numerico approssimativo
La categoria numerica approssimativa include virgola mobile e valori reali. Sono utilizzati principalmente nei calcoli scientifici. Tipo di dati numerico approssimativo
Tipo di dati | Descrizione | Limite inferiore | Limite superiore | Memoria | Precisione |
---|---|---|---|---|---|
galleggiante (n) | Utilizzato per un numero di precisione mobile | −1,79E + 308 | 1,79 E + 308 | Dipende dal valore di n | 7 cifre |
vero | Utilizzato per un numero di precisione mobile | −3,40E + 38 | 3.40E + 38 | 4 byte | 15 cifre |
Syntax: FLOAT [(n)]
Qui, n è il numero di bit utilizzati per memorizzare la mantissa del numero float in notazione scientifica. Per impostazione predefinita, il valore di n è 53.
Quando l'utente definisce un tipo di dati come float, n dovrebbe essere un valore compreso tra 1 e 53.
SQL Server considera n come uno dei due possibili valori. Se 1 <= n <= 24, n viene considerato come 24. Se 25 <= n <= 53, n viene considerato come 53.
Query di esempio:
DECLARE @Datatype_Float FLOAT(24) = 22.1234PRINT @Datatype_Float
Uscita: 22.1234
Data e ora
Memorizza dati di tipo Data e ora. Tipo di dati data e ora
Tipo di dati | Descrizione | Dimensioni di archiviazione | Precisione | Gamma inferiore | Gamma superiore |
---|---|---|---|---|---|
Appuntamento | Utilizzato per specificare una data e un'ora dal 1 gennaio 1753 al 31 dicembre 9999. Ha una precisione di 3,33 millisecondi. | 8 byte | Arrotondato a incrementi di .000, .003, .007 | 1753-01-01 | 9999-12-31 |
smalldatetime | Utilizzato per specificare una data e un'ora dal 1 gennaio 0001 al 31 dicembre 9999. Ha una precisione di 100 nanosecondi | 4 byte, fissi | 1 minuto | 1900-01-01 | 2079-06-06 |
Data | Utilizzato per memorizzare solo la data dal 1 gennaio 0001 al 31 dicembre 9999 | 3 byte, fissi | 1 giorno | 0001-01-01 | 9999-12-31 |
tempo | Utilizzato per memorizzare solo valori temporali con una precisione di 100 nanosecondi. | 5 byte | 100 nanosecondi | 00: 00: 00.0000000 | 23: 59: 59.9999999 |
datetimeoffset | Simile a datatime ma ha una differenza di fuso orario | 10 byte | 100 nanosecondi | 0001-01-01 | 9999-12-31 |
datetime2 | Utilizzato per specificare una data e un'ora dal 1 gennaio 0001 al 31 dicembre 9999 | 6 byte | 100 nanosecondi | 0001-01-01 | 9999-12-31 |
Query di esempio:
DECLARE @Datatype_Date DATE = '2030-01-01'PRINT @Datatype_Date
Uscita: "2030-01-01"
Stringhe di caratteri
Questa categoria è correlata a un tipo di carattere. Consente all'utente di definire il tipo di dati del carattere che può essere di lunghezza fissa e variabile. Ha quattro tipi di dati. Tipi di dati di stringhe di caratteri
Tipo di dati | Descrizione | Limite inferiore | Limite superiore | Memoria |
---|---|---|---|---|
char | È una stringa di caratteri con una larghezza fissa. Memorizza un massimo di 8.000 caratteri. | 0 caratteri | 8000 caratteri | n byte |
varchar | Questa è una stringa di caratteri con larghezza variabile | 0 caratteri | 8000 caratteri | n byte + 2 byte |
varchar (max) | Questa è una stringa di caratteri con una larghezza variabile. Memorizza un massimo di 1.073.741.824 caratteri. | 0 caratteri | 2 31 caratteri | n byte + 2 byte |
testo | Questa è una stringa di caratteri con una larghezza variabile. Memorizza un massimo di 2 GB di dati di testo. | 0 caratteri | 2.147.483.647 caratteri | n byte + 4 byte |
Query di esempio:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype'PRINT @Datatype_Char
Output: questo è il tipo di dati del carattere
Stringhe di caratteri Unicode
Questa categoria memorizza l'intera gamma di caratteri Unicode che utilizza la codifica dei caratteri UTF-16. Tipi di dati stringa di caratteri Unicode
Tipo di dati | Descrizione | Limite inferiore | Limite superiore | Memoria |
---|---|---|---|---|
nchar | È una stringa Unicode di larghezza fissa | 0 caratteri | 4000 caratteri | 2 volte n byte |
nvarchar | È una stringa Unicode di larghezza variabile | 0 caratteri | 4000 caratteri | 2 volte n byte + 2 byte |
ntext | È una stringa Unicode di larghezza variabile | 0 caratteri | 1.073.741.823 car | 2 volte la lunghezza della stringa |
Query di esempio:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'PRINT @Datatype_nChar
Output: questo è nCharacter Datatype
Stringa binaria
Questa categoria contiene una stringa binaria di lunghezza fissa e variabile. Tipi di dati di stringa binaria
Tipo di dati | Descrizione | Limite inferiore | Limite superiore | Memoria |
---|---|---|---|---|
binario | È una stringa binaria a larghezza fissa. Memorizza un massimo di 8.000 byte. | 0 byte | 8000 byte | n byte |
varbinary | Questa è una stringa binaria di larghezza variabile. Memorizza un massimo di 8.000 byte | 0 byte | 8000 byte | La lunghezza effettiva dei dati immessi + 2 byte |
Immagine | Questa è una stringa binaria di larghezza variabile. Memorizza un massimo di 2 GB. | 0 byte | 2.147.483.647 byte |
Query di esempio:
DECLARE @Datatype_Binary BINARY(2) = 12;PRINT @Datatype_Binary
Uscita: 0x000C
Altri tipi di dati
Questi sono altri diversi tipi di dati con la descrizione di seguito-
Tipo di dati | Descrizione |
---|---|
Cursore | Il relativo output è una colonna di sp_cursor_list e sp_describe_cursor. Restituisce il nome della variabile cursore. |
Versione riga | La versione timbra le righe della tabella. |
Hierarchyid | Questo tipo di dati rappresenta una posizione nella gerarchia |
Identificativo unico | Conversione da un'espressione di caratteri. |
Sql_variant | Memorizza i valori dei tipi di dati supportati da SQL Server. |
XML | Memorizza i dati XML in una colonna. |
Tipo di geometria spaziale | Rappresenta i dati in un sistema di coordinate piatte. |
Tipo di geografia spaziale | Rappresenta i dati nel sistema di coordinate round-earth. |
tavolo | Memorizza un set di risultati per l'elaborazione successiva. |
Fatti interessanti!
- Il tipo di dati CHAR è più veloce di VARCHAR durante il recupero dei dati.
Sommario:
- Ogni colonna nelle tabelle definisce con il proprio tipo di dati durante la creazione della tabella.
- Ci sono sei categorie principali e un'altra categoria miscellanea. Altre miscellanee hanno nove sottocategorie di tipi di dati disponibili.