Fondamentalmente PostgreSQL gestisce quattro tipologie di dato: le stringhe, i valori numerici, le date e i valori booleani o logici. La capacità di distinguere tra tipi diversi è particolarmente importante, dato che consente di ottimizzare l’allocazione dei dati risparmiando spazio e velocizzando le operazioni di elaborazione.
I tipi di dato numerici si riferiscono a due principali sottocategorie: i numeri interi e i numeri decimali, questi ultimi sono detti anche numeri in "virgola mobile". Nello specifico, riportiamo alcune tipologie di dato intero:
- INTEGER: numero intero costituito al massimo da 9 cifre.
- SMALLINT: numero intero per definizione più piccolo di quello esprimibile tramite il tipo INTEGER.
- FLOAT: espresso singolarmente indica un numero in virgola mobile; FLOAT(n): indica invece un numero in virgola mobile della lunghezza di n bit.
- REAL: è anch’esso un numero in virgola mobile ma espresso in teoria con maggiore precisione rispetto a FLOAT.
- DOUBLE PRECISION: è un numero in virgola mobile in pratica equivalente al tipo REAL.
Riportiamo alcuni esempi di dato stringa:
- CHAR: indica un singolo carattere; CHAR(n) indica invece una stringa della lunghezza fissa di n caratteri.
- VARCHAR(n): indica una stringa di lunghezza variabile composta al massimo da n caratteri.
- DATE: indica una data intera completa di giorno, mese ed anno.
- TIMESTAMP: indica un’informazione contenente data e ora.
- TIME: indica un orario completo di ore, minuti ed secondi.
- INTERVAL: indica un intervallo di tempo.
Dopo la lettura del capitolo precedente, coloro che hanno una certa pratica nell’amministrazione di basi di dati attraverso il noto DBMS open source MySQL, avranno sicuramente notato alcune affinità trà quest’ultimo e PostgreSQL.
I punti in comune sono certamente numerosi, ma lo sono anche le differenze, una tra queste è sicuramente la modalità di rappresentazione del tipo di dato, che in PostgreSQL è un pò più complessa. In ogni caso, la logica di fondo è abbastanza semplice, una volta compresa non sarà difficile sfruttarla a proprio vantaggio.
La regola fondamentale nella rappresentazione del tipo di dato in PostgreSQL è che essi vanno rappresentati in forma costante e gli unici delimitatori ammessi sono gli apici singoli.
I tipi di dato numerici vanno rappresentati in questo modo:
`numero'
Per cui avremo, per esempio, `1000′, nel caso di un INTEGER (oppure `-1000′ se negativo); nello stesso modo avremo, per esempio `- 58.9′ nel caso di un numero in virgola mobile, sia esso FLOAT o REAL.
Diversa la modalità di rappresentazione utilizzata per le stringhe:
`'stringa''
Per cui avremo `’albero” o `’}☻ôqÕ” identificati come stringhe; la modalità non cambia al variare del tipo stringa, quindi non avremo differenze tra CHAR e VARCHAR.
Anche le date hanno una propria sintassi rappresentativa:
`'data''
Per cui avremo `’22.11.2005” nel caso di una data (dato DATE), `’17:57:51” nel caso di un orario (dato TIME) oppure, `’22.11.2005 17:57:51” nel caso di un TIMESTAMP.
Fa eccezione il dato INTERVAL:
`INTERVAL 'intevallo''
nella cui rappresentazione manca l’apice singolo iniziale, ad esempio: `INTERVAL ‘- 10 HOUR”.
Quando si lavora con dati di tipo booleano bisogna fare attenzione alla forma in cui viene espresso l’esito della logica binaria. Potremmo avere una forma numerica: `1′, `0′ o come stringa `’true”, `’false” (sono possibili anche `’t”, `’y”, `’yes” e `’f”, `’n”, `’no”).
In questa guida...
- 1
Introduzione a PostgreSQL
- 2
Installare PostgreSQL su Linux
- 3
Installare PostgreSQL su Windows
- 4
I tipi di dati in PostgreSQL
- 5
Rappresentazione dei dati in PostgreSQL
- 6
Gestione dei database in PostgreSQL
- 7
Gestione delle tabelle in PostgreSQL
- 8
Inserimento dei dati in PostgreSQL
- 9
Modificare e cancellare i dati in PostgreSQL
- 10
Query di selezione in PostgreSQL
- 11
PostgreSQL: Views, transactions e Cursors
- 12
PostgreSQL e PHP