3.2.2. Cadenas de caracteres

Cadenas de caracteres

Tipo Equivalente Tamaño máximo Espacio de almacenamiento
 char[(M)]
 M bytes  M bytes
 varchar[(M)]
 M bytes  L+1 bytes
 tinytext  tinyblob  28-1 bytes  L+1 bytes
 text
 blob
 216-1 bytes
 L+2 bytes
 mediumtext
 mediumblob
 224-1 bytes
 L+3 bytes
 longtext
 longblob
 232 -1 bytes
 L+4 bytes
 enum('v1','v2',...)

 65535 valores
 1 o 2 bytes
 set('v1','v2',...)

 64 valores
 1 a 8 bytes


Si observamos la tabla, vemos que el único tipo de dato que siempre utiliza el tamaño especificado por M es el tipo char. Por este motivo, se ofrece el tipo varchar que ocupa sólo el espacio requerido por el valor de la columna.

Ejemplo


create table persona(
comentario char(250),
recado varchar(250)
);


La columna comentario ocupará 250 bytes de espacio de almacenamiento, sin importar el valor almacenado. Por el contrario, la columna recado ocupará sólo el espacio necesario según el valor asignado; por ejemplo, la cadena “Instalar MySQL” tiene 14 bytes de longitud, y el campo recado ocuparía 15 bytes para almacenarla.

Los tipos text y blob son equivalentes, pero text respeta las mayúsculas, mi- núsculas y caracteres acentuados en la ordenación.

Ejemplo del uso de los tipos enumerados o enum


create table persona(
edo_civil enum(’soltero’,’casado’,’viudo’,’divorciado’)
);

La columna edo_civil de la tabla en la sentencia anterior, solo podrá almacenar los valores ’soltero’, ’casado’, ’viudo’, ’divorciado’, que son especificados por el tipo enum. La columna ocupará el espacio de un byte, ya que los valores enum son representados internamente por números.

 



 

  BI   |    CRM     |    CMS    |    Tendencias en software empresarial    |    Cloud computing  |    Software libre    |   Internet    |    Movilidad y apps