Tema SQL
INSERT: nuevas filas
Añade una o más filas a una tabla con valores explícitos o procedentes de un SELECT. Las columnas omitidas suelen tomar NULL, DEFAULT o autogeneración según definición de la tabla.
Descripción
INSERT es la forma estándar de cargar datos. Especifica la lista de columnas en el orden en que vas a dar valores para evitar errores cuando el esquema cambie. Puedes insertar múltiples tuplas en un solo VALUES o insertar el resultado de un SELECT (INSERT…SELECT). Respeta restricciones NOT NULL, UNIQUE, FOREIGN KEY y triggers; en caso de conflicto, algunos motores ofrecen ON CONFLICT o equivalentes. En aplicaciones, parametriza valores para evitar inyección SQL.
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
INSERT INTO tabla ( col1, col2, ... )
VALUES ( valor1, valor2, ... );
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- INSERT INTO
- Nombre calificado de la tabla destino. La lista de columnas debe existir y ser compatible con permisos del rol actual.
- VALUES
- Una tupla o varias separadas por comas; cada valor debe coincidir en tipo y orden con la lista de columnas. Expresiones, funciones y subconsultas escalares están permitidas según motor.
Ejemplos
Ejemplo 1
INSERT INTO usuarios (nombre, email, creado_en)
VALUES ('Ana', 'ana@example.com', NOW());
Ejemplo 2
INSERT INTO logs (mensaje, creado_en)
VALUES ('inicio', NOW()),
('fin', NOW());
Temas relacionados
Enlaces internos para seguir leyendo: SELECT, WHERE, JOIN, GROUP BY y el resto de la referencia SQL.
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.