<| div>

8i | 9i | 10g | 11g | 12c | 13c | 18c | 19C | 21c | Misc/PL | SQL | SQL | RAC | WebLogic/Linux

inicio «artículos» Misc » aquí

Esta es la octava parte de una serie de artículos que muestran los conceptos básicos de SQL. En este artículo echamos un vistazo a algunas de las variaciones en la declaración INSERT.,

  • Setup
  • COMMIT and ROLLBACK
  • Basic INSERT
  • INSERT into View
  • INSERT … SELECCIONE
  • Subconsultas Escalares

artículos Relacionados.

  • SQL para principiantes (Parte 8): la instrucción INSERT
  • SQL para principiantes – lista de reproducción completa
  • Oracle SQL Articles – Getting Started
  • Multitable Inserts

Setup

puede realizar todas estas consultas en línea de forma gratuita utilizando SQL Fiddle.

los ejemplos de este artículo requieren que las siguientes tablas estén presentes.,

estas tablas son una variante de las tablas EMP y DEPT del esquema SCOTT. Verá muchos ejemplos de Oracle en internet utilizando las tablas del esquema SCOTT. Puede encontrar las definiciones originales de la tabla en «or ORACLE_HOME/rdbms/admin / utlsampl.sql » script.

En este artículo, también vamos a necesitar la siguiente copia de la tabla EMPLEADOS. Observe que hemos hecho que las columnas EMPLOYEE_NAME y JOB sean obligatorias. La columna EMPLOYEE_ID es implícitamente obligatoria, como resultado de ser la clave primaria.,

confirmar y revertir

todos los cambios en el lenguaje de manipulación de datos (DML) se realizan como parte de una transacción. No son permanentes hasta que se confirman usando la instrucción COMMIT. Una vez confirmado, la única forma de revertir un cambio es emitir una nueva instrucción DML para alterar los datos. Se pueden agrupar varias declaraciones para formar una sola transacción.

Los comandos del lenguaje de definición de datos (DDL) realizan una confirmación implícita, que también confirma todos los cambios DML pendientes en la sesión actual.,

si decide que no desea mantener algunos cambios sin confirmar, Puede desecharlos utilizando la instrucción ROLLBACK. Muchos de los ejemplos de este artículo emitirán sentencias ROLLBACK después de la prueba, para revertir los datos a su estado original.

algunas herramientas y lenguajes de programación se comprometen automáticamente, por lo que emiten automáticamente una instrucción COMMIT después de cada instrucción DML que procesan. No dejes que esto te engañe pensando que esto es un comportamiento predeterminado. No lo es.,

Basic INSERT

la versión más simple de la instrucción INSERT no especifica las columnas que se insertarán. Asume que los valores se especifican en el orden correcto de las columnas y que no se han omitido los valores de las columnas. Como resultado, esto es peligroso en el código de la aplicación, ya que agregar una columna a la tabla romperá la instrucción.

especificar una lista de columnas es mucho más seguro, ya que la instrucción no se romperá si se agregan columnas opcionales a la tabla.,

una lista explícita de columnas también le permite eliminar columnas opcionales de la instrucción e intercambiar las posiciones de las columnas en la instrucción. En el siguiente ejemplo, las columnas MANAGER_ID, COMMISSION y DEPARTMENT_ID se han eliminado y la columna EMPLOYEE_ID se ha movido al final de la lista de columnas y la lista de valores.

recuerde que no se permiten columnas obligatorias, a menos que tenga valores predeterminados de columna o disparadores que las rellenen. En el siguiente ejemplo se omite la columna JOB, que es una columna obligatoria en la tabla EMPLOYEES2.,

insertar en Vistas

es posible insertar en la tabla base asociada a una vista. Hay algunas restricciones asociadas con esto, pero están un poco fuera de alcance para un artículo de nivel principiante. En el siguiente ejemplo, creamos una vista simple en la tabla EMPLOYEES2, luego la insertamos en ella.

no lo verá muy a menudo, pero también puede insertarlo en vistas en línea. Esto se puede usar para controlar la lista de columnas para la inserción, en lugar de usar una lista de columnas explícita.

insértese …, Seleccionar

es posible crear varias filas en una sola instrucción INSERT utilizando la sintaxis INSERT ... SELECT. El siguiente ejemplo copia todos los datos de la tabla EMPLOYEES en la tabla EMPLOYEES2.

la lista de columnas de la instrucción INSERT debe coincidir con la lista SELECT de la consulta.

las reglas normales se aplican a la parte de consulta de la instrucción, por lo que puede filtrar los datos o unirse a otras tablas para recopilar los datos.,

subconsultas escalares

las subconsultas escalares se pueden utilizar para obtener un valor para una instrucción INSERT. En el siguiente ejemplo, la columna salario se rellena con una subconsulta escalar, que devuelve el salario máximo de la tabla Empleados y le agrega 1000.

Para más información, véase: