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

char y varchar

Estas en el tema de char y varchar en el foro de Mysql en Foros del Web. Hola estoy aprendiendo MySQL y bueno tengo una pregunta estuve leyendo el manual y entendi que char almacena de 0 a 255 caracteres ejemplo Si ...
  #1 (permalink)  
Antiguo 14/12/2011, 17:22
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años, 8 meses
Puntos: 131
char y varchar

Hola estoy aprendiendo MySQL y bueno tengo una pregunta

estuve leyendo el manual y entendi que

char almacena de 0 a 255 caracteres
ejemplo
Si pongo char(255) y solo inserto 'hola'.

lo que en realidad se inserta es una cadena de 255 caracteres 'hola---espacios en blanco---' y cuando recuperamos la cadena se borran los espacios en blanco.

Ok esto lo entiendo.

En cuanto a varchar...

Yo sabia que por ejemplo

varchar(300) y le inserto 'hola' entonces lo que se guarda es solo 'hola' SIN espacios en blanco, pero estube leyendo y veo que no es asi, miren esto lo copie del manual

Los valores VARCHAR no se cortan al almacenarse. El tratamiento de espacios al final depende de la versión. Desde MySQL 5.0.3, los espacios finales se almacenan con el valor y se retornan, según el estándar SQL. Antes de MySQL 5.0.3, los espacios finales se eliminan de los valores cuando se almacenan en una columna VARCHAR, esto significa que los espacios también están ausentes de los valores retornados.

como ven o estoy entendiendo mal?
  #2 (permalink)  
Antiguo 15/12/2011, 02:50
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: char y varchar

Te he contestado en el post sobre FLOAT e INT, en el link al manual tienes tambien las explicaciones para los string.


Código pre:
Ver original
  1. mysql> CREATE TABLE vc (v VARCHAR(4), c CHAR(4));
  2. Query OK, 0 rows affected (0.01 sec)
  3.  
  4. mysql> INSERT INTO vc VALUES ('ab  ', 'ab  ');
  5. Query OK, 1 row affected (0.00 sec)
  6.  
  7. mysql> SELECT CONCAT('(', v, ')'), CONCAT('(', c, ')') FROM vc;
  8. +---------------------+---------------------+
  9. | CONCAT('(', v, ')') | CONCAT('(', c, ')') |
  10. +---------------------+---------------------+
  11. | (ab  )              | (ab)                |
  12. +---------------------+---------------------+
  13. 1 row in set (0.06 sec)
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 15/12/2011, 20:08
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años, 8 meses
Puntos: 131
Respuesta: char y varchar

gracias camarada
  #4 (permalink)  
Antiguo 17/12/2011, 15:24
Avatar de Trublux  
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 355
Antigüedad: 14 años, 2 meses
Puntos: 48
Respuesta: char y varchar

Tener en cuenta que si en una tabla tienes un campo de tipo "varchar", los campos declarados con "char" de más de tres caracteres se convierten automáticamente a "varchar".
Cambios tácitos en la especificación de columnas
__________________
eZ Publish Developer Basic Legacy
eZ Publish Developer Basics (4.4)
Alojamientos rurales en España

Etiquetas: char, sql, varchar
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 07:54.