Esta es la lección con la que perfectamente podríamos haber empezado el curso. Pero entonces tus primeras tareas y lecciones habrían sido un rollo. Si decides trabajar un día como obrero de la construcción, ¿por dónde te gustaría empezar: estudiando los tipos y formas de ladrillos o manejando una grúa torre durante 30 minutos? ¡Eso mismo! :)
Un estudiante no es un recipiente que hay que llenar, ¡es una antorcha que hay que encender (y no quemar)! No intento contarte todo lo que sé, sino hacerlo de forma que te resulte interesante. Y justo ahora es el mejor momento para empezar a conocer los tipos de datos.
Un tipo de dato en PostgreSQL es una indicación de qué tipo de información se va a guardar en una columna concreta de una tabla. Por ejemplo, números, texto o fechas. Es un poco como elegir una caja para guardar cosas: una pequeña para cosas pequeñas, una grande para zapatos, una transparente para hilos, para saber enseguida qué hay dentro de cada una.
Ejemplo:
- Si quieres guardar la edad de una persona, te sirve un tipo de dato numérico.
- Si necesitas guardar un nombre, te harán falta tipos de datos de texto.
- Y para marcar la fecha de registro, lo lógico es usar un tipo de dato de fecha.
¿Para qué sirven los tipos de datos?
Los tipos de datos ayudan a:
- Restringir la información que se puede meter. Por ejemplo, no puedes meter texto donde se espera un número.
- Estructurar los datos. Sabiendo bien qué hay en cada columna, es más fácil hacer consultas y analizar la info.
- Ahorrar recursos. Usando los tipos correctos, reduces el consumo de memoria.
- Mantener la precisión. Por ejemplo, los cálculos financieros necesitan números con coma fija.
Ejemplo para inspirarte
Imagina una tabla para guardar información sobre estudiantes:
id |
name |
age |
enrollment_date |
|---|---|---|---|
| 1 | Otto Mars | 22 | 2023-01-15 |
| 2 | Anna Song | 19 | 2023-02-10 |
Aquí id es un identificador único (número), name es texto, age es el número de la edad, y enrollment_date es la fecha de inscripción del estudiante. Todos estos datos tienen tipos de datos distintos porque describen aspectos diferentes del objeto.
Clasificación de los tipos de datos en PostgreSQL
PostgreSQL es súper flexible trabajando con tipos de datos. Aquí tienes una clasificación rápida.
Categorías principales de tipos de datos:
Tipos numéricos
- Para guardar números enteros (por ejemplo, cantidad, identificador) y números con decimales (por ejemplo, dinero).
- Ejemplos:
INTEGER,NUMERIC,FLOAT.
Tipos de texto
- Para guardar textos y cadenas (por ejemplo, nombres, direcciones).
- Ejemplos:
CHAR,VARCHAR,TEXT.
Tipo lógico
- Para guardar valores lógicos
TRUE(verdadero) oFALSE(falso). - Ejemplo:
BOOLEAN.
- Para guardar valores lógicos
Tipos para trabajar con fechas y horas
- Para guardar fechas, horas o su combinación.
- Ejemplos:
DATE,TIME,TIMESTAMP.
Tipos especiales
- Identificadores únicos, objetos JSON, arrays y mucho más.
- Ejemplos:
UUID,JSONB,ARRAY.
Características de los tipos de datos en PostgreSQL
PostgreSQL soporta un montón de tipos integrados y te deja crear tipos de datos personalizados (custom). Esto hace que trabajar con este SGBD sea especialmente potente para sistemas complejos donde necesitas requisitos muy específicos para los datos.
Curiosamente, en PostgreSQL incluso puedes guardar datos geográficos o hacer consultas tipo "Busca cafeterías a 500 metros de mí". Para eso se usan tipos de datos especiales.
¿Qué aporta indicar explícitamente los tipos de datos?
A veces parece que sería cómodo hacer todas las columnas de la tabla de tipo texto —al fin y al cabo, el texto puede guardar de todo. ¡Pero eso es mala práctica! Indicar los tipos de datos adecuados permite:
Simplificar las consultas. Si PostgreSQL sabe que en la columna solo hay números, hace los cálculos más rápido, por ejemplo con SUM().
Evitar errores. Imagina que por accidente guardas "treinta y dos" en vez de 32 en la columna donde van las edades. Pillar ese tipo de errores sería casi imposible.
GO TO FULL VERSION