Leccion 4 - Tipos de datos en SQL
Tiempo estimado de lectura: 3 minutos
En SQL los tipos de datos son imprescindibles a la hora de definir que tipo de valores puede contener una columna en una tabla. Una columna en una tabla solo podra contener un tipo de dato, lo que determinara el formato y el tipo de operaciones que se pueden realizar sobre esta.
El tipo de dato puede variar ligeramente segun el sistema de bases de datos (MySQL, PostgreSQL, SQL Server, etc..) pero el concepto es el mismo para todos.
Principales categorias de tipo de datos en SQL
Numericos
Un tipo de dato numerico sirven para almacenar numeros, estos pueden ser enteros o decimales.
Tipos:
- INTEGER (INT): Enteros (números sin punto decimal). Ejemplo: 1, 42, -100.
- SMALLINT: Enteros pequeños, con un rango más limitado.
- BIGINT: Enteros grandes, con un rango más amplio.
- DECIMAL (NUMERIC): Números con una cantidad fija de dígitos decimales. Ejemplo: 123.45.
- FLOAT: Números en coma flotante (decimales) con mayor flexibilidad pero menos precisión.
- REAL: Similar a FLOAT, pero generalmente de menor precisión.
Cadenas de texto
Sirven para almacenar caracteres, palabras o textos.
Tipos:
- CHAR(n): Cadena de texto de longitud fija de n caracteres. Ejemplo: CHAR(10) siempre almacena 10 caracteres, rellenando con espacios si es necesario.
- VARCHAR(n): Cadena de texto de longitud variable, con un máximo de n caracteres. Ejemplo: VARCHAR(50) puede almacenar hasta 50 caracteres.
- TEXT: Cadenas de texto de longitud ilimitada o muy extensa (depende del sistema de base de datos). Ideal para almacenar grandes bloques de texto.
Fechas
Sirven para definir fechas , horas o ambos.
Tipos:
- DATE: Almacena una fecha en formato YYYY-MM-DD. Ejemplo: 2023-11-14.
- TIME: Almacena una hora en formato HH:MM:SS. Ejemplo: 14:30:00.
- DATETIME: Combina fecha y hora en formato YYYY-MM-DD HH:MM:SS. Ejemplo: 2023-11-14 14:30:00.
- TIMESTAMP: Similar a DATETIME, pero a menudo incluye zona horaria y se usa para registrar marcas de tiempo automáticas.
Booleanos
Representan valores tipo verdadero/falso.
Tipos:
- BOOLEAN: solo puede contener TRUE, FALSE o NULL
Binarios
Sirven para almacenar datos como imagenes, videos o documentos.
Tipos:
- BLOB (Binary Large Object): Almacena grandes cantidades de datos binarios.
- VARBINARY(n): Datos binarios de longitud variable, con un máximo de n bytes.
- BINARY(n): Datos binarios de longitud fija de n bytes.
Otros tipos de datos
Tambien podemos encontrar otros tipos de datos en una base de datos, como JSON, que son documentos tipo clave-valor, y GEOMETRY, este ultimo sirve para almacenar datos de posiciones de geolocalizacion con longitud y latitud.
Consideraciones al elegir el tipo de datos
Debemos tener en cuenta que a la hora de elegir el tipo de datos en el diseño de columna de una tabla el tipo de datos puede influir en el almacenamiento y la cantidad de datos que se pueden generar. Por ejemplo un CHAR siempre ocupara una longitud de caracteres segun venga definido, mientras que VARCHAR es un tipo de datos en el que la longitud de caracteres variara dependiendo del valor registrado, proporcionando la capacidad de ser mas flexible a la hora de ocupar mas espacio en la base de datos.
Tambien debemos tener en cuenta el tipo de datos apropiado segun el formato de los valores, por ejemplo para valores de fecha es mejor utilizar DATE donde los valores seguiran el patron YYYY-MM-DD (Ej: 2024-11-16), en vez de un cadena de texto para almacenar 16/11/2024. Esto ultimo incluso puede dar lugar a error de calidad en los datos cuando durante la captura del dato se introduce manualmente, por eso predefinir y elegir el tipo de dato mas adecuado evitara tambien este tipo de problemas a la hora de explotar los datos.