SQL y Bases de DatosFundamentos SQLLección 4 de 20
Tipos de Datos y Constraints
Elegir el tipo de dato correcto es crucial para el rendimiento y la integridad de los datos. Los constraints (restricciones) aseguran que los datos cumplan reglas de negocio directamente en la base de datos, sin depender de la aplicación.
-- Crear una tabla con tipos y constraints bien definidos
CREATE TABLE usuarios (
-- SERIAL: auto-incremento (equivale a INTEGER + secuencia)
id SERIAL PRIMARY KEY,
-- VARCHAR(n): texto de hasta n caracteres
nombre VARCHAR(100) NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE,
-- TEXT: texto de longitud ilimitada
biografia TEXT,
-- INTEGER: número entero
edad INTEGER CHECK (edad >= 0 AND edad <= 120),
-- DECIMAL(precision, escala): números exactos
-- Para dinero: DECIMAL(10,2) = hasta 99999999.99
saldo DECIMAL(12, 2) DEFAULT 0.00,
-- BOOLEAN: true/false
activo BOOLEAN DEFAULT TRUE,
-- DATE: solo fecha ('2024-01-15')
fecha_nacimiento DATE,
-- TIMESTAMP WITH TIME ZONE: fecha + hora + zona horaria
creado_en TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
actualizado_en TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Tipos de constraints:
-- PRIMARY KEY : identificador único, NOT NULL implícito
-- NOT NULL : el campo es obligatorio
-- UNIQUE : no puede repetirse en la tabla
-- DEFAULT : valor cuando no se especifica
-- CHECK : condición que debe cumplirse
-- FOREIGN KEY : referencia a otra tabla
-- Agregar constraint después de crear la tabla
ALTER TABLE usuarios
ADD CONSTRAINT chk_email CHECK (email LIKE '%@%');
-- Ver la estructura de una tabla en PostgreSQL
\d usuarios
ConsejoPara almacenar dinero, usa DECIMAL(10,2) o INTEGER (guardando centavos). NUNCA uses FLOAT o REAL para dinero: los errores de punto flotante pueden hacer que 0.1 + 0.2 no sea exactamente 0.3.
Practica esta lección
Resuelve los ejercicios del curso de SQL y Bases de Datos en la app, gratis y con corrección automática.
Empezar a practicar