El lenguaje SQL (III):

Publicado: julio 12, 2011 en Oracle

El Operador UNION

El operador UNION devuelve todas las filas seleccionadas por cualquiera de las dos consultas. Utilice el operador UNION para devolver todas las filas de varias tablas y eliminar las filas duplicadas.

Instrucciones

• El número de columnas y los tipos de datos de las columnas que se están seleccionando deben ser idénticos en todas las sentencias SELECT utilizadas en la consulta. No es necesario que los nombres de las columnas sean idénticos.

• UNION opera sobre todas las columnas que se están seleccionando.

• Los valores NULL no se ignoran durante la comprobación de duplicados.

• El operador IN tiene una prioridad más alta que el operador UNION.

• Por defecto, la salida se clasifica en orden ascendente de la primera columna de la cláusula SELECT.


CREATE TABLE SCOTT.JOB_HISTORY AS SELECT * FROM SCOTT.EMP;

INSERT INTO SCOTT.JOB_HISTORY

VALUES (7499,’ALLEN’,’CLERK’,7698,TO_DATE(’20/02/1981′,’DD/MM/YYYY’),1000,300,20);

COMMIT;

SELECT

EMPNO,JOB

FROM

scott.emp

UNION

SELECT

EMPNO,JOB

FROM

SCOTT.JOB_HISTORY;


El operador UNION elimina los registros duplicados. Si hay registros creados en las tablas EMP y JOB_HISTORY que son idénticos, sólo se muestran una vez. Observe en la salida que el registro para el empleado con EMPNO 7499 aparece dos veces, porque JOB es diferente en cada fila.

Observe el siguiente ejemplo:


SELECT empno, job, deptno

FROM scott.emp

UNION

SELECT empno, job, deptno

FROM scott.job_history;


El Operador UNION ALL

Utilice el operador UNION ALL para devolver todas las filas de varias consultas.

Instrucciones
• A diferencia de lo que sucede con UNION, las filas duplicadas no se eliminan y la salida no se ordena por defecto.

• No se puede utilizar la palabra clave DISTINCT.

Nota: Con la excepción de lo anterior, las instrucciones para UNION y UNION ALL son las mismas.

Ejemplo:


SELECT

empno, job, deptno

FROM

scott.emp

UNION ALL

SELECT

empno, job, deptno

FROM

scott.job_history

ORDER BY

empno;

 

D.M.L.

S.Q.L.
Manipulación de Datos (DML)

  • Sentencias DML son:
    • INSERT Añade registros a una tabla.
    • UPDATE Modifica registros existentes de una tabla.
    • DELETE Elimina registros existentes de una tabla.

S.Q.L.
Control de Datos (DCL)

  • Estas sentencias se completan con los comandos de control de transacción (DCL), las cuales aseguran la consistencia de los datos.
    • COMMIT Finaliza la transacción actual haciendo que todos los cambios pendientes pasen a ser permanentes.
    • ROLLBACK Finaliza la transacción en curso descartando todos los cambios pendientes.
    • SAVEPOINT Establece una "marca" dentro de la transacción en curso, usada por COMMIT o ROLLBACK.

S.Q.L.
La Sentencia INSERT

  • Mediante esta sentencia sólo se inserta un registro cada vez.
  • El nombre de las columnas es opcional. Si se omiten se deben colocar los valores en el orden que las columnas tienen en la tabla.
  • Caracteres y fechas entre comillas simples.

S.Q.L.
Inserción de Valores Nulos

  • Método Implícito: Omitir la columna en la lista:

  • Método Explícito: Especificar NULL o el string vacío (‘’), para cadenas y fechas, en la lista de VALUES:

S.Q.L.
Inserción Valores Especiales

  • SYSDATE registra la fecha y hora actual:

  • USERID inserta el nombre del usuario actual

S.Q.L.
Inserción reg. de otra tabla

  • Se escribe el comando INSERT con una subconsulta.
  • No usar la cláusula VALUES.
  • Deben coincidir el número de columnas de INSERT con el de la subconsulta

S.Q.L.
La Sentencia UPDATE

  • Los registros a modificar se especifican por medio de la cláusula WHERE.
  • Si se omite WHERE se modificarían todos los registros de la tabla.

S.Q.L.
Modificación con subconsultas

  • P.ej.: Modificar el oficio y departamento del empleado 7698, con los valores correspondientes actualmente al empleado 7499:

S.Q.L.
La Sentencia DELETE

  • Los registros a eliminar se especifican en la cláusula WHERE.
  • Si se omite WHERE se borrarán todos los registros de la tabla.

S.Q.L.
Eliminación con subconsulta

  • Utilice subconsultas en sentencias DELETE, para eliminar registros de una tabla, basados en valores de otra tabla:

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s