Archivo de la etiqueta: MySQL

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.

TINYTEXT 255 caracteres 256 b
TEXT 65,535 caracteres ~64kb
MEDIUMTEXT 16,777,215 caracteres ~16Mb
LONGTEXT 4,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:

TINYBLOB 256 bytes
BLOB 65,535 bytes ~64kb
MEDIUMBLOB 16,777,215 bytes ~16Mb
LONGBLOB 4,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“.

Tipo Bytes Valor mínimo
(Signed / Unsigned)
Valor máximo
(Signed / Unsigned)
TINYINT 1 -128 / 0 127 / 255
SMALLINT 2 -32768 / 0 32767 / 65535
MEDIUMINT 3 -8388608 / 0 8388607 / 16777215
INT 4 -2147483648 / 0 2147483647 / 4294967295
BIGINT 8 -9223372036854775808 / 0 9223372036854775807 / 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 , ,