Tipi di join MySQL | MySQL si unisce [con sintassi]
Pubblicato: 2020-12-09Sommario
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.

