Resumen

Elegir el tipo de dato correcto en PostgreSQL puede parecer un detalle menor, pero una mala decisión genera errores de cálculo silenciosos, desperdicia espacio en disco y provoca comparaciones fallidas sin ningún mensaje de alerta. Corregir esto en producción toma horas; elegirlo bien toma segundos. Aquí se cubren los seis tipos de datos que resuelven el 90 % de los escenarios reales.

¿Cómo funcionan los tipos numéricos en SQL?

El tipo integer representa cantidades enteras, sin decimales [0:48]. Se usa para identificadores, cantidades vendidas o cualquier dato que no necesite fracciones. En One Compiler, basta con escribir SELECT 1500 AS numero_entero para obtener una fila con ese valor.

El tipo numeric, en cambio, admite decimales y requiere definir dos parámetros de precisión [2:50]. La sintaxis NUMERIC(10,2) significa diez dígitos totales y dos después del punto decimal. Si el número original tiene más decimales, PostgreSQL lo aproxima automáticamente al límite definido. Por ejemplo, 1500.6789 con precisión (10,2) se convierte en 1500.68.

Para convertir entre tipos se utiliza el comando cast [2:30], que transforma un dato de un tipo a otro dentro de la consulta:

sql SELECT CAST(1500 AS NUMERIC(10,2)) AS numero_decimal;

  • Si la cantidad de dígitos supera la precisión definida, la consulta falla silenciosamente o arroja error.
  • Aumentar la precisión en el primer parámetro permite aceptar números más grandes.
  • La aproximación decimal sigue las reglas de redondeo estándar.

¿Cuándo usar text, varchar y boolean?

¿Qué diferencia hay entre text y varchar?

El tipo text almacena cadenas de texto sin límite de longitud [1:24]. No es necesario declararlo explícitamente: basta con escribir el valor entre comillas simples y SQL lo interpreta como texto por defecto.

VARCHAR(n) limita la extensión del campo a un número máximo de caracteres [1:38]. Si se define VARCHAR(10), cualquier texto que supere los diez caracteres será cortado automáticamente hasta ese límite [5:28]. Este tipo resulta ideal para datos que provienen de formularios o sistemas externos con restricciones de captura.

sql SELECT CAST('tipo de dato texto' AS VARCHAR(10)) AS tipo_dato; -- Resultado: 'tipo de da'

¿Para qué sirve el tipo boolean?

El tipo boolean registra valores de verdadero o falso [6:02]. Se expresa con las palabras clave TRUE y FALSE. PostgreSQL devuelve t cuando es verdadero y f cuando es falso.

  • Se usa en casillas de verificación: asistencia a clases, aceptación de términos, estados activos o inactivos.
  • Un registro con TRUE indica que la condición se cumple; FALSE indica lo contrario.

sql SELECT TRUE AS boolean_verdadero, FALSE AS boolean_falso;

¿Cómo manejar fechas y timestamps en PostgreSQL?

El tipo date almacena fechas sin hora [7:20]. El comando CURRENT_DATE devuelve la fecha actual del servidor. Para definir una fecha específica se usa la notación con doble dos puntos (::) que actúa como operador de cast abreviado:

sql SELECT '2024-06-27'::DATE AS fecha_pasada;

El tipo timestamp incluye fecha y hora con precisión de segundos [8:40]. La función NOW() devuelve el instante exacto del servidor, incluyendo fracciones de segundo. También se puede convertir una cadena de texto a timestamp:

sql SELECT '2024-03-15 10:30:25'::TIMESTAMP AS timestamp_ejemplo;

  • CURRENT_DATE: fecha del sistema sin componente horario.
  • NOW(): momento preciso con fecha, hora, minuto y segundo.
  • El operador :: es la forma idiomática en PostgreSQL para indicar el tipo de dato que debe interpretar el motor.

La palabra clave SELECT es la sentencia fundamental en SQL para realizar consultas o mostrar resultados en pantalla [2:08]. Siempre conviene acompañarla con AS para asignar un alias descriptivo a cada columna, evitando que el resultado quede sin nombre legible.

Con estos seis tipos de datos —integer, numeric, text, varchar, boolean, date y timestamp— ya tienes la base para crear tablas, insertar registros y operar con SQL de forma sólida. ¿Qué otro tipo de dato has utilizado en tus proyectos? Compártelo en los comentarios.