[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 >>> =
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--=
+