Archivo diario: 22/07/2010

Tipos y longitud de los campos MySQL

22 jul 2010

MySQLCiertas veces estamos diseñando una base de datos para MySQL y al crear los campos de las tablas, nos preguntamos: “¿Cuál es la mejor opción para este caso?”. A continuación os expongo algunos de los límites que caben en cada tipo de campo.

Campos de carácter

Para almacenar hasta 255 caracteres, puede usar el tipo “VARCHAR”. Por ejemplo, para crear un campo de texto de 50 caracteres máximo se escribiría: VARCHAR(50)

Campos de Texto

MySQL tiene 4 tipos de campos de texto (TINYTEXT, TEXT, MEDIUMTEXT y LONGTEXT). Los campos de texto de tipo “TEXT” son afectados por la codifiacción de texto. Aquí están las longitudes máximas que permiten almacenar.

TINYTEXT255 caracteres256 b
TEXT65,535 caracteres~64kb
MEDIUMTEXT16,777,215 caracteres~16Mb
LONGTEXT4,294,967,295 caracteres~4Gb

También se puede usar los campos de tipo “BLOB”, que son binarios y no son afectados por la codificación de caracteres. Este tipo de campos también se puede usar para guardar imágenes y datos binarios en general. Son los siguientes:

TINYBLOB256 bytes
BLOB65,535 bytes~64kb
MEDIUMBLOB16,777,215 bytes~16Mb
LONGBLOB4,294,967,295 bytes~4Gb

Campos Numéricos

MySQL tiene 5 tipos de campos numéricos (TINYINT, SMALLINT, MEDIUMINT, INT y BIGINT). Los campos numéricos pueden ser positivos y negativos cuando son del tipo “signed” y solo positivos cuando son del tipo “unsigned“. Si son “unsigned“, el valor máximo puede ser el doble que cuando son “signed“.

TipoBytesValor mínimo
(Signed / Unsigned)
Valor máximo
(Signed / Unsigned)
TINYINT1-128 / 0127 / 255
SMALLINT2-32768 / 032767 / 65535
MEDIUMINT3-8388608 / 08388607 / 16777215
INT4-2147483648 / 02147483647 / 4294967295
BIGINT8-9223372036854775808 / 09223372036854775807 / 18446744073709551615

También están lo tipos numéricos con coma flotante. Estos son: FLOAT (de 4 bytes), DOUBLE (de 8 bytes) y REAL, que tiene la misma precisión que DOUBLE.

Deja un comentario Tagged , ,