sql >> Base de Datos >  >> RDS >> Database

SQL Union:una guía completa sobre el operador UNION

Mientras manejamos datos en bases de datos, a menudo tendemos a usar los operadores de conjuntos en SQL, para recuperar datos de acuerdo con nuestros requisitos combinando dos o más declaraciones SELECT. En este artículo sobre SQL UNION, analizaré el operador UNION utilizado para recuperar datos en la siguiente secuencia:

  • ¿Qué es el operador SQL UNION?
  • Sintaxis:
    1. Sintaxis UNION
    2. Sintaxis de UNION ALL
  • Diferencias entre UNION y UNION ALL
  • Ejemplos de SQL UNION:
    1. Ejemplo de operador UNION
    2. Ejemplo de operador UNION ALL
    3. UNION con alias de SQL
    4. UNIÓN con cláusula WHERE
    5. UNION ALL con cláusula WHERE
    6. UNIÓN con UNIONES
    7. UNION ALL con JOINS

¡Empecemos!

¿Qué es el operador SQL UNION?

Como sugiere el nombre, este operador/cláusula se usa para combinar los resultados de dos o más instrucciones SELECT. Aquí, cada instrucción SELECT utilizada dentro de la instrucción UNION debe tener el mismo número de columnas en el mismo orden. Además, todas las columnas presentes en las sentencias SELECT deben tener tipos de datos similares.

La cláusula UNION proporciona solo valores únicos como salida. Por si acaso, desea valores duplicados, entonces debe usar la cláusula UNION ALL.

Continuando con este artículo sobre SQL UNION, comprendamos la sintaxis.

Sintaxis SQL UNION

Sintaxis UNION

SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1
UNION
SELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;

Sintaxis UNION ALL

SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1
UNION ALL
SELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;

Continuando con este artículo, comprendamos las diferencias entre UNION y UNION ALL.

Diferencias entre SQL UNION y UNION ALL

UNIÓN UNIR TODO
Combina dos o más conjuntos de resultados y no conserva los valores duplicados. Combina dos o más conjuntos de resultados y mantiene los valores duplicados.
Syntax: UNION
Syntax: UNION ALL

A continuación, en este artículo sobre SQL UNION, comprendamos las diferentes formas de usar este operador.

Ejemplos de SQL UNION y UNION ALL

Para su mejor comprensión, consideraré las siguientes tablas para mostrarle diferentes ejemplos.

Tabla de empleados

EmpID Nombre EmpAge Ciudad Código Postal País
1 Emma 23 Berlín 12109 Alemania
2 Raúl 26 Mumbai 400015 India
3 Aayra 24 Nueva York 10014 EE.UU.
4 Juan 32 Londres E1 7AE Reino Unido
5 Derek 29 Nueva York 10012 EE.UU.

Tabla de Proyectos

ID del proyecto Nombre Días Laborables Ciudad Código postal País
1 Proyecto 1 10 Berlín 12109 Alemania
2 Proyecto 2 7 Mumbai 400015 India
3 Proyecto 3 20 Delhi 110006 India
4 Proyecto 4 15 Mumbai 400015 India
5 Proyecto 5 28 Berlín 12109 Alemania

Comencemos con ejemplos.

Ejemplos de SQL UNION

Ejemplo de operador UNION

Escriba una consulta para recuperar distintas ciudades de la tabla de empleados y proyectos.

SELECT City FROM Employees
UNION
SELECT City FROM Projects
ORDER BY City;

Salida:

Ciudad

Berlín

Delhi

Londres

Mumbai

Nueva York

Ejemplo de operador UNION ALL

Escriba una consulta para recuperar ciudades de la tabla de empleados y proyectos. Aquí, se deben incluir valores duplicados.

 
SELECT City FROM Employees
UNION ALL
SELECT City FROM Projects
ORDER BY City; 

Salida:

Ciudad

Berlín

Berlín

Berlín

Delhi

Londres

Mumbai

Mumbai

Mumbai

Nueva York

Nueva York

A continuación en este artículo, comprendamos cómo usar la cláusula UNION con alias SQL.

UNION con alias de SQL

Los alias de SQL se utilizan para dar a una tabla o columna un nombre temporal. Entonces, escribamos una consulta para enumerar todos los empleados y proyectos únicos.

SELECT 'Employee' AS Type, Name, City, Country
FROM Employees
UNION
SELECT 'Project', Name, City, Country
FROM Projects;

Salida:

Tipo Nombre Ciudad País
Empleado Emma Berlín Alemania
Empleado Raúl Bombay India
Empleado Aayra Nueva York EE.UU.
Empleado Juan Londres Reino Unido
Empleado Derek Nueva York EE.UU.
Proyecto Proyecto 1 Berlín Alemania
Proyecto Proyecto 2 Bombay India
Proyecto Proyecto 3 Delhi India
Proyecto Proyecto 4 Bombay India
Proyecto Proyecto 5 Berlín Alemania

UNIÓN con cláusula WHERE

Escriba una consulta para recuperar las distintas ciudades indias y sus códigos postales de la tabla Empleados y Proyectos.

SELECT City, PostalCode, Country FROM Employees
WHERE Country='India'
UNION
SELECT City, PostalCode, Country FROM Projects
WHERE Country='India'
ORDER BY City;

Salida:

Ciudad Código Postal País
Delhi 110006 India
Mumbai 400015 India

UNION ALL con cláusula WHERE

Escriba una consulta para recuperar las ciudades indias y sus códigos postales tanto de la tabla de Empleados como de Proyectos, donde se permiten valores duplicados

SELECT City, PostalCode, Country FROM Employees
WHERE Country='India'
UNION ALL
SELECT City, PostalCode, Country FROM Projects
WHERE Country='India'
ORDER BY City;

Salida:

Ciudad Código postal País
Delhi 110006 India
Mumbai 400015 India
Mumbai 400015 India
Mumbai 400015 India

Avanzando en este artículo, comprendamos cómo usar las cláusulas UNION y UNION ALL con JOINS. JOINS en SQL son comandos que se utilizan para combinar filas de dos o más tablas, en función de una columna relacionada entre esas tablas.

UNIÓN con UNIONES

El operador SQL UNION se puede usar con SQL JOINS para recuperar datos de dos tablas diferentes. Voy a considerar la siguiente tabla junto con la tabla Empleados para el ejemplo.

Tabla de detalles del proyecto

PID Días Laborables EmpID Coste del proyecto
11 12 4 20000
22 16 3 35000
33 30 1 60000
44 25 3 45000
55 21 1 50000
SELECT  EmpID, Name, CostforProject
   FROM Employees
   LEFT JOIN ProjectDetails
   ON Employees.EmpID = ProjectDetails.EmpID
UNION
   SELECT  EmpID, Name, CostforProject
   FROM Employees
   RIGHT JOIN ProjectDetails
   ON Employees.EmpID = ProjectDetails.EmpID;

Salida:

EmpID Nombre Coste del proyecto
1 Emma 60000
1 Emma 50000
2 Raúl NULO
3 Aayra 35000
3 Aayra 45000
4 Juan 20000
5 Derek NULO

UNION TODO con JOINS

Escriba una consulta para recuperar EmpID, Name y CostforProject de la tabla Employees y ProjectDetails, donde se permiten valores duplicados.

SELECT  EmpID, Name, CostforProject
   FROM Employees
   LEFT JOIN ProjectDetails
   ON Employees.EmpID = ProjectDetails.EmpID
UNION ALL
   SELECT  EmpID, Name, CostforProject
   FROM Employees
   RIGHT JOIN ProjectDetails
   ON Employees.EmpID = ProjectDetails.EmpID;

Salida:

EmpID Nombre Coste del proyecto
1 Emma 60000
1 Emma 50000
2 Raúl NULO
3 Aayra 35000
3 Aayra 45000
4 Juan 20000
5 Derek NULO
4 Juan 20000
3 Aayra 35000
1 Emma 60000
3 Aayra 35000
1 Emma 50000

Con esto, llego al final de este artículo sobre SQL UNION. Espero que haya disfrutado leyendo este artículo sobre SQL UNION. Hemos visto las diferentes formas de usar los comandos UNION y UNION ALL para ayudarlo a escribir consultas. Si desea obtener más información sobre MySQL y conocer esta base de datos relacional de código abierto, consulte nuestro MySQL DBA Capacitación de certificación que viene con capacitación en vivo dirigida por un instructor y experiencia en proyectos de la vida real. Esta capacitación lo ayudará a comprender MySQL en profundidad y lo ayudará a dominar el tema.

¿Tiene alguna pregunta para nosotros? Menciónelo en la sección de comentarios de "SQL UNION" y me comunicaré con usted.