Combina dues taules en SQL

Combina Dues Taules En Sql



En SQL, la fusió de taules es refereix al procés de combinar les dades de dues taules separades en una base de dades determinada en una sola unitat basada en una columna o criteris comuns. Sí, si sona com una taula, això és exactament el que és.

Una unió a una taula o una combinació de taules és una característica coneguda de les bases de dades relacionals i és increïblement potent. Ens permet consolidar la informació de diverses fonts per crear una visió de dades més coherent i significativa. També permet que les bases de dades relacionals siguin altament escalables (no flexibles), ja que podem dividir les dades en fragments més petits i manejables als quals podem fer referència més endavant.

En aquest tutorial, tractarem els fonaments de les unions de taules o combinacions de taules. Mirem les mostres de taules del món real per consolidar el nostre coneixement.







Taula de mostra

Abans d'entrar al món de les unions de taules, configurem les taules bàsiques que farem servir per a la demostració.



Considereu dues taules que contenen els empleats i la informació salarial tal com es mostra a les consultes d'exemple següents:



Empleats CREATE TAULA (

employee_id INT AUTO_INCREMENT PRIMARY KEY,

primer_nom VARCHAR( 50 ),

cognom VARCHAR( 50 ),

departament VARCHAR( 50 )

);

A continuació, podem inserir les dades de mostra a la taula de l'empleat tal com es mostra a les consultes següents:





INSERT INTO empleats (nom, cognoms, departament) VALORS

( 'Alícia' , 'Smith' , 'Recursos humans' ),

( 'Bob' , 'Johnson' , 'Màrqueting' ),

( 'Charlie' , 'Wilson' , 'Finances' ),

( 'David' , 'marró' , 'vendes' ),

( 'Eva' , 'Davis' , 'Enginyeria' );

Continuem i creem una taula nova per emmagatzemar la informació salarial de la següent manera:

CREAR TAULA salaris (

salary_id INT AUTO_INCREMENT PRIMARY KEY,

identificador_empleat INT,

salari DECIMAL( 10 , 2 ),

data_inici DATE,

data_final DATE,

CLAU EXTRANJERA (employee_id) REFERÈNCIES empleats (employee_id)

);

Afegiu les dades de mostra d'inserció a la taula de la manera següent:



INSERT INTO salaris (employee_id, salari, start_date, end_date) VALORS
( 1 , 60.000,00 , '2023-01-01' , '2023-12-31' ),
( 2 , 55.000,00 , '2023-01-01' , '2023-12-31' ),
( 3 , 65.000,00 , '2023-01-01' , '2023-12-31' ),
( 4 , 58.000,00 , '2023-01-01' , '2023-12-31' ),
( 5 , 70.000.00 , '2023-01-01' , '2023-12-31' );

Això ens hauria de proporcionar dues taules que ens poden ajudar a demostrar el concepte d'unió/fusion de taules en SQL.

Combinació de taules SQL/Unions de taula

Explorem els diferents tipus de combinacions de taules que podem fer. Cobrirem els fonamentals a mesura que avancem cap a altres més avançats.

COMBINACIÓ INTERNA

El primer i el més comú tipus d'unió de taula a SQL és un INNER JOIN. Un INNER JOIN ens permet combinar les files de dues taules en funció d'una condició específica. Aquest tipus només retorna les files on hi ha una coincidència entre les taules.

Prenem com a exemples les taules 'empleats' i 'salaris' que hem creat anteriorment. Per realitzar una INNER JOIN en SQL, utilitzem la clàusula INNER JOIN de la següent manera:

SELECCIONA

e.employee_id,

e.nom_de_nom,

e.cognoms,

e.departament,

s.salari

DE

empleats e

INNER JOIN salaris s ON

e.employee_id = identificador_de_empleat;

En la consulta d'exemple donada, utilitzem un INNER JOIN per combinar les taules 'empleats' i 'salaris' a la columna 'employee_id' que existeix a les dues taules. El conjunt resultant conté només les files coincidents de les dues taules.

Un exemple de sortida és el següent:

UNIÓ EXTERIOR ESQUERRA

També tenim un LEFT OUTER JOIN que combina totes les files de la taula esquerra i les files coincidents de la taula dreta. Si no hi ha cap coincidència a la taula correcta, la unió utilitza el valor NULL.

SELECCIONA

e.employee_id,

e.nom_de_nom,

e.cognoms,

e.departament,

s.salari

DE

empleats e

LEFT JOIN salaris s

ON

e.employee_id = identificador_de_empleat;

En aquest exemple, realitzem una unió exterior a l'esquerra per combinar les taules 'empleats' i 'salaris'. S'inclouen totes les files de la taula 'empleats' i s'afegeixen les files coincidents de la taula 'salaris'. Tanmateix, els valors NULL s'inclouen a la columna 'salari' per a les files que no coincideixen.

UNIÓ SQL

Un altre mètode per unir les taules en SQL és utilitzar l'operador UNION. Aquest operador ens permet combinar els resultats de dues o més declaracions selectes en un únic conjunt de resultats.

Les columnes de cada instrucció SELECT han de tenir el mateix tipus de dades perquè la unió sigui aplicable.

Un exemple és el següent:

SELECT employee_id , first_name , last_name , departament , NULL AS salari

DELS empleats e

UNIÓ

SELECT employee_id , NULL AS primer_nom , NULL AS cognoms , NULL AS departament , salari

DE sous s ;

En aquest cas, un Sindicat fusiona les taules “empleats” i “salaris”. A continuació, creem les columnes NULL a cada instrucció SELECT per assegurar-nos que ambdues taules tinguin un nombre similar de columnes.

LES UNIONS són tècnicament habituals, però poden ser útils sobretot quan cal fusionar les taules amb estructures diferents.

Conclusió

En aquest tutorial, hem explorat els fonaments d'unir/fusionar dues taules en un únic conjunt de resultats. És bo tenir en compte que hi ha unions molt més avançades que es comenten en aquesta publicació.