Databases

T02-001- Inserción de registros.

Enunciado

Al hacer un INSERT en el que no se especifiquen los valores de todos los campos, se obtendrá el valor NULL en aquellos campos que no se han indicado.

Ejemplo:

Vamos a aportar valores únicamente en aquellos atributos que no permiten el valor NULL:

INSERT INTO EMPLOYEES (EMPLOYEE_ID, LAST_NAME, EMAIL, HIRE_DATE, JOB_ID)
VALUES (220, 'Apellidos', 'email@carlosiii.es', CURRENT_DATE, 'IT_PROG');

Veamos cual es el resultado de la inserción en la tabla de empleados.

SELECT * FROM EMPLOYEES WHERE EMPLOYEE_ID = 220;

EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID
220 - Apellidos email@carlosiii.es - 29-OCT-21 IT_PROG - - - -

Podemos comprobar que todos los campos que no se han indicado en el INSERT aparecen con el valor NULL.

Si la lista de campos indicados no se corresponde con la lista de valores, o si no se proporcionan valores para campos que no admiten el valor NULL, se obtendrá un error en la ejecución.

Ejemplo:

Si no se indica el campo Apellidos pero sí se especifica un valor para dicho campo:

INSERT INTO EMPLOYEES (EMPLOYEE_ID, EMAIL, HIRE_DATE, JOB_ID)
VALUES (220, 'Apellidos', 'email@carlosiii.es', CURRENT_DATE, 'IT_PROG');

 

** ORA-00913: too many values **

Ejercicio:

La siguiente sentencia generará el error anterior, repárala para que la inserción se pueda completar sin error.

INSERT INTO locations (LOCATION_ID, STREET_ADDRESS)
VALUES (3300, 'C/Carlos III, 3', 'Cartagena');

Añade lo mínimo necesario para que la sentencia se ejecute correctamente.

Tipo

DML

Solución


												
INSERT INTO HR.locations (LOCATION_ID, STREET_ADDRESS, CITY) VALUES (3300, 'C/Carlos III, 3', 'Cartagena');

Prueba


											
SELECT * FROM HR.locations WHERE LOCATION_ID = 3300

Librerías (Onfly databases)