馃 ¿Qu茅 son los tipos de datos?
Un tipo de dato define qu茅 tipo de informaci贸n puede almacenarse en una columna de una tabla.
馃憠 Es una regla que garantiza que los datos tengan el formato correcto.
Ejemplo:
CREATE TABLE usuarios (
id INTEGER,
nombre VARCHAR(100),
activo BOOLEAN
);
INTEGER → solo n煤meros enteros
VARCHAR(100) → texto
BOOLEAN → verdadero/falso
馃摝 ¿Por qu茅 son importantes?
Elegir correctamente los tipos de datos:
✅ Mejora el rendimiento
✅ Ahorra espacio
✅ Evita errores
✅ Facilita validaciones
馃憠 Un mal dise帽o puede afectar seriamente tu aplicaci贸n.
馃敘 Tipos num茅ricos
馃敼 Enteros
✅ Ejemplo:
CREATE TABLE productos (
id SERIAL PRIMARY KEY,
stock INTEGER
);
馃敼 Decimales
✅ Ejemplo:
precio NUMERIC(10,2)
馃憠 Perfecto para dinero (evitar float).
馃敜 Tipos de texto
✅ Ejemplo:
nombre VARCHAR(100),
descripcion TEXT
馃挕 Recomendaci贸n:
Usa TEXT en la mayor铆a de casos (PostgreSQL lo maneja muy bien)
馃搮 Tipos de fecha y tiempo
✅ Ejemplo:
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
馃憠 Muy usados para auditor铆a.
✅ Tipo booleano
activo BOOLEAN
Valores posibles:
TRUE
FALSE
NULL
✅ Ejemplo:
SELECT * FROM usuarios WHERE activo = TRUE;
馃攽 Tipos auto-incrementales
PostgreSQL tiene formas modernas de generar IDs autom谩ticamente.
馃敼 SERIAL (cl谩sico)
id SERIAL PRIMARY KEY
馃敼 IDENTITY (recomendado moderno)
id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY
馃憠 Mejor pr谩ctica en versiones recientes.
馃З Tipos JSON
PostgreSQL soporta datos tipo NoSQL:
✅ Ejemplo:
config JSONB
Insert:
INSERT INTO settings (config)
VALUES ('{"tema": "oscuro", "idioma": "es"}');
馃憠 JSONB es el m谩s usado.
馃摎 Arrays
PostgreSQL permite arrays directamente:
tags TEXT[]
✅ Ejemplo:
INSERT INTO posts (tags)
VALUES (ARRAY['postgres', 'sql', 'tutorial']);
馃實 UUID
Para identificadores 煤nicos globales:
id UUID
✅ Ejemplo:
id UUID DEFAULT gen_random_uuid()
馃憠 Muy usado en microservicios.
馃搷 Tipos especiales interesantes
馃敼 ENUM
Permite valores definidos:
CREATE TYPE estado AS ENUM ('pendiente', 'enviado', 'entregado');
CREATE TABLE pedidos (
id SERIAL,
estado estado
);
馃敼 BYTEA
Para almacenar binarios:
archivo BYTEA
⚖️ ¿C贸mo elegir el tipo adecuado?
✅ Reglas pr谩cticas
N煤meros → INTEGER o BIGINT
Dinero → NUMERIC(10,2)
Texto → TEXT o VARCHAR
Fechas → TIMESTAMP
JSON → JSONB
IDs → IDENTITY o UUID
馃毇 Errores comunes
❌ Usar VARCHAR en todo
precio VARCHAR(50) -- mala pr谩ctica
✅ Mejor:
precio NUMERIC(10,2)
``
❌ Usar FLOAT para dinero
Puede generar errores de precisi贸n.
❌ Sobredimensionar campos
VARCHAR(1000) para nombre
馃И Ejemplo completo
CREATE TABLE usuarios (
id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
nombre VARCHAR(100),
email TEXT,
edad INTEGER,
activo BOOLEAN DEFAULT TRUE,
saldo NUMERIC(10,2),
preferencias JSONB,
creado_en TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
馃挕 Buenas pr谩cticas
Prefiere TEXT sobre VARCHAR cuando no necesitas l铆mite
Usa NUMERIC para valores financieros
Usa TIMESTAMPTZ si trabajas con diferentes zonas horarias
Evita tipos innecesariamente grandes
Usa JSONB en lugar de JSON
Prefiere IDENTITY en lugar de SERIAL
✅ Conclusi贸n
Los tipos de datos son la base de un buen dise帽o en PostgreSQL. Elegirlos correctamente no solo mejora el rendimiento, sino que tambi茅n garantiza la integridad y escalabilidad de tu sistema.
No hay comentarios:
Publicar un comentario