Modificar datos · altas

INSERT INTO

INSERT INTO añade filas nuevas; la lista de columnas y las restricciones evitan que un dato válido termine en el lugar equivocado.

Lectura: 6–8 minEjemplo comprobadoPráctica con pistas
Contenido de esta guía

Qué hace INSERT INTO

INSERT INTO crea filas nuevas. La lista de columnas define el destino de cada valor y permite omitir columnas que recibirán un valor predeterminado o NULL cuando la definición lo permita.

Una inserción no se considera correcta solo porque la sintaxis sea válida: también debe respetar tipos, claves, restricciones únicas, valores obligatorios y relaciones con otras tablas.

Sintaxis segura

Una fila
INSERT INTO tabla (columna_1, columna_2)
VALUES (valor_1, valor_2);
Varias filas
INSERT INTO tabla (columna_1, columna_2)
VALUES (valor_a1, valor_a2),
       (valor_b1, valor_b2);

Escribe la lista de columnas. Evita depender del orden físico de la tabla. Si el esquema cambia o existe una columna con valor predeterminado, la intención de la consulta seguirá siendo visible.

Ejemplo guiado: insertar dos clientes y deshacer

La operación se ejecuta en una transacción de práctica. Una fila incluye email y otra deja ese valor como NULL.

SQL
BEGIN;

INSERT INTO clientes
  (id, nombre, email, ciudad, fecha_registro, activo)
VALUES
  (90, 'Nora Paz', 'nora@example.test', 'Málaga', '2026-08-05', 1),
  (91, 'Óscar Luna', NULL, 'Toledo', '2026-08-05', 1);

SELECT id, nombre, email, ciudad, activo
FROM clientes
WHERE id IN (90, 91)
ORDER BY id;

ROLLBACK;
Filas comprobadas dentro de la transacción
idnombreemailciudadactivo
90Nora Paznora@example.testMálaga1
91Óscar LunaNULLToledo1

ROLLBACK devuelve la copia de práctica a su estado inicial. En una aplicación real, deja que el motor genere la identidad cuando la columna esté configurada para ello, en lugar de inventar identificadores manualmente.

Columnas omitidas y valores predeterminados

Las columnas que no aparecen en la lista reciben su valor DEFAULT o NULL si la tabla lo permite. Si una columna es obligatoria y no tiene valor predeterminado, la sentencia falla. Ese error protege la coherencia de los datos.

Error frecuente

Desalinear columnas y valores

Riesgo
INSERT INTO productos (nombre, precio, stock)
VALUES ('Webcam', 6, 59.90);

La sentencia puede ser válida pero guardar 6 como precio y 59.90 como stock. Lee columnas y valores en paralelo y usa restricciones que rechacen combinaciones imposibles.

Comprueba lo aprendido

Básica · una fila

Añade un producto de prueba

Dentro de una copia o transacción, inserta el producto 90: Adaptador HDMI, categoría Accesorios, categoria_id = 1, precio 19,90 y stock 8. Escribe todas las columnas.

Compatibilidad entre motores

La inserción con lista de columnas y VALUES es ampliamente portable. La forma de generar identificadores, devolver filas insertadas y resolver conflictos cambia entre motores. PostgreSQL y SQLite documentan RETURNING; otras plataformas ofrecen variantes o mecanismos distintos.

Qué debes recordar

  • Lista explícitamente las columnas.
  • Una sola sentencia puede insertar varias filas.
  • Las restricciones pueden rechazar datos incoherentes.
  • Practica cambios dentro de una transacción reversible.

Conceptos relacionados

Fuentes técnicas consultadas