Chuck's Academy

Base de Datos

Operaciones INSERT en SQL

Después de crear nuestras tablas en una base de datos SQL, el siguiente paso es insertar datos. La operación INSERT nos permite agregar filas de datos a una tabla. En este capítulo, aprenderemos a insertar datos en una base de datos utilizando el comando INSERT INTO, así como algunas de las mejores prácticas para manejar este proceso.

Insertando Datos en una Tabla

La operación más básica que realizamos con una tabla es insertar nuevos datos. El comando INSERT INTO es la forma en que se añaden nuevas filas a una tabla existente. A continuación, un ejemplo de cómo insertar un registro en una tabla llamada users.

sql
"Aquí estamos insertando un nuevo registro en la tabla users, especificando los valores para las columnas name y email. El valor 'John Doe' es insertado en la columna name, y 'john@example.com' en la columna email."

Inserción de Varias Filas

A menudo, necesitamos insertar múltiples filas de datos al mismo tiempo. En lugar de hacer múltiples inserciones individuales, podemos usar una única sentencia INSERT INTO para insertar varias filas a la vez.

sql
"Este comando inserta tres registros en la tabla users en una sola sentencia. De esta manera, podemos reducir la sobrecarga en la base de datos cuando insertamos múltiples filas."

Insertando Datos en Todas las Columnas

Si deseamos insertar datos en todas las columnas de una tabla, podemos omitir los nombres de las columnas en la sentencia INSERT INTO, siempre y cuando proporcionemos los valores en el mismo orden en que están definidas las columnas.

sql
"En este ejemplo, estamos insertando valores para todas las columnas de la tabla users. El primer valor es para la columna id, seguido de name, email y finalmente created_at, donde usamos CURRENT_TIMESTAMP para registrar la fecha y hora actual."

Inserciones Condicionales con ON DUPLICATE KEY UPDATE

En algunos casos, podemos querer actualizar un registro existente si ya existe uno con una clave duplicada. Para esto, podemos usar la cláusula ON DUPLICATE KEY UPDATE en combinación con la inserción de datos.

sql
"Este comando intenta insertar un nuevo usuario con id igual a 1. Si ya existe un registro con esa clave primaria, entonces el correo electrónico se actualizará a 'john_new@example.com' en lugar de crear un nuevo registro."

Buenas Prácticas para la Inserción de Datos

  1. Usar transacciones cuando se insertan grandes cantidades de datos. Esto asegura que la operación sea atómica y que los datos no queden incompletos en caso de un fallo.

  2. Validar los datos antes de insertarlos para asegurar que cumplen con las restricciones de la base de datos (como claves primarias únicas y campos no nulos).

  3. Evitar inserciones masivas sin índice en tablas grandes, ya que esto puede causar problemas de rendimiento. Se recomienda crear índices antes de insertar grandes volúmenes de datos.

sql
"Aquí estamos utilizando una transacción para asegurarnos de que la operación de inserción sea atómica. La transacción comienza con START TRANSACTION y se finaliza con COMMIT, garantizando que los datos se inserten correctamente."

Especificar Columnas

En el ejemplo anterior, hemos especificado las columnas name y email. Si no especificamos todas las columnas, es necesario omitir aquellas que tienen un valor por defecto o que pueden ser nulas. Por ejemplo, no hemos especificado la columna id porque en la tabla de users, este campo es una clave primaria autoincremental.

sql
"De nuevo, estamos insertando un usuario llamado Bob con su dirección de correo electrónico. Como no especificamos un valor para la columna id, MySQL generará un valor automáticamente."

Insertando Múltiples Filas

El comando INSERT también permite insertar varias filas a la vez, lo que es muy útil cuando se necesita llenar una tabla con varios registros.

sql
"Aquí estamos insertando tres nuevos usuarios en una sola operación. Los nombres de los usuarios son Charlie, David y Emma, y hemos proporcionado sus correos electrónicos."

Insertando Datos con AUTO_INCREMENT

Cuando una tabla tiene una columna definida como AUTO_INCREMENT, como en nuestro ejemplo con la columna id en la tabla users, no es necesario especificar el valor para esa columna al insertar un nuevo registro. MySQL asignará automáticamente el siguiente valor disponible para la clave primaria.

sql
"Aquí estamos insertando un usuario llamado Frank. No necesitamos especificar el valor de id, ya que MySQL lo generará automáticamente."

Insertando Datos con Valores Nulos

A veces es necesario insertar un registro que no tiene valores para todas las columnas. En esos casos, podemos insertar un valor NULL en las columnas que lo permitan.

sql
"Este ejemplo muestra cómo insertar un usuario llamado George, pero sin especificar una dirección de correo electrónico. Como la columna email permite valores nulos, podemos insertar el valor NULL."

Insertando Datos con Subconsultas

En lugar de proporcionar los valores manualmente, también es posible insertar datos en una tabla utilizando los resultados de una consulta. Esta técnica se llama inserción con subconsulta.

sql
"En este ejemplo, estamos insertando en la tabla archived_users todos los usuarios que fueron creados antes del primero de enero de 2023. La subconsulta selecciona los datos de la tabla users y los inserta en archived_users."

Resumen

En este capítulo, hemos explorado cómo insertar datos en tablas SQL usando el comando INSERT INTO, incluyendo la inserción de múltiples filas y el uso de la cláusula ON DUPLICATE KEY UPDATE. En el próximo capítulo, aprenderemos a recuperar datos de una base de datos utilizando el comando SELECT, uno de los más poderosos en SQL.


Pregúntame lo que sea