Sie sind auf Seite 1von 14

Tipos de datos de Postgres

Postgres tiene un conjunto muy completo de tipos de datos. el comando \dt de psql lista los
tipos de datos disponibles. Vamos a ver ahora los ms utilizados.

El tipo boolean o bool almacena valores lgicos. Los valores TRUE, 't', 'true', 'y', 'yes'
y '1' son tomados como cierto y pueden ser nulos.
El tipo smallint o int2 almacena enteros con signo entre -32768 y 32767.
El tipo integer, int o int4 almacena enteros con signo de aproximadamente 18 dgitos.
El tipo bit almacena uno de los valores 0 o 1. Las constantes de tipo bit se escriben
B'0' y B'1'.
El tipo bit varying o varbit(n) almacena secuencias de bits. Las constantes de este
tipo se escriben B'011'
El tipo numeric(presicin, escala) almacena nmeros exactos con la presicin
indicada.
El tipo real o float4 almacena nmeros punto flotante de 4 bytes.
El tipo double precision o float8 almacena nmeros punto flotante de 8 bytes.
El tipo money es equivalente a numeric(9,2) y ocupa 4 bytes, pero se desaconseja su
utilizacin.
El tipo timestamp o datetime almacena fechas y horas entre 4713 A. C. y 1465001
con una resolucin de un milisegundo.
El tipo interval almacena un intervalo de aproximadamente +/-178 millones de aos
con resolucin de un milisegundo.
El tipo date almacena fechas entre 4713 a. C. y 32767 con resolucin de un da.
El tipo time almacena la hora del da entre 0 y 23:59:59.99 con resolucin de 1
microsegundo.
El tipo char, character o bpchar almacena un caracter.
El tipo char(n) o bpchar(n) almacena exactamente n caracteres con relleno de
espacios si se almacenan menos caracteres.
El tipo character varying(n) o varchar(n) almacena un nmero variable de caracteres
hasta un mximo de n.
El tipo text almacena texto de tamao arbitrario.

TIPOS DE DATOS POSTGRES


Tipos de datos de propsito general en PostgreSQL

A continuacin mostramos un listado de los tipos de datos (data types) del motor de base de
datos gratuito PostgreSQL. Mostramos los tipos de datos de carcter o propsito general, los
ms habituales:

Tipo de datos Alias Descripcin

bigint int8 Entero con signo de 8 bytes

bigserial serial8 Autoincremento entero de 8 bytes

bit Cadena de bit de longitud fija

bit varying(n) varbit(n) Cadena de bit de longitud variable

boolean bool Lgico (true/false)

box Rectngulo en el plano

bytea Datos binarios

Cadena de caracteres de longitud


character varying(n) varchar(n)
variable

character(n) char(n) Cadena de caracteres de longitud fija

cidr Direccin IP de red (IPv4 IPv6)

circle Crculo en el plano

date Fecha (ao, mes, da)

Nmero de punto flotante de precisin


double precision float8
doble

Direccin de un host de red (IPv4 or


inet
IPv6)

integer int, int4 Enterio con signo, 4 bytes

interval(p) Intervalo de tiempo


Tipo de datos Alias Descripcin

Lnea infinita en el plano (no se aplica


line
completamente)

lseg Segmento de lnea en el plano

Direccin MAC de tarjeta o dispositivo


macaddr
de red

money Moneda

decimal Numrico exacto con precisin


numeric [ (p, s) ]
[ (p, s) ] modificable

Trazado geomtrico abierto y cerrado


path
en el plano

point Punto geomtrico en el plano

Polgono cerrado geomtrico en el


polygon
plano

Nmero de punto flotante de precisin


real float4
simple

smallint int2 Entero con signo de 2 bytes

serial serial4 Autoincremento, entero de 4 bytes

Cadena de caracteres de longitud


text
variable

time [ (p) ] [sin zona


Hoa del da
horaria]

time [ (p) ] con zona


timetz Hora del da, incluyendo la zona horaria
horaria

timestamp [ (p) ] [sin


timestamp Fecha y hora
zona horaria]

timestamp [ (p) ] con


timestamptz Fecha y hora incluyendo la zona horaria
zona horaria
Tipos numricos en PostgreSQL
A continuacin mostramos los tipos de datos numricos de PostgreSQL:

Tama
Nombre Descripcin Rango
o

2
smallint Entero de rango pequeo De -32768 a +32767
bytes

4 Seleccin habitual para De -2147483648 a


integer
bytes tipos enteros +2147483647

8 De -9223372036854775808 a
bigint Entero de rango largo
bytes 9223372036854775807

variabl Precisin especificada por


decimal Sin lmite
e el usuario, exacto

variabl Precisin especificada por


numeric Sin lmite
e el usuario, exacto

4 Variable/precisin,
real 6 dgitos decimales de precisin
bytes inexacto

double 8 Variable/precisin, 15 dgitos decimales de


precision bytes inexacto precisin

4
serial Autoincremento simple De 1 a 2147483647
bytes

8
bigserial Autoincremento largo De 1 a 9223372036854775807
bytes

Tipos de datos monetarios (moneda) en PostgreSQL


El tipo de datos de PostgreSQL para valores de moneda es:
Nombre Tamao Descripcin Rango

money 4 bytes Moneda De -21474836.48 a +21474836.47

Tipos de datos carcter en PostgreSQL


Los tipos de datos del motor de base de datos gratuito y open source PostgreSQL de tipo
carcter son:

Nombre Descripcin

character varying(n), varchar(n) De longitud variable, con lmite

character(n), char(n) De longitud fija

text De longitud variable, ilimitado

Tipos de datos binarios en PostgreSQL


El tipo de datos binario de PostgreSQL es:

Nombr
Tamao Descripcin
e

4 bytes adems de la cadena binaria Cadena binaria de longitud


bytea
actual variable

Tipos de datos Fecha/Hora en PostgreSQL


Los tipos de datos de fecha y hora del motor de base de datos PostgreSQL son:

Tama
Nombre Descripcin Valor bajo Valor alto Resolucin
o

timestamp 8 Fecha y hora 4713 BC 5874897 1


Tama
Nombre Descripcin Valor bajo Valor alto Resolucin
o

[ (p) ] [ sin microsegundo /


bytes AD
zona horaria ] 14 dgitos

timestamp Fecha y hora 1


8 5874897
[ (p) ] con con zona 4713 BC microsegundos
bytes AD
zona horaria horaria / 14 dgitos

12 Intervalo de -178000000 17800000 1


interval [ (p) ]
bytes hora aos 0 aos microsegundo

4
date Slo fecha 4713 BC 32767 AD 1 da
bytes

time [ (p) ]
8 Slo hora del 23:59:59.9 1
[ sin zona 00:00:00.00
bytes da 9 microsegundo
horaria]

Horas del da
time [ (p) ] con 12 00:00:00.00 23:59:59.9 1
con zona
zona horaria bytes +12 9-12 microsegundo
horaria

Tipos de datos geomtricos en PostgreSQL


Los tipos de datos para valores geomtricos del motor de base de datos PostgreSQL son:

Nombr
Tamao Representacin Descripcin
e

point 16 bytes Punto del plano (x,y)

line 32 bytes Lnea infinita en el plano ((x1,y1),(x2,y2))

lseg 32 bytes Segmento de lnea en el plano ((x1,y1),(x2,y2))

box 32 bytes Rectngulo en el plano ((x1,y1),(x2,y2))

16+16n Trazado geomtrico cerrado en el


path ((x1,y1),...)
bytes plano

path 16+16n Trazado geomtrico abierto en el [(x1,y1),...]


Nombr
Tamao Representacin Descripcin
e

bytes plano

polygo 40+16n
Plgono (similar a trazado cerrado) ((x1,y1),...)
n bytes

<(x,y),r> (centro y
circle 24 bytes Crculo
radio)

Tipos de datos de direcciones de red en PostgreSQL


Los tipos de datos para direcciones de red y mac de PostgreSQL son:

Nombre Tamao Descripcin

cidr 12 24 bytes Redes IPv4 IPv6

inet 12 24 bytes Hosts y redes IPv4 IPv6

macaddr 6 bytes Direccin MAC

Fuente: http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=499

Tipos de datos relevantes en PostgreSQL


Como todos los manejadores de bases de datos, PostgreSQL implementa los tipos
de datos definidos para el estndar SQL3 y aumenta algunos otros. Los definidos
por el estndar SQL3 se muestran en la tabla 8.1, mientras que las extensiones se
encuentran en la tabla 8.2.

Tabla: Tipos de datos del estndar SQL3 en PostgreSQL


Tipos de datos del estndar SQL3 en PostgreSQL

Tipo en Postgres Correspondiente en SQL3 Descripcin

valor lgico o booleano


bool boolean
(true/false)

cadena de carcteres de
char(n) character(n)
tamao fijo

date date fecha (sin hora)

nmero de punto flotante con


float4/8 float(86#86)
precisin 86#86

nmero de punto flotante de


float8 real, double precision
doble precisin

int2 smallint entero de dos bytes con signo

entero de cuatro bytes con


int4 int, integer
signo

int4 decimal(87#87) nmero exacto con 88#88

int4 numeric(87#87) nmero exacto con 89#89

money decimal(9,2) cantidad monetaria

hora en horas, minutos,


time time
segundos y centsimas

timespan interval intervalo de tiempo

timestamp timestamp with time zone fecha y hora con zonificacin

cadena de carcteres de
varchar(n) character varying(n)
tamao variable
Tabla 8.2: Tipos de datos extendidos por PostgreSQL

Tipos de datos extendidos en PostgreSQL

Tipo Descripcin

box caja rectangular en el plano

cidr direccin de red o de host en IP versin 4

circle crculo en el plano

inet direccin de red o de host en IP versin 4

int8 entero de ocho bytes con signo

line lnea infinita en el plano

lseg segmento de lnea en el plano

path trayectoria geomtrica, abierta o cerrada, en el plano

point punto geomtrico en el plano

polygon trayectoria geomtrica cerrada en el plano

serial identificador numerico nico

Tabla 8.3: Tipos de datos de PostgreSQL


Tipo Descripcin

SET conjunto de tuplas

abstime fecha y hora absoluta de rango limitado (Unix system time)

aclitem lista de control de acceso

bool booleano 'true'/'false'

box rectngulo geomtrico '(izquierda abajo, derecha arriba)'

carcteres rellenos con espacios, longitud especificada al momento


bpchar
de creacin

bytea arreglo de bytes de longitud variable

char un slo carcter

command identifier type, identificador de secuencia en


cid
transacciones

cidr direccin de red

circle crculo geomtrico '(centro, radio)'

date fecha ANSI SQL 'aaaa-mm-dd'

datetime fecha y hora 'aaaa-mm-dd hh:mm:ss'

filename nombre de archivo usado en tablas del sistema

float4 nmero real de precisin simple de 4 bytes

float8 nmero real de precisin doble de 8 bytes

inet direccin de red

int2 nmero entero de dos bytes, de -32k a 32k

int28 8 numeros enteros de 2 bytes, usado internamente


int4 nmero entero de 4 bytes, -2B to 2B

int8 nmero entero de 8 bytes, 90#9018 dgitos

line lnea geomtrica '(pt1, pt2)'

lseg segmento de lnea geomtrica '(pt1, pt2)'

macaddr direccin MAC

money unidad monetaria '$d,ddd.cc'

name tipo de 31 carcteres para guardar identificadores del sistema

numeric nmero de precisin mltiple

oid tipo de identificacin de objetos

oid8 arreglo de 8 oids, utilizado en tablas del sistema

path trayectoria geomtrica '(pt1, ...)'

point punto geomtrico '(x, y)'

polygon polgono geomtrico '(pt1, ...)'

regproc procedimiento registrado

reltime intervalo de tiempo de rango limitado y relativo (Unix delta time)

smgr manejador de almacenamiento (storage manager)

text cadena de carcteres nativa de longitud variable

tid tipo de identificador de tupla, localizacin fsica de tupla

time hora ANSI SQL 'hh:mm:ss'

timespan intervalo de tiempo '@ <number> <units>'

timestamp fecha y hora en formato ISO de rango limitado


tinterval intervalo de tiempo '(abstime, abstime)'

unknown tipo desconocido

cadena de carcteres sin espacios al final, longitud especificada al


varchar
momento de creacin

xid identificador de transaccin

Coma flotante
La representacin de coma flotante (en ingls floating point, que significa punto flotante) es
una forma de notacin cientfica usada en los microprocesadores con la cual se pueden
representar nmeros racionales extremadamente grandes y pequeos de una manera muy
eficiente y compacta, y con la que se pueden realizar operaciones aritmticas. El estndar
para la representacin en coma flotante es el IEEE 754.

Los nmeros de coma flotante decimales normalmente se expresan en notacin


cientfica con un punto explcito siempre entre el primer y el segundo dgitos. El
exponente o bien se escribe explcitamente incluyendo la base, o se usa una e para
separarlo de la mantisa.
Mantisa Exponente Notacin cientfica Valor en punto fijo

1.5 4 1.5 104 15000

-2.001 2 -2.001 102 -200.1

5 -3 5 10-3 0.005

6.667 -11 6.667e-11 0.0000000000667

El estndar

Casi todo el hardware y lenguajes de programacin utilizan nmeros de punto flotante


en los mismos formatos binarios, que estn definidos en el estndar IEEE 754. Los
formatos ms comunes son de 32 o 64 bits de longitud total:

Nmero Nmero
Bits Bits Bits del
Formato ms ms
totales significativos exponente
pequeo grande

Precisin ~3.4
32 23 + 1 signo 8 ~1.2 10-38
sencilla 1038

Precisin ~5.0 10- ~1.8


64 52 + 1 signo 11
doble 324
10308

Hay algunas pecularidades:

La secuencia de bits es primero el bit del signo, seguido del exponente y


finalmente los bits significativos.

El exponente no tiene signo; en su lugar se le resta un desplazamiento (127


para sencilla y 1023 para doble precisin). Esto, junto con la secuencia de bits,
permite que los nmeros de punto flotante se puedan comparar y ordenar
correctamente incluso cuando se interpretan como enteros.

Se asume que el bit ms significativo de la mantisa es 1 y se omite, excepto


para casos especiales.

Hay valores diferentes para cero positivo y cero negativo. Estos difieren en el
bit del signo, mientras que todos los dems son 0. Deben ser considerados
iguales aunque sus secuencias de bits sean diferentes.

Hay valores especiales no numricos (NaN, not a number en ingls) en los


que el exponente es todo unos y la mantisa no es todo ceros. Estos valores
representan el resultado de algunas operaciones indefinidas (como multiplicar
0 por infinito, operaciones que involucren NaN, o casos especficos). Incluso
valores NaN con idntica secuencia de bits no deben ser considerados iguales.

Das könnte Ihnen auch gefallen