Tipi di join MySQL | MySQL si unisce [con sintassi]

Pubblicato: 2020-12-09

Sommario

introduzione

MySQL è un sistema di gestione di database relazionali (RDBMS) open source supportato da Oracle. MySQL è composto da due parole: "My", il nome della figlia del co-fondatore Michael Widenius, e "SQL", l'abbreviazione di Structured Query Language.

La parola Relational in RDBMS è il fondamentale su cui JOINS in MySQLwork. Ci possono essere molti tipi e numeri di tabelle in qualsiasi database. JOINS come suggerisce il nome collega le tabelle insieme usando colonne comuni. Un esempio di base è che la tabella 1 contiene i dettagli dei dipendenti e la tabella 2 i dettagli del progetto.

Se dobbiamo controllare i progetti in cui è coinvolto un dipendente, possiamo unire le tabelle sul nome del dipendente o sull'identificativo del dipendente, quindi così facendo si uniranno alle tabelle e sarà possibile accedere alla nuova tabella virtuale (può essere salvata) con tutte le informazioni richieste .

Caratteristiche

  • MySQL è Open-Source e un vero e proprio RDBMS per accedere e gestire i record delle tabelle.
  • Supporta il linguaggio di codifica SQL, molto comune nel campo della gestione dei database.
  • MySQL è semplice e facile da usare. Ha una quantità schiacciante di documentazione se qualcuno è bloccato su un problema particolare.
  • MySQL ha un livello di sicurezza molto forte. Le password sono crittografate, quindi i dati sensibili sono al sicuro da intrusi.
  • MySQL è scalabile, perché supporta il multi-threading. Il multithreading è responsabile dell'esecuzione rapida delle query e della manipolazione dei dati anche se la tabella è di dimensioni molto grandi.
  • MySQL ha un'architettura Client/Server. C'è un server di database e molti client (programmi applicativi) che sono collegati al server.

Tipi di join

Unisciti interni

Inner join è il tipo di join predefinito in MySQL. Unisce e restituisce i record corrispondenti dalle due tabelle. Confronterà ogni riga di una tabella con un'altra e verificherà la condizione di unione. Se la condizione è soddisfatta, viene creata una nuova riga con le colonne di entrambe le tabelle e questa nuova riga viene inclusa nell'output.

Frammento di codice:

SELEZIONA t1 . id_emp , t1.nome_empo,t2.nome_progetto

DA dipendente come t1

progetto INNER JOIN come t2

ON t1.id_progetto = t2 . id_progetto

In questa query sono presenti due tabelle. La prima tabella contiene i dettagli dei dipendenti e la seconda comprende tutti i progetti attualmente in corso. Dopo aver eseguito la query di cui sopra, MySQL restituirà a tutti i dipendenti i rispettivi dettagli del progetto. Qui la colonna project_id è una chiave esterna nella tabella dei dipendenti e una chiave primaria nella tabella dei progetti. I dipendenti senza project_id o project_id senza alcun dipendente non verranno restituiti.

Partecipa a sinistra

Unisci a sinistra, unisce e restituisce i record corrispondenti delle due tabelle e i record non corrispondenti della prima tabella. Left join restituisce essenzialmente l'output di inner join + record non corrispondenti dalla prima tabella. Queste righe non corrispondenti avranno anche le colonne della tabella 2 ma il valore in quelle colonne sarà null poiché non ci sono dati corrispondenti per quelle.

Frammento di codice:

SELEZIONA t1 . id_emp , t1.nome_empo,t2.nome_progetto

DA dipendente come t1

LEFT JOIN progetto come t2

ON t1.id_progetto = t2 . id_progetto

In questa query sono presenti due tabelle. La prima tabella contiene i dettagli dei dipendenti e la seconda comprende tutti i progetti attualmente in corso. Dopo aver eseguito la query di cui sopra, MySQL restituirà a tutti i dipendenti i rispettivi dettagli del progetto e anche i dettagli dei dipendenti a cui non è stato assegnato alcun project_id. Qui la colonna project_id è una chiave esterna nella tabella dei dipendenti e una chiave primaria nella tabella dei progetti.

Leggi: Rinomina il nome della colonna in SQL

Partecipa a destra

Il join destro è molto simile al join sinistro, solo che ora i record non corrispondenti della seconda tabella verranno inclusi nell'output e solo i record corrispondenti della prima tabella.

Frammento di codice:

SELEZIONA t1 . id_emp , t1.nome_empo,t2.nome_progetto

DA dipendente come t1

RIGHT JOIN progetto come t2

ON t1.id_progetto = t2 . id_progetto

Dopo aver eseguito la query di cui sopra, MySQL restituirà a tutti i dipendenti i rispettivi dettagli del progetto e anche i dettagli dei progetti che non hanno dipendenti corrispondenti. Le colonne dei dettagli del dipendente saranno NULL in questi casi.

Partecipazione completa

Come suggerisce il nome, il full join restituisce tutti i record corrispondenti e non corrispondenti. Se MySQL è in grado di trovare le righe corrispondenti nella colonna desiderata, quei record verranno abbinati. Il resto delle righe avrà valori NULL.

Frammento di codice:

SELEZIONA *

DA dipendente come t1

Progetto FULL OUTER JOIN come t2

ON t1.id_progetto = t2 . id_progetto

Dopo aver eseguito la query di cui sopra, MySQL restituirà a tutti i dipendenti i rispettivi dettagli del progetto, anche i dettagli dei dipendenti che non hanno progetti e i progetti che non hanno dipendenti corrispondenti. Alcune colonne avranno valori NULL di conseguenza.

Unisciti incrociati

Come suggerisce il nome, il cross join unirà ogni riga della tabella 1 con ogni riga della tabella 2. Indipendentemente dalle colonne corrispondenti. Quindi, se ci sono 5 record in ogni tabella, l'output avrà 25 righe poiché ogni riga viene abbinata a un'altra riga.

Frammento di codice:

SELEZIONA *

DA dipendente come t1

CROSS JOIN progetto come t2

Dopo aver eseguito la query precedente, MySQL restituirà a tutti i dipendenti tutti i dettagli del progetto. Sebbene non abbia molto senso visualizzare queste informazioni, i Cross Join sono importanti e necessari in alcuni casi speciali e specifici.

Leggi anche: Domande e risposte sull'intervista SQL

Iscriviti ai corsi di ingegneria del software dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Conclusione

I JOINS sono una parte importante dell'estrazione dei dati. Aiutano a combinare i dati di varie tabelle in base alle esigenze dell'utente. L'unico neo di JOINS può essere che a volte diventano complicati da scrivere. Alla fine della giornata, i JOINS sono molto utili e in MySQL possono essere implementati vari tipi di join.

Tutto sommato, l'apprendimento e l'esercitazione pratica su tutti i database menzionati in questo articolo si aggiungeranno alla tua esperienza. Esamina la panoramica del corso, l'apprendimento e le opportunità di lavoro coinvolte: piattaforme come upGrad offrono corsi ricchi di energia progettati da istituti altamente rinomati come IIIT-B nello sviluppo completo dello stack del programma Executive PG.

Prepararsi per una carriera del futuro

Candidati ora per un Master in Ingegneria del Software