Introducción a los tipos de datos: INT VARCHAR DATE BOOLEAN
Aprenda los tipos de datos SQL fundamentales: enteros, varchar/texto, fechas y marcas de tiempo, valores booleanos y decimales, y cómo elegir el tipo adecuado para cada columna.
Introducción a los tipos de datos: INT VARCHAR DATE BOOLEAN es una lección gratuita de SQL Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de SQL Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de SQL Academy incluye 4 lecciones en total.
Por qué son importantes los tipos
Cada columna tiene un tipo fijo. El tipo define:
- Qué valores son válidos
- Cuánto almacenamiento utiliza cada fila
- Qué operadores y funciones se pueden aplicar
- Cómo el planificador elige los índices y las combinaciones
Tipos enteros
PostgreSQL tiene tres tamaños para los tipos enteros:
SMALLINT -- 2 bytes, -32768 to 32767
INTEGER -- 4 bytes, ±2.1 billion (alias: INT)
BIGINT -- 8 bytes, ±9.2 quintillion
-- Auto-incrementing variants:
SMALLSERIAL BIGSERIAL SERIALNumeric / Decimal
Para cantidades monetarias y decimales exactos, use NUMERIC(precision, scale); nunca FLOAT.
CREATE TABLE invoices (
id BIGSERIAL PRIMARY KEY,
amount NUMERIC(12, 2) NOT NULL, -- up to 10 digits + 2 decimals
tax_rate NUMERIC(5, 4) NOT NULL -- 0.0875 = 8.75%
);Float frente a Numeric
REAL (4 bytes) y DOUBLE PRECISION (8 bytes) son inexactos: redondean las fracciones binarias. Son adecuados para la ciencia, pero pésimos para el dinero.
-- Inexact:
SELECT 0.1::FLOAT + 0.2::FLOAT; -- 0.30000000000000004
-- Exact:
SELECT 0.1::NUMERIC + 0.2::NUMERIC; -- 0.3Tipos de texto: VARCHAR frente a TEXT
PostgreSQL tiene dos tipos de texto principales:
-- VARCHAR(n) — variable-length, max n characters
email VARCHAR(255)
-- TEXT — variable-length, no declared limit
description TEXT
-- In PostgreSQL both have the same performance.
-- VARCHAR(n) just adds a length check.
-- CHAR(n) (fixed-length, blank-padded) — avoid.Fecha y hora
Use los tipos de fecha y hora; nunca almacene las fechas como cadenas:
DATE -- 2024-03-15
TIME -- 14:30:00
TIMESTAMP -- 2024-03-15 14:30:00 (no time zone)
TIMESTAMPTZ -- 2024-03-15 14:30:00+02 (recommended)
INTERVAL -- 1 day, 3 hours
-- Prefer TIMESTAMPTZ unless you have a strong reason not to.Booleano
BOOLEAN almacena TRUE, FALSE o NULL.
CREATE TABLE tasks (
id BIGSERIAL PRIMARY KEY,
done BOOLEAN NOT NULL DEFAULT false
);
SELECT * FROM tasks WHERE done; -- shorthand for done = true
SELECT * FROM tasks WHERE NOT done;UUID
Para identificadores únicos a escala global:
CREATE TABLE api_keys (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id BIGINT NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);JSON y JSONB
Para documentos semiestructurados:
-- JSON — text, preserves whitespace, no index
-- JSONB — binary, deduplicated keys, indexable with GIN
CREATE TABLE events (
id BIGSERIAL PRIMARY KEY,
payload JSONB NOT NULL
);Arrays
Las columnas de PostgreSQL pueden ser arrays de cualquier tipo base:
CREATE TABLE posts (
id BIGSERIAL PRIMARY KEY,
title TEXT NOT NULL,
tags TEXT[] NOT NULL DEFAULT '{}'
);
INSERT INTO posts (title, tags) VALUES
('Hello', ARRAY['sql', 'intro']);
SELECT * FROM posts WHERE 'sql' = ANY(tags);Elegir el tipo adecuado
Reglas generales:
- Dinero →
NUMERIC(nuncaFLOAT) - ID →
BIGSERIALoUUID - Fechas →
TIMESTAMPTZpara eventos,DATEpara días naturales - Códigos cortos →
VARCHAR(n); texto largo →TEXT - Indicadores →
BOOLEAN
Repaso
Elija el tipo más específico que se ajuste a sus necesidades.
- Tipos adecuados = índices más pequeños, mejores estadísticas y menos errores
- NUMERIC para decimales exactos
- TIMESTAMPTZ para las marcas de tiempo de eventos
- Evite almacenar datos tipados como cadenas: perderá validación e indexación
Comprobación rápida
Necesita almacenar el precio de un producto. ¿Qué tipo debería elegir?
Preguntas frecuentes
¿La lección «Introducción a los tipos de datos: INT VARCHAR DATE BOOLEAN» es gratis?
Sí — el texto completo de «Introducción a los tipos de datos: INT VARCHAR DATE BOOLEAN» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de SQL Academy, actualiza a CoddyKit PRO. El curso de SQL Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Introducción a los tipos de datos: INT VARCHAR DATE BOOLEAN»?
Aprenda los tipos de datos SQL fundamentales: enteros, varchar/texto, fechas y marcas de tiempo, valores booleanos y decimales, y cómo elegir el tipo adecuado para cada columna. Practicas SQL Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar SQL Academy?
No se requiere experiencia previa. SQL Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Introducción a los tipos de datos: INT VARCHAR DATE BOOLEAN»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de SQL Academy?
Sí. Cada lección de SQL Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Qué es un RDBMS y por qué importan las tablas
- Claves primarias y unicidad
- NULL: el tercer valor de verdad
- Introducción a los tipos de datos: INT VARCHAR DATE BOOLEAN