Tipi di dati SQL

Tipi di dati e range utilizzati da Microsoft Access, MySQL e SQL Server.

Tipi di dati Microsoft Access

Tipo di dati Descrizione Memorizzare
Text Per testo o combinazione di testo e numeri. Massimo 255 caratteri.  
Memo

Memo utilizzato per un gran numero di testo. Può archiviare fino a 65,536 caratteri.

Nota: I campi memo non possono essere ordinati. Tuttavia, sono cercabili.

 
Byte Permette numeri tra 0 e 255. 1 byte
Integer Permette numeri tra -32,768 e 32,767. 2 byte
Long Permette tutti i numeri tra -2,147,483,648 e 2,147,483,647. 4 byte
Single Punto fluttuante a singola precisione. Gestisce la maggior parte delle cifre decimali. 4 byte
Double Punto fluttuante a doppia precisione. Gestisce la maggior parte delle cifre decimali. 8 byte
Currency

Per la valuta. Supporta 15 cifre decimali, più 4 decimali.

Suggerimento: Puoi scegliere la valuta del paese.

8 byte
AutoNumber Il campo AutoNumber assegna automaticamente un numero a ogni record, di solito inizia da 1. 4 byte
Data/Time Per data e ora 8 byte
Yes/No

Campo logico, può essere visualizzato come Yes/No, True/False o On/Off.

Nel codice, utilizzare i costanti True e False (equivalenti a 1 e 0)

Nota: Non sono ammessi valori Null nei campi Yes/No

1 bit
Ole Object Può archiviare immagini, audio, video o altri BLOBs (Oggetti di Grande Dimensione Binari) Fino a 1GB
Hyperlink Contiene link a altri file, inclusi siti web.  
Wizard di Lookup Permette di creare una lista di opzioni da scegliere tra la seguente lista. 4 byte

Tipi di dati MySQL

In MySQL ci sono tre tipi principali: testo, numerico e data/ora.

Tipo di testo:

Tipo di dati Descrizione
CHAR(DECIMAL() Salva stringhe di lunghezza fissa (può contenere lettere, numeri e caratteri speciali). Specifica la lunghezza della stringa tra parentesi. Massimo 255 caratteri.
VARCHAR(DECIMAL()

Salva stringhe di lunghezza variabile (può contenere lettere, numeri e caratteri speciali). Specifica la lunghezza massima della stringa tra parentesi. Massimo 255 caratteri.

Nota: Se la lunghezza del valore è superiore a 255, viene convertito in tipo TEXT.

TINYTEXT Memorizza stringhe con lunghezza massima di 255 caratteri.
TEXT Memorizza stringhe con lunghezza massima di 65,535 caratteri.
BLOB Utilizzato per BLOBs (Oggetti di Grandezza Large Binari). Memorizza fino a 65,535 byte di dati.
MEDIUMTEXT Memorizza stringhe con lunghezza massima di 16,777,215 caratteri.
MEDIUMBLOB Utilizzato per BLOBs (Oggetti di Grandezza Large Binari). Memorizza fino a 16,777,215 byte di dati.
LONGTEXT Memorizza stringhe con lunghezza massima di 4,294,967,295 caratteri.
LONGBLOB Utilizzato per BLOBs (Oggetti di Grandezza Large Binari). Memorizza fino a 4,294,967,295 byte di dati.
ENUM(x,y,z,ecc.)

Ti permette di inserire una lista di valori possibili. Puoi elencare fino a 65535 valori nella lista ENUM. Se il valore da inserire non esiste nella lista, viene inserito un valore vuoto.

Nota: Questi valori sono memorizzati nell'ordine in cui vengono inseriti.

Puoi inserire i valori possibili in questo formato: ENUM('X','Y','Z')

SET Simile a ENUM, SET può contenere al massimo 64 elementi di lista, ma SET può memorizzare un valore o più valori.

Tipo Number:

Tipo di dati Descrizione
TINYINT(DECIMAL() -128 a 127 comune. Da 0 a 255 unsigned*. La massima位数 è specificata tra parentesi.
SMALLINT(DECIMAL() -32768 a 32767 comune. Da 0 a 65535 unsigned*. La massima位数 è specificata tra parentesi.
MEDIUMINT(DECIMAL() -8388608 a 8388607 comune. Da 0 a 16777215 unsigned*. La massima位数 è specificata tra parentesi.
INT(DECIMAL() -2147483648 a 2147483647 di solito. Da 0 a 4294967295 unsigned*. La massima位数 è specificata tra parentesi.
BIGINT(DECIMAL() -9223372036854775808 a 9223372036854775807 di solito. Da 0 a 18446744073709551615 unsigned*. La massima位数 è specificata tra parentesi.
FLOAT(DECIMAL(,size) Piccoli numeri con punto decimale fluttuante. La massima位数 è specificata tra parentesi. La massima位数 a destra del punto decimale è specificata nel parametro d.
DOUBLE(DECIMAL(,size) DOUBLE(
Numeri grandi con punto decimale fluttuante. Specificare il numero massimo di cifre tra parentesi. Specificare il numero massimo di cifre a destra del punto decimale nel parametro d.DECIMAL(,size) d

Come tipo DOUBLE memorizzato come stringa, è permesso un punto decimale fisso.

Tipo di dati Date:

Tipo di dati Descrizione
* Questi tipi di interi hanno opzioni aggiuntive UNSIGNED. Di solito, gli interi possono essere numeri negativi o positivi. Se si aggiunge l'attributo UNSIGNED, l'intervallo partirà da 0 invece di un numero negativo.

DATE()

Data. Formato: YYYY-MM-DD

Nota: Intervallo di supporto da '1000-01-01' a '9999-12-31'.

DATETIME()

* Combinazione di data e ora. Formato: YYYY-MM-DD HH:MM:SS

Nota: Intervallo di supporto da '1000-01-01 00:00:00' a '9999-12-31 23:59:59'.

TIMESTAMP()

* Orario. Il valore TIMESTAMP utilizza la descrizione dell'era Unix ('1970-01-01 00:00:00' UTC) fino ad oggi. Formato: YYYY-MM-DD HH:MM:SS

TIME()

Tempo. Formato: HH:MM:SS

Nota: Intervallo di supporto da '-838:59:59' a '838:59:59'.

YEAR()

Anno in formato a 2 o 4 cifre.

Nota: Valori permessi per il formato a 4 cifre: 1901-2155. Valori permessi per il formato a 2 cifre: 70-69, che rappresentano il periodo dal 1970 al 2069.

* Anche se DATETIME e TIMESTAMP restituiscono lo stesso formato, funzionano in modo molto diverso. In INSERT o UPDATE query, TIMESTAMP imposta automaticamente il valore corrente della data e dell'ora. TIMESTAMP accetta anche diversi formati, come YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD o YYMMDD.

Tipo di dati SQL Server

Stringa di caratteri:

Tipo di dati Descrizione Memorizzare
char(n) Stringa di lunghezza fissa. Massimo 8,000 caratteri. n
varchar(n) Stringa di lunghezza variabile. Massimo 8,000 caratteri.  
varchar(max) Stringa di lunghezza variabile. Massimo 1,073,741,824 caratteri.  
text Stringa di lunghezza variabile. Massimo 2GB di dati di caratteri.  

Stringa Unicode:

Tipo di dati Descrizione Memorizzare
nchar(n) Dati Unicode a lunghezza fissa. Massimo 4,000 caratteri.  
nvarchar(n) Dati Unicode a lunghezza variabile. Massimo 4,000 caratteri.  
nvarchar(max) Dati Unicode a lunghezza variabile. Massimo 536,870,912 di caratteri.  
ntext Dati Unicode a lunghezza variabile. Massimo 2GB di dati di carattere.  

Tipo Binary:

Tipo di dati Descrizione Memorizzare
bit Permette 0, 1 o NULL  
binary(n) Dati binari a lunghezza fissa. Massimo 8,000 byte.  
varbinary(n) Dati binari a lunghezza variabile. Massimo 8,000 byte.  
varbinary(max) Dati binari a lunghezza variabile. Massimo 2GB byte.  
image Dati binari a lunghezza variabile. Massimo 2GB.  

Tipo Number:

Tipo di dati Descrizione Memorizzare
tinyint Permette tutti i numeri tra 0 e 255. 1 byte
smallint Permette tutti i numeri tra -32,768 e 32,767. 2 byte
int Permette tutti i numeri tra -2,147,483,648 e 2,147,483,647. 4 byte
bigint Permette tutti i numeri tra -9,223,372,036,854,775,808 e 9,223,372,036,854,775,807. 8 byte
decimal(p,s)

Numeri a precisione fissa e a proporzione. Permette numeri tra -10^38 +1 e 10^38 -1.

Il parametro p indica il numero massimo di posizioni decimali che possono essere memorizzate (sia a sinistra che a destra del punto decimale). p deve essere un valore tra 1 e 38. Il valore predefinito è 18.

Il parametro s indica il numero massimo di posizioni decimali memorizzate alla destra del punto decimale. s deve essere un valore tra 0 e p. Il valore predefinito è 0.

5-17 byte
numeric(p,s)

Numeri a precisione fissa e a proporzione. Permette numeri tra -10^38 +1 e 10^38 -1.

Il parametro p indica il numero massimo di posizioni decimali che possono essere memorizzate (sia a sinistra che a destra del punto decimale). p deve essere un valore tra 1 e 38. Il valore predefinito è 18.

Il parametro s indica il numero massimo di posizioni decimali memorizzate alla destra del punto decimale. s deve essere un valore tra 0 e p. Il valore predefinito è 0.

5-17 byte
smallmoney Dati monetari tra -214,748.3648 e 214,748.3647. 4 byte
money Dati monetari tra -922,337,203,685,477.5808 e 922,337,203,685,477.5807. 8 byte
float(n)

Numeri a precisione floating point tra -1.79E + 308 e 1.79E + 308.

Il parametro n indica se il campo memorizza 4 byte o 8 byte. float(24) memorizza 4 byte, mentre float(53) memorizza 8 byte. Il valore predefinito di n è 53.

4 o 8 byte
real Numeri con precisione a virgola mobile da -3.40E + 38 a 3.40E + 38. 4 byte

Tipo di dati Date:

Tipo di dati Descrizione Memorizzare
datetime Dal 1 gennaio 1753 al 31 dicembre 9999, con precisione di 3.33 millisecondi. 8 byte
datetime2 Dal 1 gennaio 1753 al 31 dicembre 9999, con precisione di 100 nanosecondi. 6-8 byte
smalldatetime Dal 1 gennaio 1900 al 6 giugno 2079, con precisione di 1 minuto. 4 byte
date Memorizzare solo la data. Dal 1 gennaio 0001 al 31 dicembre 9999. 3 byte
time Memorizzare solo l'ora. Precisione di 100 nanosecondi. 3-5 byte
datetimeoffset Come datetime2, con offset di fuso orario. 8-10 byte
timestamp Memorizzare un numero unico, che viene aggiornato ogni volta che viene creato o modificato una riga. Il timestamp è basato sull'orologio interno e non corrisponde all'ora reale. Ogni tabella può avere solo una variabile timestamp.  

Altri tipi di dati:

Tipo di dati Descrizione
sql_variant Memorizzare dati di tipo diverso fino a 8,000 byte, eccetto text, ntext e timestamp.
uniqueidentifier Memorizzare l'identificatore globale (GUID).
xml Memorizzare dati formattati in XML. Massimo 2GB.
cursor Memorizzare i riferimenti ai puntatori utilizzati per le operazioni del database.
table Memorizzare il risultato del set, per il trattamento successivo.