Raccomandato, 2024

Scelta Del Redattore

Differenza tra inner join e outer join in SQL

Join interno e Outer Join sono entrambi i tipi di Join. Unisci confronta e combina le tuple di due relazioni o tabelle. Inner Join specifica il join naturale, ovvero se si scrive una clausola Join senza la parola chiave Inner, quindi esegue l'operazione di join naturale. La differenza potenziale tra Inner Join e Outer Join è che Inner Join restituisce solo le tuple corrispondenti di entrambi i tavoli e Outer Join restituisce tutte le tuple da entrambe le tabelle confrontate. Cerchiamo di discutere alcune altre differenze tra Inner Join e Outer Join con l'aiuto della tabella di confronto mostrata di seguito.

Grafico comparativo

Base per il confrontoJoin internoOuter Join
Di baseInner Join emette solo le tuple corrispondenti da entrambe le tabelle.Outer Join mostra tutte le tuple da entrambi i tavoli.
Banca datiLa dimensione potenziale del database restituita da Inner Join è relativamente più piccola di Outer Join.Il join esterno restituisce un database comparativamente più grande.
tipiNessun tipoJoin esterno sinistro,
Giusto outer join,
e Full Outer Join.

Definizione di Inner Join

Anche Inner Join è indicato come Natural Join. Inner Join confronta due tabelle e combina la tupla corrispondente in entrambi i tavoli. Viene anche chiamato come tipo predefinito di join, poiché la clausola Join viene scritta senza la parola chiave inner che esegue il join naturale. Se la clausola Join viene scritta senza la parola chiave Outer, viene eseguita anche la inner join.

Inner Join può essere spiegato con un esempio. Ci sono due tabelle tabella studenti e tabella dipartimento. Ora ci consente di capire che cosa esegue Inner Join.

SELECT Name, Sem, Deparment_name FROM Student INNER JOIN Dipartimento ON Student.Department_ID = Department.ID.

Puoi vedere che solo quelle tuple sono ottenute nel risultante dove Student.Department_ID = Department.ID. Quindi, possiamo dire che Inner Join combina solo la tupla corrispondente di due tavoli.

Definizione di outer join

A differenza di Inner Join, vengono prodotte solo le tuple che hanno gli stessi valori degli attributi nella tabella comparata; Outer Join emette tutte le tuple di entrambi i tavoli. Outer Join è di tre tipi: Join esterno sinistro, Join esterno destro e Join esterno completo .

Cerchiamo di capirli uno per uno. Per prima cosa, prendiamo Left Outer Join.

Selezionare Nome, Nome reparto Da Studente A sinistra Esterno Unire Dipartimento ON Student.Department_ID = Depoartment.ID.

Puoi vedere che tutte le tuple della Tabella degli studenti sono visualizzate nel risultato.

Seleziona Nome, Nome reparto Da Dipartimento A destra Esterno Accedi a Student ON Student.Department_ID = Depoartment.ID.

Puoi vedere che tutte le tuple dalla tabella di dipartimento vengono visualizzate.

Selezionare Nome, Department_name Da Student Full Outer Iscriviti Dipartimento ON Student.Department_ID = Depoartment.ID.

È possibile osservare che tutte le tuple di entrambe le tabelle vengono visualizzate nel risultato.

Differenze chiave tra l'unione interna e l'unione esterna

  1. La differenza fondamentale tra Join interno e Outer Join è che l'inner join confronta e combina solo le tuple corrispondenti da quelle dei tavoli. D'altra parte, Outer Join confronta e combina tutte le tuple di entrambe le tabelle confrontate.
  2. La dimensione del database del risultato ottenuto dall'Inner Join è più piccola di Outer Join.
  3. Vi sono tre tipi di Join esterno esterno, Join esterno destro e Join esterno completo. Ma inner Join non ha questo tipo.

Conclusione:

Entrambi i join sono molto utili. L'uso dipende dalle esigenze dell'utente.

Top