Introducción a INSERT en Oracle
En este artículo, vamos a aprender sobre la consulta INSERT en ORACLE. Como su nombre indica, la consulta INSERT se usa para agregar / insertar registros únicos o múltiples en una tabla. Es una declaración DML. DML significa manipulación de datos. Es una de las consultas de Oracle utilizadas con frecuencia para resolver problemas. Un punto a tener en cuenta es que cuando usamos INSERT debemos proporcionar un valor para cada columna NOT NULL, pero si la columna permite valores NULL, entonces podemos omitir la columna.
Sintaxis
La consulta INSERT tiene una sintaxis bastante simple como veremos a continuación,
- Insertar un solo registro utilizando la palabra clave VALUES.
Sintaxis:
INSERT INTO table_name
(column1, column2, ……, column_n)
VALUES
(expression1, expression2, expression3, expression_n);
- Insertar múltiples registros usando la palabra clave SELECT.
Sintaxis:
INSERT INTO table_name
(column1, column2, ……, column_n)
SELECT expression_1, expression_2, ……., expression_n
FROM source_table
(WHERE conditions);
Parámetros de la declaración INSERT en Oracle
A continuación se muestran los diferentes parámetros de la instrucción INSERT en Oracle:
- nombre_tabla: El nombre de la tabla en la que queremos insertar los valores.
- (column1, column2, ……, column_n): columnas en las que queremos insertar valores
- (expresión1, expresión2, expresión3, expresión_n): Existen los valores que queremos insertar en las columnas respectivas.
- source_table: esta es la tabla de donde extraeremos los datos para insertarlos en la tabla actual.
- (donde condición): esta condición es opcional. Se utiliza cuando queremos insertar datos en función de alguna condición.
Ejemplos para implementar la declaración INSERT en Oracle
Los siguientes son los diferentes ejemplos para implementar la instrucción de inserción en Oracle:
Ejemplo # 1 - INSERTAR usando la palabra clave VALUES
Esta es la forma más fácil de usar el comando INSERT. En este caso, básicamente insertamos valores dando valores reales según las columnas. Podemos usarlo en ambos sentidos al proporcionar las columnas en las que queremos ingresar o sin proporcionar las columnas. Si proporcionamos las columnas, los valores se insertarán según el orden de las columnas que proporcionamos. Analizaremos ambos sentidos con la ayuda de ejemplos.
Consulta:
INSERT INTO employee (employee_id, name, vehicle_name) VALUES('AD010', 'Sharmishtha', 'Hector');
Ahora hemos dejado una columna aquí que es vehicle_id. Por lo tanto, automáticamente se insertará nulo en él.
La imagen a continuación nos muestra los datos de la tabla después de que se hayan insertado los datos.
Como puede ver, la última columna del último registro es nula. Ahora no mencionaremos las columnas, solo use la palabra clave VALUES con INSERT.
Consulta:
INSERT INTO employee VALUES('AD011', 'Shweta', 'Lexus', 'VH011');
Como puede ver, no hemos proporcionado las columnas. Veamos los valores de la tabla después de ejecutar el comando de inserción.
Como puede ver, el último registro se ha insertado en la tabla después de la ejecución de la consulta INSERT.
Ejemplo # 2 - INSERTAR usando una palabra clave SELECT con la condición
Esto es muy útil cuando queremos hacer múltiples inserciones en una tabla. En esto, usamos una instrucción SELECT para insertar datos en nuestra tabla extrayendo datos de otra tabla. También podemos poner condiciones en la consulta si queremos que los datos se inserten en función de alguna condición.
Veremos algunos ejemplos a continuación que nos muestran cómo usar INSERT con SELECT.
Consulta:
INSERT INTO vehicle(vehicle_id, VEHICLE_NAME) SELECT vehicle_id, vehicle_name from employee where Vehicle_name = 'Lexus';
En la consulta anterior, en realidad estamos insertando en el vehículo de la tabla extrayendo datos de otro empleado de la tabla con la condición de que solo aquellos registros que tienen valor como Lexus en la columna nombre_de_vector de los empleados de la tabla sean elegibles para ser extraídos y luego insertados en el Mesa de vehículo. Entonces, cuando ejecutamos la consulta anterior, todos los registros que tengan el nombre del vehículo como Lexus en la tabla empleado se insertarán en la tabla del vehículo. En nuestro caso, solo teníamos uno de esos registros, por lo que si ve la captura de pantalla, verá que la consola dice "1 registro insertado".
Ejemplo # 3 - Usando INSERT ALL en una sola tabla
Esta declaración se usa cuando queremos agregar múltiples registros en una sola tabla usando una sola instrucción INSERT. En lugar de usar INTO, vamos a usar ALL INTO with INSERT para lograr esto. Como ejemplo, supongamos que tenemos un vehículo de tabla y queremos insertar dos registros en él. Si usamos INSERT INTO, entonces tenemos que escribir dos consultas de inserción, pero con INSERT ALL solo tenemos que escribir una consulta. Veamos la consulta para eso
Consulta:
INSERT ALL
INTO vehicle(vehicle_id, vehicle_name) VALUES('VH007', TATA)
INTO vehicle(vehicle_id, vehicle_name) VALUES('VH008', 'Mahindra')
SELECT * FROM dual;
Como puede ver en la consulta anterior, estamos insertando dos registros utilizando una sola instrucción INSERT. Si hubiéramos escrito la misma consulta usando la instrucción INSERT INTO, habría sido como se escribe a continuación,
INSERT INTO vehicle(vehicle_id, vehicle_name) VALUES('VH007', TATA)
INSERT INTO vehicle(vehicle_id, vehicle_name) VALUES('VH008', 'Mahindra')
Salida:
Como puede ver al ejecutar, la consola de consulta proporciona una salida que "2 filas insertadas".
Ejemplo # 4 - Uso de INSERT ALL en varias tablas
También podemos usar la instrucción INSERT ALL para insertar datos en varias tablas. La sintaxis será la misma y solo tenemos que reemplazar los nombres de las tablas y sus columnas y valores correspondientes. Supongamos, por ejemplo, si queremos insertar datos tanto en los empleados como en la tabla del vehículo, entonces la siguiente consulta haría el trabajo.
Consulta:
INSERT ALL
INTO vehicle(vehicle_id, vehicle_name) VALUES('VH009', 'Suzuki')
INTO employee(employee_id, name, vehicle_name, vehicle_id) VALUES('AD012', 'Suresh', 'Suzuki', 'VH009')
SELECT * FROM dual;
Como puede ver en la consulta anterior, acabamos de cambiar el nombre de la tabla y, en consecuencia, sus columnas y valores. Si hubiéramos escrito la misma consulta usando la instrucción INSERT INTO, habría sido como se escribe a continuación,
INSERT INTO vehicle(vehicle_id, vehicle_name) VALUES('VH009', 'Suzuki');
INSERT INTO employee(employee_id, name, vehicle_name, vehicle_id) VALUES('AD012', 'Suresh', 'Suzuki', 'VH009');
Salida:
Como puede ver al ejecutar, la consola de consulta proporciona una salida que "2 filas insertadas".
Artículos recomendados
Esta es una guía para INSERTAR en Oracle. En este artículo, discutimos qué es la instrucción INSERT, las sintaxis y las diversas formas en que podemos usar la instrucción INSERT junto con sus ejemplos apropiados. También puede consultar los siguientes artículos para obtener más información.
- Ejemplos de consulta de inserción SQL
- ¿Cómo funciona la cláusula GROUP BY en SQL?
- Las 5 mejores consultas en Oracle
- Guía completa para Oracle Data Warehousing