Cómo utilizar el operador union sql

los UNIÓN

operador es la implementación de SQL del operador de unión de álgebra relacional. los UNIÓN operador permite dibujar información de dos o más tablas que tienen la misma estructura. Misma estructura medio

  • Las tablas deben tener el mismo número de columnas.

  • Columnas correspondientes deben tener todos los tipos de datos idénticos y longitudes.

Cuando se cumplen estos criterios, las tablas son compatible con la unión: La unión de las dos tablas devuelve todas las filas que aparecen en cualquiera de las tablas y elimina duplicados.

Supongamos que crea una base de datos de béisbol-estadísticas. Contiene dos mesas con capacidad para un sindicales nombrados Americana y Nacional. Ambos cuadros tienen tres columnas y columnas correspondientes son todos del mismo tipo. De hecho, las columnas correspondientes tienen nombres de columna idénticos (aunque esta condición no es necesaria para la compatibilidad de la unión).

NACIONAL enumera los nombres de los jugadores y el número de juegos completos campales por lanzadores de la Liga Nacional. AMERICAN enumera la misma información sobre los lanzadores de la Liga Americana. los UNIÓN de las dos tablas que da una tabla de resultados virtual que contiene todas las filas de la primera tabla, además de todas las filas de la segunda tabla. Para este ejemplo, unas cuantas filas fueron puestos en cada cuadro para ilustrar el funcionamiento:

SELECT * FROM NACIONAL -FirstName Apellido CompleteGames --------- -------- ------------- Sal Maglie 11Don Newcombe9Sandy Koufax 13Don Drysdale12SELECT * FROM -FirstName AMERICANA Apellido CompleteGames --------- -------- ------------- Whitey Ford 12Don Larson 10Bob Turley 8Allie Reynolds14SELECT * FROM NATIONALUNIonselect * FROM AMERICAN -FirstName Apellido CompleteGames --------- -------- ------------- Allie Reynolds14Bob Turley 8Don Drysdale12Don Larson 10Don Newcombe9Sal Maglie 11Sandy Koufax 13Whitey Ford 12

los UNION DISTINCT funciones de operador de forma idéntica a la UNIÓN sin el operador DISTINCT palabra clave. En ambos casos, las filas duplicadas se eliminan del conjunto de resultados.

El asterisco (*) Se puede utilizar como forma abreviada de todas las columnas en una tabla. Este acceso directo está bien la mayor parte del tiempo, pero usted puede tener problemas al utilizar operadores relacionales en incrustado o módulo-lenguaje SQL.

Si se agrega una o más nuevas columnas a una tabla y no a otro, o de agregar diferentes columnas de las dos tablas, las dos tablas ya no son compatibles con la unión - y su programa no será válida la próxima vez que se vuelve a compilar.

Incluso si se añaden las mismas nuevas columnas a ambos cuadros para que estén siendo compatible con la unión, es probable que no preparó su programa para tratar con datos adicionales. Se deben poner las columnas que desea, en lugar de confiar en el * taquigrafía. Cuando usted está entrando en consultas SQL ad hoc de la consola, el asterisco funciona bien, porque se puede visualizar rápidamente una estructura de tabla para verificar la compatibilidad sindicato si las consultas no tienen éxito.

La operación UNION ALL

los UNIÓN operación suele elimina cualquier filas duplicadas que resultan de su funcionamiento, que es el resultado deseado mayor parte del tiempo. A veces, sin embargo, es posible que desee preservar las filas duplicadas. En esas ocasiones, el uso UNION ALL.

Haciendo referencia al ejemplo, supongamos que " Bullet " Bob Turley había sido negociado en mitad de temporada de los Yankees de Nueva York en la Liga Americana con los Dodgers de Brooklyn en la Liga Nacional. Ahora supongamos que durante la temporada, lanzó ocho juegos completos para cada equipo.

Lo ordinario UNIÓN se muestra en el ejemplo lanza lejos una de las dos líneas que contienen datos de Turley. A pesar de que parecía lanzar sólo 8 juegos completos en la temporada, que en realidad arrojó un notable 16 juegos completos. La siguiente consulta le da los verdaderos hechos:

SELECT * FROM NATIONALUNION ALLSELECT * FROM AMERICAN -

A veces se puede formar un UNIÓN de dos mesas, incluso si no son compatibles con la unión. Si las columnas que desea en su tabla de resultados están presentes y compatible en ambas tablas, se puede realizar una UNIÓN CORRESPONDIENTE operación. Sólo las columnas especificadas se consideran - y son las únicas columnas que se muestran en la tabla de resultados.

La operación correspondiente

Estadísticos Béisbol mantienen diferentes estadísticas sobre los lanzadores que se mantienen en los jardineros. En ambos casos, se registran nombres, apellidos, outs, errores y porcentaje de fildeo. Los jardineros no tienen un won / registro perdido, un guarda registro, o una serie de otras estadísticas que se refieren a lanzar. Todavía se puede realizar una UNIÓN que toma datos de la tabla JARDINERO y de la mesa LANZADOR para darle información acerca de la habilidad defensiva:

SELECT * FROM OUTFIELDERUNION correspondiente (Nombre, Apellido, outs, Errores, FieldPct) SELECT * FROM LANZADOR -

La tabla de resultados contiene los nombres y apellidos de todos los jardineros y los lanzadores, junto con la outs, errores y porcentaje de fildeo de cada jugador. Al igual que con el simple UNIÓN, se eliminan duplicados. Por lo tanto, si un jugador pasó algún tiempo en los jardines y también lanzado en uno o más partidos, el UNIÓN CORRESPONDIENTE operación pierde algunas de sus estadísticas. Para evitar este problema, utilice UNION ALL CORRESPONDIENTE.

Cada nombre de columna en la lista después de la CORRESPONDIENTE palabra clave debe ser un nombre que existe en ambas tablas sindicales unidos. Si omite esta lista de nombres, se utiliza una lista implícito de todos los nombres que aparecen en ambas tablas. Pero esta lista implícita de nombres puede cambiar cuando se añaden nuevas columnas a las tablas. Por lo tanto es mejor lista explícitamente los nombres de columna que se les omitiendo.




» » » » Cómo utilizar el operador union sql