En SQL, los tipos de datos BINARY(n), VARBINARY(n), y BLOB se utilizan para almacenar datos binarios (como imágenes, archivos o datos encriptados). A continuación, se explican sus diferencias:
BINARY(n)n.n bytes. Si los datos almacenados son más pequeños, se rellenan con bytes nulos (0x00).CREATE TABLE ejemplo_binary (
clave BINARY(16) -- Almacena exactamente 16 bytes
);
INSERT INTO ejemplo_binary (clave) VALUES (0xA1B2C3D4);
VARBINARY(n)n.BINARY(n).VARBINARY(MAX) para tamaños mayores (hasta 2 GB).CREATE TABLE ejemplo_varbinary (
archivo VARBINARY(255) -- Tamaño máximo: 255 bytes
);
INSERT INTO ejemplo_varbinary (archivo) VALUES (0xDEADBEEF);
BLOBTINYBLOB: Pequeños datos binarios.BLOB: Tamaño estándar.MEDIUMBLOB: Tamaño medio.LONGBLOB: Tamaño muy grande (hasta varios GB).BLOB estándar admite hasta 64 KB, mientras que un LONGBLOB soporta hasta 4 GB.CREATE TABLE ejemplo_blob (
imagen BLOB -- Para almacenar datos binarios grandes
);
INSERT INTO ejemplo_blob (imagen) VALUES (LOAD_FILE('/ruta/a/la/imagen.jpg'));
| Característica | BINARY(n) | VARBINARY(n) | BLOB |
|---|---|---|---|
| Tamaño de almacenamiento | Fijo (n bytes) |
Variable (hasta n bytes) |
Muy grande (dependiendo del tipo) |
| Relleno de bytes | Sí (con 0x00) |
No | No |
| Usos comunes | Claves encriptadas, datos de tamaño fijo | Archivos pequeños, datos binarios variables | Imágenes, videos, archivos grandes |
| Tamaño máximo | Hasta 8,000 bytes (típico) | Hasta 8,000 bytes o más | Varios GB (según DBMS) |
BINARY(n): Si sabes que el tamaño de los datos siempre será fijo.VARBINARY(n): Si los datos son variables pero pequeños o medianos.BLOB: Si necesitas almacenar grandes cantidades de datos binarios.