Omet navegació

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