header | marp | footer | theme |
---|---|---|---|
Fondamenti di basi di dati |
true |
Mauro Bogliaccino |
Gaia |
I tipi di dato in un database rappresentano il formato e il tipo di informazioni che possono essere memorizzate in una colonna di una tabella. I database relazionali offrono una varietà di tipi di dato che consentono di gestire diverse informazioni. Ecco alcuni tipi di dato comuni:
- **Interi (Integer)
INT
: Numero intero.SMALLINT
: Piccolo numero intero.BIGINT
: Grande numero intero.
- **Decimali e Numeri a Virgola Mobile
DECIMAL
oNUMERIC
: Numero decimale o numerico.FLOAT
: Numero a virgola mobile a precisione singola.DOUBLE
oREAL
: Numero a virgola mobile a precisione doppia.
- **Caratteri e Stringhe
CHAR(n)
: Stringa di lunghezza fissa con lunghezza n.VARCHAR(n)
: Stringa di lunghezza variabile con lunghezza massima n.TEXT
: Stringa di lunghezza variabile con lunghezza massima più grande.
- **Data e Ora
DATE
: Data.TIME
: Ora del giorno.DATETIME
oTIMESTAMP
: Data e ora combinate.
- **Booleani
BOOLEAN
oBOOL
: Valore booleano (vero/falso).
- **Bit e Byte
BIT
: Un singolo bit di informazione.BYTEA
(in alcuni database): Sequenza di byte.
- **Enumerazioni e Tipi Personalizzati
ENUM
(in alcuni database): Elenco di valori consentiti per una colonna.- Tipi personalizzati definiti dall'utente in alcuni database.
- **Array
ARRAY
(in alcuni database): Collezione ordinata di valori dello stesso tipo.
- **Geospaziali
- Tipi di dato specializzati per gestire dati geografici e geospaziali, come
POINT
,LINESTRING
,POLYGON
(in alcuni database).
- Tipi di dato specializzati per gestire dati geografici e geospaziali, come
- **JSON e Documenti
JSON
(in alcuni database): Per memorizzare dati in formato JSON.BSON
(in alcuni database): Formato binario di JSON.
- **UUID
UUID
(Universally Unique Identifier): Identificatore univoco.
- **Money
MONEY
: Tipi di dato per rappresentare valori monetari.
Questi sono solo alcuni esempi di tipi di dato comuni. La disponibilità dei tipi di dato può variare leggermente tra i diversi database relazionali. Alcuni database forniscono anche estensioni e tipi di dato specializzati in base alle esigenze specifiche.
I tipi di dato in SQL definiscono il formato e le proprietà dei dati memorizzati in colonne specifiche di una tabella. Di seguito sono descritti i tipi di dato principali utilizzati nei database SQL e la loro funzionalità:
Tipo | Descrizione |
---|---|
CHARACTER(n) o CHAR(n) |
Stringa di lunghezza fissa n . |
CHARACTER VARYING(n) o VARCHAR(n) |
Stringa di lunghezza variabile con una lunghezza massima di n . |
BINARY(n) |
Stringa binaria di lunghezza fissa n . |
BINARY VARYING(n) o VARBINARY(n) |
Stringa binaria di lunghezza variabile con una lunghezza massima di n . |
Tipo | Descrizione |
---|---|
BOOLEAN |
Memorizza valori TRUE o FALSE . |
Tipo | Descrizione |
---|---|
INTEGER(p) |
Numeri interi con precisione p . |
SMALLINT |
Numeri interi con precisione fino a 5 cifre. |
INTEGER |
Numeri interi con precisione fino a 10 cifre. |
BIGINT |
Numeri interi con precisione fino a 19 cifre. |
DECIMAL(p,s) |
Numeri decimali esatti con precisione totale p e scala s (es. DECIMAL(6,2) significa 4 cifre prima del punto decimale e 2 dopo). |
NUMERIC(p,s) |
Stesso comportamento di DECIMAL . |
FLOAT(p) |
Numeri a virgola mobile con precisione approssimativa, controllata da p (es. FLOAT(10) definisce la precisione minima del numero). |
REAL |
Numeri a virgola mobile con precisione di 7 cifre. |
DOUBLE PRECISION |
Numeri a virgola mobile con precisione di 16 cifre. |
Tipo | Descrizione |
---|---|
DATE |
Memorizza una data composta da giorno, mese e anno (YYYY-MM-DD ). |
TIME |
Memorizza un'ora composta da secondi, minuti e ore (HH:MM:SS ). |
TIMESTAMP |
Memorizza data e ora complete (YYYY-MM-DD HH:MM:SS ). |
INTERVAL |
Rappresenta un periodo di tempo composto da valori numerici come giorni, mesi, ore o secondi. |
Tipo | Descrizione |
---|---|
ARRAY |
Una collezione ordinata di elementi con una lunghezza definita. |
MULTISET |
Una collezione non ordinata di elementi con lunghezza variabile. |
Tipo | Descrizione |
---|---|
XML |
Utilizzato per memorizzare dati in formato XML fino a 2GB. |
Sebbene i tipi di dato abbiano nomi simili, i loro comportamenti e limiti possono variare tra i diversi sistemi di database. Di seguito sono riportati i tipi comuni mappati su database popolari:
Tipo di Dato | Access | SQL Server | Oracle | MySQL | PostgreSQL |
---|---|---|---|---|---|
Booleano | Yes/No |
Bit |
Byte |
N/A | Boolean |
Intero | Number |
Int |
Number |
Int |
Integer |
Float | Number |
Float |
Number |
Float |
Numeric |
Stringa (Fissa) | N/A | Char |
Char |
Char |
Char |
Stringa (Variabile) | Text |
Varchar |
Varchar2 |
Varchar |
Varchar |
Oggetto Binario | OLE Object |
Binary /Image |
Blob |
Blob /Text |
Binary |
- I tipi di dato definiscono la natura dei dati memorizzati nelle colonne SQL.
- Ogni colonna deve essere associata a un tipo di dato al momento della creazione della tabella.
- Tipi di dato comuni includono stringhe (
CHAR
,VARCHAR
), numeri (INT
,FLOAT
,DECIMAL
), e tipi temporali (DATE
,TIMESTAMP
). - Tipi di dato avanzati come
ARRAY
,MULTISET
oXML
sono specifici per casi d'uso particolari. - Diversi database possono implementare gli stessi tipi di dato in modo differente.