2nd Jul 2024 Tempo di lettura: 6 minuti Prontuario di SQL JOIN LearnSQL.it Team prontuario SQL Cheat Sheet in italiano Window Functions SQL Cheat Sheet Indice Unire le tabelle JOIN Condizioni di JOIN NATURAL JOIN LEFT JOIN RIGHT JOIN FULL JOIN CROSS JOIN Alias di colonne e tabelle Self JOIN Non-equi self JOIN Join multipli JOIN & JOIN JOIN & LEFT JOIN LEFT JOIN & LEFT JOIN JOIN con più condizioni Pronti a padroneggiare i JOIN di SQL? Scaricate ora il vostro foglio di riferimento scaricabile! Il vostro scorciatoia per diventare un esperto di JOIN SQL è a un clic di distanza. Immergetevi nel mondo dei JOIN SQL con il nostro dettagliato Prontuario di SQL JOIN, una risorsa indispensabile per gli appassionati di dati a ogni livello. Che siate principianti o desideriate affinare le vostre abilità, questa guida è progettata per fornirvi il riferimento rapido necessario per utilizzare efficacemente i JOIN SQL. In questa guida, mostriamo la sintassi di ogni tipo di JOIN, accompagnata da esempi pratici. Dalle basi dell'INNER JOIN alle complessità del FULL OUTER JOIN e del poco utilizzato NATURAL JOIN, abbiamo coperto tutto per voi. Oltre alle operazioni standard di JOIN, discutiamo costruzioni avanzate, come il collegamento della stessa tabella due volte (self-join) e l'uso di condizioni di non uguaglianza (non-equi self join). Inoltre, mostriamo query che coinvolgono più JOIN e più condizioni, permettendovi di affrontare scenari di dati reali con eleganza. Disponibile sia in formato PDF che PNG per la vostra comodità, questo foglio di riferimento è progettato per essere una risorsa facilmente accessibile, ideale per essere stampata e tenuta a portata di mano per un riferimento rapido. Opzioni di Download: Scarica PDF A4 - La dimensione standard per la maggior parte delle stampanti, che offre un equilibrio tra spazio e leggibilità. Scarica PDF Mobile - Un PDF adatto ai dispositivi mobili per navigare facilmente sul vostro dispositivo mobile. Se preferite un approccio più visivo o avete bisogno di una versione digitale adatta a varie applicazioni, offriamo anche il foglio di riferimento come immagine PNG ad alta risoluzione. Per scaricare, cliccate con il tasto destro del mouse (per gli utenti desktop) o tenete premuto a lungo (per gli utenti mobili) sull'immagine. Unire le tabelle JOIN combina i dati di due tabelle. JOIN combina tipicamente righe con valori uguali per le colonne specificate. Di solito, una tabella contiene una chiave primaria, ovvero una o più colonne che identificano in modo univoco le righe della tabella (la colonna id_gatto nella tabella gatto). L'altra tabella ha una o più colonne che fanno riferimento alle colonne della chiave primaria della prima tabella (la colonna id_gatto nella tabella giochi). Tali colonne sono chiavi esterne. La condizione di JOIN è l'uguaglianza tra le colonne della chiave primaria di una tabella e quelle che vi fanno riferimento nell'altra tabella. JOIN JOIN restituisce tutte le righe che corrispondono alla condizione ON. JOIN è anche chiamato INNER JOIN SELECT * FROM giochi JOIN gatti ON giochi.id_gatto = gatti.id_gatto; Esiste anche un'altra sintassi, più vecchia, ma non è raccomandata. È possibile elencare le tabelle da unire nella clausola FROM e inserire le condizioni nella clausola WHERE. SELECT * FROM giochi, gatti WHERE giochi.id_gatto = gatti.id_gatto; Condizioni di JOIN La condizione di JOIN non deve essere necessariamente un'uguaglianza, ma può essere qualsiasi condizione. JOIN non interpreta la condizione di JOIN, ma controlla solo se le righe soddisfano la condizione data. Per fare riferimento a una colonna nella query JOIN, è necessario utilizzare il nome completo della colonna: prima il nome della tabella, poi un punto (.) e il nome della colonna: ON gatti.id_gatto = giochi.id_gatto È possibile omettere il nome della tabella e utilizzare solo il nome della colonna se il nome della colonna è unico per tutte le colonne delle tabelle unite. NATURAL JOIN Se le tabelle hanno colonne con lo stesso nome, puoi usare NATURAL JOIN invece di JOIN. SELECT * FROM giochi NATURAL JOIN gatti; La colonna comune appare una sola volta nella tabella dei risultati. Nota: NATURAL JOIN è raramente utilizzato nei problemi concreti. LEFT JOIN LEFT JOIN restituisce tutte le righe della tabella di sinistra con le righe corrispondenti della tabella di destra. Le righe senza corrispondenza vengono riempite con valori NULL. LEFT JOIN è chiamato anche LEFT OUTER JOIN. SELECT * FROM giochi LEFT JOIN gatti ON giochi.id_gatto = gatti.id_gatto; RIGHT JOIN RIGHT JOIN restituisce tutte le righe della tabella di destra con le righe corrispondenti della tabella di sinistra. Le righe senza corrispondenza vengono riempite con valori NULL. RIGHT JOIN è anche chiamato RIGHT OUTER JOIN. SELECT * FROM giochi RIGHT JOIN gatti ON giochi.id_gatto = gatti.id_gatto; FULL JOIN FULL JOIN restituisce tutte le righe della tabella di sinistra e tutte le righe della tabella di destra. Riempie le righe non corrispondenti con valori NULL. FULL JOIN è anche chiamato FULL OUTER JOIN. SELECT * FROM giochi FULL JOIN gatti ON giochi.id_gatto = gatti.id_gatto; CROSS JOIN CROSS JOIN restituisce tutte le possibili combinazioni di righe delle tabelle di sinistra e di destra. SELECT * FROM giochi CROSS JOIN gatti; Altri sintessi: SELECT * FROM giochi, gatti; Alias di colonne e tabelle Gli alias danno un nome temporaneo a una tabella o a una colonna di una tabella. Un alias di colonna rinomina una colonna nel risultato. Un alias di tabella rinomina una tabella all'interno della query. Se si definisce un alias di tabella, è necessario utilizzarlo al posto del nome della tabella ovunque nella query. La parola chiave AS è facoltativa nella definizione degli alias. SELECT p.nome AS nome_padrone, g.nome_gatto FROM gatti AS g JOIN padroni AS p ON g.id_padrone = p.id; Self JOIN È possibile unire una tabella a se stessa, ad esempio per mostrare una relazione genitore-figlio. A ogni occorrenza della tabella deve essere assegnato un alias diverso. Ogni riferimento a una colonna deve essere preceduto da un alias di tabella appropriato. SELECT figli.nome_gatto AS nome_figlio, genitori.nome_gatto AS nome_genitore FROM gatto AS figli JOIN gatto AS genitori ON figli.id_genitore = genitori.id_gatto; Non-equi self JOIN È possibile utilizzare una non-uguaglianza nella condizione ON, ad esempio, per mostrare tutte le diverse coppie di righe. SELECT a.nome_gioco AS gioco_a, b.nome_gioco AS gioco_b FROM gioco a JOIN gioco b ON a.id_gatto < b.id_gatto; Join multipli È possibile unire più di due tabelle. Prima si uniscono due tabelle, poi si unisce la terza al risultato dell'unione precedente. JOIN & JOIN SELECT t.nome_gioco, g.nome_gatto, p.nome AS nome_padrone FROM giochi t JOIN gatti g ON t.id_gatto = g.id_gatto JOIN padroni p ON g.id_padrone = p.id; JOIN & LEFT JOIN SELECT t.nome_gioco, g.nome_gatto, p.nome AS nome_padrone FROM giochi t JOIN gatti g ON t.id_gatto = g.id_gatto LEFT JOIN padroni p ON g.id_padrone = p.id; LEFT JOIN & LEFT JOIN SELECT t.nome_gioco, g.nome_gatto, p.nome AS nome_padrone FROM giochi t LEFT JOIN gatti g ON t.id_gatto = g.id_gatto LEFT JOIN padroni p ON g.id_padrone = p.id; JOIN con più condizioni È possibile utilizzare più condizioni di JOIN utilizzando la parola chiave ON una volta e le parole chiave AND quante volte si vuole. SELECT nome_gatto, p.nome AS nome_padrone, g.eta AS eta_gatto, p.eta AS eta_padrone FROM gatti g JOIN padroni p ON g.id_padrone = p.id AND g.eta < p.eta; Tags: prontuario SQL Cheat Sheet in italiano Window Functions SQL Cheat Sheet