Saltar al contenido
SQL

INSERT SQL: 4 maneras de añadir datos

insert sql

En este artículo os vamos a mostrar cuántas maneras hay de ejecutar la instrucción INSERT SQL, en la que vamos a mostrar tablas, ejemplos y casos de uso. ¡Vamos a ello!

INSERT SQL: Introducción

La función INSERT nos servirá para poder insertar uno o miles registros o datos a una base de datos. En esta instancia, podemos añadir datos directamente usando herramientas como puede ser SSMS (SQL Server Management Studio), Azure Data Studio o por cualquier otra aplicación de terceros. Por esta razón en SQL, la instrucción que vamos a usar para insertar registros es: SQL INSERT INTO.

Supongamos que, tenemos una tabla ALUMNOS con los siguientes campos:

IDNombreApellidosEmailTelefono
1AlfredoMartín[email protected]987654321
2LucasSantos[email protected]987654320
3ThorPérez[email protected]987654319
4SpikeRodríguez[email protected]654987318
Tabla ALUMNOS

Añadir alumnos indicando las columnas

Para poder añadir nuevos registros a la base de datos lo explicaremos por puntos:

  • Utilizamos la sentencia INSERT INTO.
  • Mostramos en qué tabla queremos realizar los registros.
  • Indicamos qué columnas de la estructura de la tabla vamos a utilizar.
  • Añadimos los datos respetando el orden de las columnas, previamente con VALUES.

Ahora lo ponemos en práctica:

INSERT INTO alumnos (Nombre, Apellidos, Email)
  VALUES ('Antonio','Fernández','[email protected]');
IDNombreApellidosEmailTelefono
1AlfredoMartín[email protected]987654321
2LucasSantos[email protected]987654320
3ThorPérez[email protected]987654319
4SpikeRodríguez[email protected]654987318
5AntonioFernández[email protected]NULL
Tabla ALUMNOS

Se ha añadido los datos del registro número 6, que está en color azul. Estos son los cambios que previamente se harán con el INSERT

Añadir alumnos sin indicar las columnas

En este tipo de inserción de datos, no es necesario indicar qué columnas vamos a utilizar, ya que vamos a tener que introducir todas las columnas que tenga la tabla. (En este caso ID, Nombre, Apellidos, Email y Teléfono).

INSERT INTO alumnos 
  VALUES ('Virginia','Martínez',NULL,NULL);
IDNombreApellidosEmailTelefono
1AlfredoMartín[email protected]987654321
2LucasSantos[email protected]987654320
3ThorPérez[email protected]987654319
4SpikeRodríguez[email protected]654987318
5AntonioFernández[email protected]NULL
6VirginiaMartínezNULLNULL
Tabla ALUMNOS

Añadir alumnos indicando las columnas de otra consulta

A diferencia de los dos ejemplos de arriba, vamos a añadir registros utilizando las columnas «nombre», «apellidos», «email», «telefono» de la tabla ALUMNOS de TODOS los registros que tiene la tabla ALUMNOSANTIGUOS con las columnas de «nombreAlumno», «apellidoAlumno», «emailAlumno» y «telefonoAlumno».

Es útil cuando tenemos que añadir bastantes registros y no tenemos que repetir varias sentencias como las de arriba.

INSERT INTO alumnos (nombre, apellidos, email, telefono)
  SELECT nombreAlumno, apellidoAlumno, emailAlumno, telefonoAlumno
  FROM alumnosAntiguos
IDNombreApellidosPaísEmailTelefono
7AmandaLópezEspaña[email protected]654654654
8IreneGonzálezMéxico[email protected]653653653
9YoselinGarcíaHonduras[email protected]652652652
Tabla ALUMNOSANTIGUOS

En la tabla inferior, veremos cómo se han añadido todos los registros de ALUMNOSANTIGUOS a ALUMNOS, sin utilizar todas las columnas.

IDNombreApellidosEmailTelefono
1AlfredoMartín[email protected]987654321
2LucasSantos[email protected]987654320
3ThorPérez[email protected]987654319
4SpikeRodríguez[email protected]654987318
5AntonioFernández[email protected]NULL
6VirginiaMartínezNULLNULL
7AmandaLópez[email protected]654654654
8IreneGonzález[email protected]653653653
9YoselinGarcía[email protected]652652652
Tabla ALUMNOS

Añadir alumnos sin indicar las columnas de otra consulta

Sucede el mismo caso que en el segundo ejemplo, vamos a tener que añadir todas las columnas de la tabla ALUMNOSANTIGUOS a ALUMNOS.

INSERT INTO alumnos
  SELECT nombreAlumno, apellidoAlumno, emailAlumno, telefonoAlumno
  FROM alumnosAntiguos
IDNombreApellidosPaísEmailTelefono
7AmandaLópezEspaña[email protected]654654654
8IreneGonzálezMéxico[email protected]653653653
9YoselinGarcíaHonduras[email protected]652652652
Tabla ALUMNOSANTIGUOS

IDNombreApellidosEmailTelefono
1AlfredoMartín[email protected]987654321
2LucasSantos[email protected]987654320
3ThorPérez[email protected]987654319
4SpikeRodríguez[email protected]654987318
5AntonioFernández[email protected]NULL
6VirginiaMartínezNULLNULL
7AmandaLópez[email protected]654654654
8IreneGonzález[email protected]653653653
9YoselinGarcía[email protected]652652652
Tabla ALUMNOS

Tip adicional

Cuando tenemos un campo IDENTITY, que es un campo que se autogenera (por ejemplo, un identificador de la tabla), suele ser PRIMARY KEY. Disponemos de 2 opciones:

  • Debemos de tener en cuenta que tenemos que omitir ese campo.
  • Declarar antes y después de la instrucción INSERT la función:
SET IDENTITY_INSERT alumnos ON
INSERT INTO alumnos
  SELECT nombreAlumno, apellidoAlumno, emailAlumno, telefonoAlumno
  FROM alumnosAntiguos
SET IDENTITY_INSERT alumnos OFF

Debemos abrir y cerrar la función con ON y OFF.

¿Te ha sido útil este artículo?

insert sql

Te recomendamos que visites la categoría de SQL, ya que tenemos más utilidades que te podrán servir. También puedes practicar las consultas a través de W3Schools 😉

Este artículo ha sido creado y adaptado por el artículo de SQLShack.