Está en la página 1de 2

INSERT

Última actualización: 2021-03-08

INSERT es una sentencia SQL que añade datos a una tabla.

La sentencia INSERT tiene el formato siguiente:


INSERT INTO nombtabla
VALUES (valor1, valor2, ...)
En esta sintaxis, nombtabla es el nombre de la tabla o vista en la que se desea
insertar datos y valor1, valor2 (etc.), son los valores que va a insertar.

La lista de valores de datos después de VALUES debe corresponderse con la lista


de columnas de la tabla en la que van a ser insertados. Debe haber el mismo
número de valores que de columnas, y cada valor debe tener un tipo de datos que
coincida con el de su columna. Como se indica en el ejemplo siguiente, los valores
nulos se pueden insertar especificando NULL.

Esta sentencia:

INSERT INTO PERS


VALUES (400, 'GONZALEZ', 20, 'VENTA', NULL, 18000,66, 0)

Inserta esta línea en la tabla PERS:

ID NOMBRE DTO TAREA AÑOS SALARIO COMISION


------ --------- ------ ----- ------ --------- ---------
400 GONZALEZ 20 VENTA - 18000,66 0,00
La tabla PERS es una copia de la tabla de ejemplo Q.PLANTILLA. Si no desea
utilizar la sentencia CREATE TABLE, también puede crear PERS con estos dos
mandatos:
VISUALIZAR Q.PLANTILLA
SALVAR DATOS COMO PERS
Insertar valores de columna en una fila

Si desea insertar una fila sin proporcionar valores para todas las columnas de una
fila, puede utilizar una lista de columnas con la sentencia INSERT.

Especifique los valores que desea insertar en las columnas, como en el ejemplo
siguiente:
INSERT INTO PERS (ID, NOMBRE, TAREA, SALARIO)
VALUES (510, 'RUBIO', 'OFIC', 11500,75)
Un modo fácil de crear una consulta INSERT es utilizando el mandato
DESCRIBIR de QMF tal como se muestra a continuación:
DESCRIBIR nombretabla (TIPO=INSERT
Las columnas para las que no se especifican valores no reciben ningún valor
(NULL). Si una columna se define como NOT NULL, debe especificar valores
para ella.
Copia de filas de una tabla a otra

Se pueden insertar filas en una tabla copiando los datos de otra tabla y utilizando
una subconsulta para identificar las columnas que deben insertarse en lugar de
utilizar la cláusula VALUES con INSERT. La información recuperada por la
subconsulta se coloca en la tabla como si se hubieran entrado varios mandatos
INSERT.

La siguiente sentencia copia las columnas ID, NOMBRE, TAREA y AÑOS para
los miembros del Departamento 38 de Q.PLANTILLA en PERS:
INSERT INTO PERS (ID, NOMBRE, TAREA, AÑOS)
SELECT ID, NOMBRE, TAREA, AÑOS
FROM Q.PLANTILLA
WHERE DTO = 38
Deben especificarse valores para todas las columnas que se han definido como
NOT NULL.

No es necesario que exista una correspondencia exacta entre las columnas


seleccionadas y las columnas insertadas; sin embargo, no debe haber más
columnas seleccionadas que columnas insertadas. Si el número de columnas
seleccionadas es menor que el número de columnas insertadas, las columnas
restantes se insertan con nulos. No pueden seleccionarse filas para la inserción en
la misma tabla.

También podría gustarte