Saltar al contenido principal
InicioTutorialesSQL

Tutorial Insertar en SQL

La sentencia "INSERT INTO" de SQL puede utilizarse para añadir filas de datos a una tabla de la base de datos.
Actualizado sept 2024  · 3 min leer

Syntax

A continuación se muestra el caso de uso normal de "INSERT INTO", en el que insertas valores manualmente. Le sigue el nombre de la tabla y una lista opcional de columnas que deben rellenarse con los datos. Luego sigue la palabra clave "VALORES" y los valores reales que quieras insertar.

INSERT INTO table_name (column_a, column_b)
VALUES ("value_a", "value_b");

INSERTAR REGISTROS DISTINTOS EN NUEVAS TABLAS

Para copiar datos de una tabla existente a una nueva, puedes utilizar el patrón "INSERT INTO SELECT DISTINCT". Después de "INSERT INTO", especifica el nombre de la tabla de destino: organizations en el caso siguiente.

A continuación, selecciona las columnas que deben copiarse de la tabla de origen: unviversity_professors en este caso. Utiliza la palabra clave "DISTINTO" para copiar sólo organizaciones distintas.

INSERT INTO organizations
SELECT DISTINCT organization,
    organization_sector
FROM university_professors;
Output: INSERT 0 1287

La salida anterior muestra que sólo se insertan 1287 registros en la tabla "organizaciones".

Por otra parte, si utilizas "INSERT INTO SELECT", sin la palabra clave "DISTINCT", también se copiarían los registros duplicados.

INSERT INTO organizations
SELECT organization,
    organization_sector
FROM university_professors;
Output: INSERT 0 1377

Migrar datos a una nueva tabla

Vamos a migrar los datos a nuevas tablas. Utilizarás el siguiente patrón:

INSERT INTO ...
SELECT DISTINCT ...
FROM ...;

Se puede dividir en dos partes:

Primera parte:

SELECT DISTINCT column_name1, column_name2, ...
FROM table_a;

Esto selecciona todos los valores distintos de la tabla table_a - nada nuevo para ti.

-- Insert unique professors into the new table
INSERT INTO professors
SELECT DISTINCT firstname, lastname, university_shortname
FROM university_professors;

-- Doublecheck the contents of professors
SELECT *
FROM professors;

Segunda parte:

INSERT INTO table_b ...;

Toma esta parte y añádela a la primera, de modo que inserte todas las filas distintas de table_a en table_b.

Una última cosa: Es importante que ejecutes todo el código a la vez una vez que hayas rellenado los espacios en blanco.

-- Insert unique affiliations into the new table
INSERT INTO affiliations
SELECT DISTINCT firstname, lastname, function, organization
FROM university_professors;

-- Doublecheck the contents of affiliations
SELECT *
FROM affiliations;

Pruébalo tú mismo.

Para saber más sobre las bases de datos relacionales en SQL, consulta este vídeo de nuestro curso Introducción a las bases de datos relacionales en SQL.

Este contenido está tomado del curso Introducción a las bases de datos relacionales en SQL de DataCamp, impartido por Timo Grossenbacher.

Temas

Más cursos sobre bases de datos y SQL

Certificación disponible

Course

Introducción a las bases de datos relacionales en SQL

4 hr
136.7K
Aprende a crear una de las formas más eficaces de almacenar datos: ¡las bases de datos relacionales!
See DetailsRight Arrow
Start Course
Ver másRight Arrow