[Pgsql-ayuda] campos numericos

Antonio Castro acastro@ciberdroide.com
Thu, 3 Jan 2002 10:09:16 +0100 (CET)


On Wed, 2 Jan 2002, Gunnar Wolf wrote:

> > Y la otra pregunta es, si quiero definir un campo numerico que solo tie=
ne un
> > digito, o sea puede tener datos del 0 al 9, tengo que definirlo como in=
t2? o
> > sea tener casi 5 digitos cuando solo quiero usar 1? o puedo definir cam=
pos de
> > otro tipo que me permita manejar la longitud de los campos numericos? o=
 sea,
> > tengo campos numericos de 6 dijitos y es un campo fijo en cantidad de
> > caracteres, tengo que definir forzosamente int8 que tiene mayor cantida=
d de
> > digitos?, puedo definir un campo entero con x cantidad de digitos??...
>=20
> 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=E1ci=
l para la
> m=E1quina no tener que andar moviendo bits fraccionarios de palabra.

Bueno int2 parece una muy buena soluci=F3n especialmente para la velocidad
de c=E1lculo, pero la diferencia de velocidad podr=EDa resultar poco import=
ante
seg=FAn el caso. Quiz=E1s te interese m=E1s optimizar espacio. Puedes usar =
en ese=20
caso un numeric(n,0) en realidad est=E1 para eso. La forma de utilizarlo en=
=20
una query donde necesites usarlo en una operaci=F3n aritm=E9tica con otro t=
ipo
de dato num=E9rico ser=EDa con un cast. La diferencia entre un decimal(n,0)=
 y
un numeric(n,0) la desconozco pero creo haber leido que numeric es m=E1s
corriente o m=E1s recomendable aunque no recuerdo la raz=F3n.

La soluci=F3n =F3ptima depende de cada caso. Haz algunas pruebas.



Un saludo

Antonio Castro

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--=
+
        /\     /\      Ciberdroide Inform=E1tica (Tienda de Linux)
          \\W//            <<< http://www.ciberdroide.com >>>
=09 _|0 0|_                                                   =20
+-oOOO--(___o___)--OOOo----------------------------------------------------=
+=20
|  . . . . U U . . . . Antonio Castro Snurmacher  acastro@ciberdroide.com  =
| =20
|  . . . . . . . . . .                                                     =
|=20
+()()()----------()()()----------------------------------------------------=
+
| *** 1.700 sitios clasificados por temas sobre Linux en ***Donde_Linux*** =
|
| <<< http://www.ciberdroide.com/misc/donde/dondelinux.html >>>            =
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--=
+