miércoles, 9 de noviembre de 2016

INSERT SIMPLE


Adición de una Nueva Fila a una Tabla 

Como puede insertar una nueva fila que contiene valores para cada columna, la lista de columnas no es necesaria en la cláusula INSERT. Sin embargo, si no utiliza la lista de columnas, los valores se deben mostrar de acuerdo con el orden por defecto de las columnas de la tabla y se debe proporcionar un valor para cada columna.
 
DESCRIBE  departments

Para mejorar la claridad, utilice la lista de columnas en la cláusula INSERT.Ponga los valores de caracteres y de fecha entre comillas simples; no se recomienda poner valores numéricos entre paréntesis entre comillas simples. 

Los valores numéricos no se deben poner entre comillas simples, ya que se puede producir una conversión implícita de los valores numéricos que se asignan a las columnas del tipo de datos NUMBER si se incluyen comillas simples.
  • Inserte una nueva fila que contenga valores para cada columna.
  • Enumere valores en el orden por defecto de las columnas de la tabla. 
  • Opcionalmente, enumere las columnas de la cláusula INSERT.
  • Escriba los valores de carácter y de fecha entre comillas simples
INSERT INTO departments(department_id,department_name, manager_id, location_id) 
VALUES (70, 'Public Relations', 100, 1700);

Asegúrese de que puede utilizar valores nulos en la columna de destino verificando el estado de Null? con el comando DESCRIBE de iSQL*Plus. 
Oracle Server fuerza automáticamente todos los tipos de datos, los rangos de datos y las restricciones de integridad de datos. Cualquier columna que no se muestre explícitamente obtiene un valor nulo en la fila nueva. 
  • Errores habituales que se pueden producir durante la entrada de usuario: 
  • Falta de un valor obligatorio para una columna NOT NULL 
  • Un valor duplicado viola la restricción de unicidad 
  • Violación de la restricción de clave primaria 
  • Violación de la restricción CHECK 
  • Incongruencia en el tipo de dato 
  • Valor demasiado ancho que no cabe en la columna 

Inserción de Valores Especiales mediante Funciones SQL 

Puede utilizar funciones para introducir valores especiales en la tabla. 



El ejemplo registra información para el empleado Popp de la tabla EMPLOYEES. Suministra la fecha y la hora actuales en la columna HIRE_DATE. Utiliza la función SYSDATE para la fecha y la hora actuales. 

También puede utilizar la función USER al insertar filas en una tabla. La función USER registra el nombre de usuario actual. 

Inserción de Valores de Fecha y Hora Específicos 

Se suele utilizar el formato DD-MON-YY para insertar un valor de fecha. Con este formato, tenga en cuenta que, por defecto, el siglo será el actual. Como la fecha también contiene información de hora, la hora por defecto es medianoche (00.00.00). 

Si hay que introducir una fecha en un formato diferente al formato por defecto (por ejemplo, con otro siglo o a una hora específica), debe utilizar la función TO_DATE



El ejemplo registra información para el empleado Raphealy de la tabla EMPLOYEES. Define la columna HIRE_DATE en el 3 de febrero de 1999. Si utiliza la sentencia siguiente en lugar de la que se muestra en la diapositiva, interpretará que el año de la fecha de contratación es 2099.

   INSERT INTO employees 
   VALUES      (114, 
                          'Den', 'Raphealy', 
                          'DRAPHEAL', '515.127.4561', 
                          '03-FEB-99', 
                          'AC_ACCOUNT', 11000, NULL, 100, 30); 

Si se utiliza el formato RR, el sistema proporciona automáticamente el siglo correcto, aunque no se trate del actual.

Creación de un Archivo de Comandos para Manipular Datos 

Puede guardar comandos con variables de sustitución en un archivo y ejecutarlos en el archivo. El ejemplo de la diapositiva registra información para un departamento de la tabla DEPARTMENTS. 
Ejecute el archivo de comandos y se le solicitará que introduzca las variables de sustitución &. Los valores que introduzca se sustituirán después en la sentencia. Esto le permite ejecutar el mismo archivo de comandos una y otra vez, pero suministrando un juego diferente de valores cada vez que lo ejecute.



Copia de Filas de Otra Tabla 

Puede insertar sentencias INSERT para agregar filas a una tabla en la que los valores se deriven de tablas existentes. En lugar de la cláusula VALUES, utilice una subconsulta.

El número de columnas y los tipos de datos de la lista de columnas deben corresponder con el número de valores y los tipos de datos de la subconsulta. Para crear una copia de las filas de una tabla, utilice SELECT * en la subconsulta:
INSERT INTO copy_emp 
   SELECT *
   FROM   employees;

Para obtener más información, consulte “SELECT” (subsección “subqueries”) en Oracle Database SQL Reference.


Uso de Subconsultas en una Sentencia INSERT 

Puede utilizar una subconsulta en lugar del nombre de tabla en la cláusula INTO de la sentencia INSERT.

La lista de selección de esta subconsulta debe tener el mismo número de columnas que la lista de columnas de la cláusula VALUES. Para que la sentencia INSERT funcione correctamente, se deben seguir las reglas de las columnas de la tabla base. Por ejemplo, no podría agregar un identificador de empleado duplicado ni omitir un valor para una columna obligatoria no nula. 


El ejemplo muestra los resultados de la subconsulta que se utilizó para identificar la tabla para la sentencia INSERT







Share:

0 comentarios:

Publicar un comentario

Archivo

Cual es el tema de mayor interes para ti?