MySQL: Datos de cadena

Para almacenar una cadena en MySQL podemos utilizar varios tipos de campo, como nunca recuerdo la diferencia entre los normales, los medium y los long, ahí queda la nota mental:
  • Char: 0-255 caracteres.
  • Varchar: 0-255 caracteres.
  • Tinytext: 0-255 caracteres.
  • Text: 65.535 caracteres.
  • Mediumtext: 16.777.215 caracteres.
  • Longtext: 4.294.967.295 caracteres.
Si, nos ha extrañado, pero los campos de tipo mediumtext albergan más cantidad de datos que los text. Fin de la nota mental.

Update: A raíz del comentario de Wu me gustaría aclarar que la diferencia entre CHAR y VARCHAR es la forma en la que se almacenan los datos en MySQL. Por ejemplo entre un CHAR(4) y un VARCHAR(4) guardando el dato "ab" tendríamos que:
CHAR(4)"ab  "
VARCHAR(4)"ab"
Como vemos en los campos de tipo CHAR siempre se reserva el espacio que hemos designado para su uso, mientras que en los VARCHAR la asignación es dinámica siempre y cuando no se sobrepase el límite impuesto.

El TINYTEXT, junto a sus hermanos TEXT, MEDIUMTEXT y LONGTEXT son de tipo BLOB (binary large object) y su almacenamiento es distinto a CHAR ó VARCHAR.

About the author

Óscar
has doubledaddy super powers, father of Hugo and Nico, husband of Marta, *nix user, Djangonaut and open source passionate.