Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Como insetar un numero como 9.999¿?¿

Estas en el tema de Como insetar un numero como 9.999¿?¿ en el foro de Mysql en Foros del Web. Pues eso que lo guarde con el punto y en caso de que el campo no haya sido insetado nada no ponga por defecto 0 ...
  #1 (permalink)  
Antiguo 18/05/2010, 11:49
 
Fecha de Ingreso: febrero-2008
Mensajes: 49
Antigüedad: 16 años, 8 meses
Puntos: 0
Como insetar un numero como 9.999¿?¿

Pues eso que lo guarde con el punto y en caso de que el campo no haya sido insetado nada no ponga por defecto 0 y luego permita hacer comparaciones como <= >=. Haver quien ayuda por que hasta la coroniña de esta chorrada
  #2 (permalink)  
Antiguo 18/05/2010, 11:53
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Como insetar un numero como 9.999¿?¿

Define que el valor por defecto para el campo sea 9.999 así cuando el campo no posea valor será inicializado con el valor por defecto que hayas elegido.

Saludos!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #3 (permalink)  
Antiguo 18/05/2010, 12:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como insetar un numero como 9.999¿?¿

Los números se guardan como BINARIOS y no como cifras. El punto es un problema de representación y no de dato, por lo cual depende de la aplicación el mostrarlo de una u otra forma.
Para el caso, los valores enteros pueden ser TINYINT, SMALLINT, INT, o BIGINT, y los decimales FLOAT, DOUBLE o DECIMAL.
Infortunadamente, no está implementado en MySQL el CHECK sobre columnas, por lo que no se puede hacer que la tabla admita por defecto un valor de límites por encima o por debajo de un valor que es menor a los límites del tipo de dato. Eso lo tendrás que implementar en la aplicación y no en la base.
Esencial: No uses VARCHAR o CHAR para guardar datos numéricos, eso lo único que hará es usar más espacio para guardar el valor (un numero de 32 cifras se guarda en 8 bytes, cuando es columna numérica), y te traerá en el futuro enormes problemas en las consultas y los ordenamientos..
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 18/05/2010, 13:08
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Como insetar un numero como 9.999¿?¿

Pues que raro, mi MySQL si me deja asignar valores por defecto a los tipos de columna que mencionas.

Saludos!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #5 (permalink)  
Antiguo 18/05/2010, 13:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como insetar un numero como 9.999¿?¿

No digo que no los puedas poner. Pero si a un float le pones como valor por default '9.999', eso no significa nueve mil novecientos noventa y nueve. Significa nueve con novecientos noventa y nueve milésimos.
Son dos cifras distintas.
Todo depende de lo que le quieras poner.
Ahora bien, de lo que dice GreyFox se infiere que quiere algún valor que actúe de límite superior, y eso no le servirá, porque el límite no está dado por del default de la columna, sino por el tipo de columna...
A eso me refeiro.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 18/05/2010, 13:55
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Como insetar un numero como 9.999¿?¿

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No digo que no los puedas poner. Pero si a un float le pones como valor por default '9.999', eso no significa nueve mil novecientos noventa y nueve. Significa nueve con novecientos noventa y nueve milésimos.
Son dos cifras distintas.
Todo depende de lo que le quieras poner.
Ahora bien, de lo que dice GreyFox se infiere que quiere algún valor que actúe de límite superior, y eso no le servirá, porque el límite no está dado por del default de la columna, sino por el tipo de columna...
A eso me refeiro.
Ahora si te entendí :) gracias por la aclaración.

Saludos!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #7 (permalink)  
Antiguo 18/05/2010, 14:12
 
Fecha de Ingreso: febrero-2008
Mensajes: 49
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Como insetar un numero como 9.999¿?¿

el dilema esta en guardar una cifra cualquiera que tenga punto indicando si son miles o millones etc..... con float la guarda tal cual y la muestra tal cual , el dilema es que en caso de que no insertes nada, te inserta por defecto un 0 y eso es la cuestion a resolver Gracias a todos por buestra colaboracion
  #8 (permalink)  
Antiguo 18/05/2010, 14:43
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Como insetar un numero como 9.999¿?¿

Cita:
Iniciado por GreyFOX Ver Mensaje
el dilema esta en guardar una cifra cualquiera que tenga punto indicando si son miles o millones etc..... con float la guarda tal cual y la muestra tal cual , el dilema es que en caso de que no insertes nada, te inserta por defecto un 0 y eso es la cuestion a resolver Gracias a todos por buestra colaboracion
Bueno pues creo que en ese caso ya te respondí, asigna a la columna el valor por defecto que deseas, esto debes hacerlo en la definición de la tabla.

Saludos!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #9 (permalink)  
Antiguo 18/05/2010, 15:27
 
Fecha de Ingreso: febrero-2008
Mensajes: 49
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Como insetar un numero como 9.999¿?¿

Cita:
Iniciado por Synkronice Ver Mensaje
Bueno pues creo que en ese caso ya te respondí, asigna a la columna el valor por defecto que deseas, esto debes hacerlo en la definición de la tabla.

Saludos!
Muchisimas gracias:) por tu ayuda, podias hacer una explicacion un poco tecnia, soy algo novato y bueno un ejemplo vale mas que mil palabras Gracias por vuestra aportacion
  #10 (permalink)  
Antiguo 18/05/2010, 15:34
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Como insetar un numero como 9.999¿?¿

Cita:
Iniciado por GreyFOX Ver Mensaje
Muchisimas gracias:) por tu ayuda, podias hacer una explicacion un poco tecnia, soy algo novato y bueno un ejemplo vale mas que mil palabras Gracias por vuestra aportacion
Que herramienta usas para crear las tablas de la base de datos, tienes posibilidad de borrar la tabla y volver a crearla?

Saludos!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #11 (permalink)  
Antiguo 18/05/2010, 17:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como insetar un numero como 9.999¿?¿

Es simplemente que cuando defines el campo le indicas el valor por default:
Código MySQL:
Ver original
  1. CREATE TABLE ejemplo
  2. (numero DECIMAL(14,3) DEFAULT '9999');
Importante:

1) Si necesitas manejar números que deben tener precisión, como es el caso de valores monetarios, corresponde usar DECIMAL(longitud,decimales), ya que el FLOAT o DOUBLE es un valor de punto flotante por aproximación, de modo que los valores pueden almacenarse con un error por más o menos , mientras que el DECIMAL está definido para guardar decimales exactos (puede trabajar con redondeo).

2) Si no vas a usar los decimales, o vas a guardar siempre enteros, usa tipos de dato entero (TINYINT, SMALLINT, INT, o BIGINT).

3) Si los números a almacenar serán siempre positivos, usa UNSIGNED como modificador del tipo de dato (INT UNSIGNED, MEDIUMINT UNSIGNED, etc.), permite usar el doble del rango de representación.

4) Todo valor por default de una columna tiene preeminencia sobre el NULL, pero si vas a definir un DEFAULT, te conviene declarar NULL a la columna, porque recargas menos el motor del DBMS, ya que no necesita verificar si el campo está siendo o no ingresado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: numero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:49.