3.2.1 Tipus de dades
En el moment de definir un camp haurem d'especificar obligatòriament de quin tipus serà. Ja es van veure els tipus bàsics d'Access en el tutorial del tema 5. Ara els veurem els tipus bàsics de PostgreSQL, i veurem que hi haurà molts tipus similars (com en tots els SGBD).
En el següent quadre es resumeixen els tipus de dades més importants de PostgreSQL. És un conjunt molt extens, que fins i tot pot ampliar l'usuari amb la instrucció CREATE TYPE, com veurem al final del tema. Són especialment interessants els tipus geomètrics (amb POINT, BOX,...) i el INET (adreça IP).
| TIPUS DE DADES | DESCRIPCIÓ | BYTES | |
| C A R À C T E R |
CHAR | Un caràcter. | 1 byte |
| CHAR(n) | Cadena fixa de n caràcters. | (4+n) bytes | |
| VARCHAR(n) | Cadena de caràcters de llargària variable, amb un màxim de n caràcters. S’ha d’especificar la llargària. | (4+x) bytes | |
| TEXT | Igual que l'anterior, però no s'ha d'especificar la llargària màxima. | (4+x) bytes | |
| N U M È R I C |
DECIMAL(n,d) | Número amb una precisió de n xifres, amb d decimals. Si no es posa d no hi ha decimals. La precisió màxima és de 1000 xifres. | variable |
| NUMERIC(n,d) | Igual que l'anterior | ||
| FLOAT4 , REAL |
Coma flotant de simple precisió (6 xifres decimals) | 4 bytes | |
| FLOAT8 , FLOAT , DOUBLE PRECISION |
Coma flotant doble precisió (15 xifres decimals) | 8 bytes | |
| INT2 , SMALLINT |
Enter (-32.768,32767) | 2 bytes | |
| INT4 , INT , INTEGER |
Enter (-2.147.483.648, 2.147.483.647) | 4 bytes | |
| INT8 , BIGINT |
Enter amb unes 18 xifres | 8 bytes | |
| SERIAL | Autonumèric (internament es crea una seqüència) | 4 bytes | |
| D A T A |
DATE | Tipus data. Valor mínim 1-1-4713 AC. Valor màxim 31-12-5874897 DC. | 4 bytes |
| TIME | Tipus hora. Guarda fins a la micra de segon | 8 bytes | |
| TIMESTAMP | Tipus data-hora (combinant les característiques dels dos anteriors) | 8 bytes | |
| INTERVAL | Un interval de temps (amb precisió d'un microsegon, però que pot arribar als 178.000.000 anys) | 12 bytes | |
| BOOL | Booleà, amb valors True i False | 1 byte | |
| G E O M È T R I C |
POINT | Un punt de l'espai bidimensional (x,y) (dos float8) | 16 bytes |
| LSEG | Segment de línia definit per 2 punts (x1,y1) (x2,y2) | 32 bytes | |
| BOX | Rectangle, definit pels extrems (x1,y1) (x2,y2) | 32 bytes | |
| PATH | Conjunt de punts que representen una figura oberta o tancada: (x1,y1), ..., (xn,yn) | 16+16n bytes | |
| POLYGON | Conjunt de punts que representen un figura tancada (x1,y1), ..., (xn,yn) (similar al path tancat) | 40+16n bytes | |
| CIRCLE | Cercle representat pel centre i el radi | 24 bytes | |
| INET | Adreça IP, de 4 números separats per punts, amb número de bits de la màscara separat per / | variable |
També disposarem d'un tipus enumerat. El veurem en l'última pregunta del tema.
En la documentació de PostgreSQL trobarem tots els tipus possibles: http://www.postgresql.org/docs/9.5/static/datatype.html
Llicenciat sota la Llicència Creative Commons Reconeixement NoComercial CompartirIgual 3.0