Differenza tra join interno e join esterno in SQL

Autore: Laura McKinney
Data Della Creazione: 2 Aprile 2021
Data Di Aggiornamento: 12 Maggio 2024
Anonim
SQL JOIN: Condition in “ON” vs. “WHERE"
Video: SQL JOIN: Condition in “ON” vs. “WHERE"

Contenuto


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

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per il confrontoInner JoinJoin esterno
Di baseInner Join restituisce solo le tuple corrispondenti da entrambe le tabelle.Join esterno visualizza tutte le tuple di entrambe le tabelle.
Banca datiLa dimensione potenziale del database restituito da Inner Join è comparativamente inferiore a Join esterno.L'unione esterna restituisce un database relativamente più grande.
tipiNessun tipoJoin esterno sinistro,
Right Outer Join,
e Full Outer Join.


Definizione di Inner Join

Inner Join è anche chiamato Natural Join. Inner Join confronta due tabelle e combina la tupla corrispondente in entrambe le tabelle. Viene anche chiamato come tipo predefinito di join, poiché la clausola Join viene scritta senza la parola chiave interna per eseguire il join naturale. Se la clausola Join viene scritta senza la parola chiave esterna, viene eseguita anche la join interna.

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 Join interno.

SELEZIONA Nome, Sem, Nome_deposito DA Studente 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 tabelle.

Definizione di Outer Join

Diversamente da Inner Join, vengono emesse solo quelle tuple con gli stessi valori di attributo in entrambe le tabelle confrontate; Join esterno restituisce tutte le tuple di entrambe le tabelle. L'unione esterna è di tre tipi Join esterno sinistro, Join esterno destro, e Join esterno completo.

Cerchiamo di capirli uno per uno. Innanzitutto, prendiamo il Left Outer Join.

Seleziona Nome, Nome reparto Da Studente Sinistra Esterna Iscriviti a Dipartimento ON Student.Department_ID = Depoartment.ID.

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

Seleziona Nome, Nome_distribuzione Da Dipartimento Destro Esterno Unisciti a Studente ON Student.Department_ID = Depoartment.ID.

Puoi vedere che sono visualizzate tutte le tuple dalla tabella Dipartimento.

Seleziona Nome, Nome reparto da Studente Completo Esterno Iscriviti a Dipartimento ON Student.Department_ID = Depoartment.ID.

Puoi osservare che tutte le tuple di entrambe le tabelle sono visualizzate nel risultato.

  1. La differenza di base tra il Join interno e il Join esterno è che il join interno confronta e combina solo le tuple corrispondenti dalla parte inferiore delle tabelle. D'altra parte, l'unione esterna confronta e combina tutte le tuple di entrambe le tabelle confrontate.
  2. Le dimensioni del database del risultante ottenuto dal Join interno sono inferiori rispetto al Join esterno.
  3. Esistono tre tipi di Join esterno: Left Outer Join, Righ Outer Join e Full Outer Join. Ma Join interno non ha tali tipi.

Conclusione:

Entrambi i join sono molto utili. Il loro utilizzo dipende dalle esigenze dell'utente.