MariaDB INSERT INTO: cómo insertar datos en tablas
Con MariaDB INSERT INTO se insertan nuevos registros en una tabla existente. Es uno de los comandos SQL más importantes y se utiliza siempre que se quiere añadir nuevos contenidos a una base de datos o ampliar la información existente.
¿Qué es el comando MariaDB INSERT?
El comando INSERT en MariaDB inserta nuevos datos en una tabla. Lo hace añadiendo filas completas a la estructura de datos existente. Cada vez que un usuario se registra, envía un formulario o crea un producto, el sistema ejecuta en segundo plano un INSERT INTO.
Al insertar datos, MariaDB verifica si los valores se corresponden con los tipos de datos de las columnas y si se han completado todos los campos obligatorios. Si los valores infringen restricciones como NOT NULL, UNIQUE o FOREIGN KEY, la base de datos rechaza la operación. Por ello, la estructura de la tabla de destino y la correcta especificación de las columnas desempeñan un papel fundamental al utilizar INSERT.
¿Cómo es el comando INSERT INTO en MariaDB?
La sintaxis estándar de INSERT INTO es la siguiente:
INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);sqltable_nameindica la tabla en la que se van a insertar los datos.- La lista de columnas (
column1, column2, ...) es opcional, pero recomendable. - La parte
VALUEScontiene los valores que deseas insertar en las columnas indicadas.
MariaDB inserta los valores en el orden en que se definen las columnas. Si la cantidad o el orden de los valores no coincide con la lista de columnas, se producirá un error.
¿Qué parámetros y argumentos existen para INSERT INTO en MariaDB?
INSERT INTO se puede ampliar y adaptar según sea necesario. Aquí tienes los parámetros y variantes más importantes:
Lista de columnas
Puedes especificar todas las columnas o solo algunas. Si omites la lista, MariaDB espera valores para todas las columnas de la estructura de la tabla.
INSERT INTO users VALUES (1, 'Ana', 'ana@example.com');sqlSi solo deseas rellenar columnas específicas, ejecuta el siguiente comando:
INSERT INTO users (name, email) VALUES ('Ana', 'ana@example.com');sqlAquí seleccionamos las columnas name y email.
Insertar varias filas
Esta variante es más eficiente que ejecutar múltiples comandos INSERT individuales en MariaDB, especialmente con grandes volúmenes de datos:
INSERT INTO products (name, price)
VALUES ('pen', 1.50),
('notepad', 2.00),
('bag', 9.90);sqlINSERT IGNORE
Con IGNORE, MariaDB omite las filas que violan restricciones y continúa con las demás.
INSERT IGNORE INTO users (id, name) VALUES (1, 'Ana');sqlINSERT ... ON DUPLICATE KEY UPDATE
Esta expresión actualiza filas existentes cuando ocurre un conflicto de clave única.
INSERT INTO users (id, name)
VALUES (1, 'Ana')
ON DUPLICATE KEY UPDATE name = 'Ana';sqlEsta técnica evita consultas adicionales y permite combinar la lógica de inserción y actualización en un solo comando. Resulta muy útil en importaciones, sincronización de datos o procesos automatizados de registro.
Insertar con SELECT
Con SELECT puedes copiar datos de una tabla a otra:
INSERT INTO archive_orders (id, status)
SELECT id, status FROM orders WHERE status = 'completed';sqlEjemplos de uso de MariaDB INSERT INTO
A continuación, te presentamos algunos escenarios comunes para usar INSERT INTO.
Registrar un usuario
En el siguiente ejemplo, MariaDB inserta un nuevo usuario en la tabla users. Los valores para las columnas name y email provienen de un formulario web o de una aplicación. El valor NOW() obtiene la marca de tiempo actual, es decir, el momento del registro.
INSERT INTO users (name, email, created_at)
VALUES ('Elena', 'elena@example.com', NOW());sqlEste método resulta adecuado para formularios web habituales de registro, donde cada entrada se guarda directamente en la base de datos. Conviene que la columna created_at esté definida como DATETIME o TIMESTAMP para que el valor de NOW() se almacene correctamente.
Insertar datos desde otra tabla
Este ejemplo muestra cómo transferir datos existentes de una tabla (orders) a otra (archive_orders). MariaDB selecciona todos los pedidos cuyo estado sea 'completed' y copia las columnas id y status.
INSERT INTO archive_orders (id, status)
SELECT id, status FROM orders WHERE status = 'completed';sqlEste tipo de comandos se utiliza en procesos como el archivado, la depuración de datos o la generación de informes. Es importante asegurarse de que la estructura de las columnas, incluidos los tipos de datos, coincida entre la tabla de origen y la de destino; de lo contrario, MariaDB no ejecutará el comando.

