[Pgsql-ayuda] campos numericos

Gunnar Wolf gwolf@campus.iztacala.unam.mx
Wed, 2 Jan 2002 17:33:56 -0600 (CST)


> Estoy definiendo mis primeras bases de datos en postgres y quisiera saber
> algunas cosas y por eso les pregunto....
>
> Quiero definir poder guardar importes, y uso decimal para crear el campo =
(no
> quiero usar el campo de importe por que me pone el signo monetario), y lo
> defino como decimal(4,2), eso me permite guardar 1234,99 o sea mil docien=
tos
> trenta y cuatro con noventa y nueve o en realidad son 2 enteros y 2 decim=
ales?

En esta no me lo creas demasiado, pero me parece que son en total cuatro
n=FAmeros, dos de ellos decimales (o sea, 2.2). Pero... As=F3mate a la
documentaci=F3n :)

> Y la otra pregunta es, si quiero definir un campo numerico que solo tiene=
 un
> digito, o sea puede tener datos del 0 al 9, tengo que definirlo como int2=
? o
> sea tener casi 5 digitos cuando solo quiero usar 1? o puedo definir campo=
s de
> otro tipo que me permita manejar la longitud de los campos numericos? o s=
ea,
> tengo campos numericos de 6 dijitos y es un campo fijo en cantidad de
> caracteres, tengo que definir forzosamente int8 que tiene mayor cantidad =
de
> digitos?, puedo definir un campo entero con x cantidad de digitos??...

int2 es un entero de dos bytes o 16 bits, o sea, de -32767 a 32767. Ahora,
para representar del 0 al 9 necesitas poco menos de 4 bits. S=ED, ocupa 4
veces tanto... Pero si vas a hacer comparaciones num=E9ricas en tu base, es
inclusive m=E1s r=E1pido usar int2 que decimal(1,0), pues es m=E1s f=E1cil =
para la
m=E1quina no tener que andar moviendo bits fraccionarios de palabra.

Sal=FA,
--
Gunnar Wolf - gwolf@campus.iztacala.unam.mx - (+52-55)5623-1118