12th Dec 2022 7 minutos de leitura 4 Maneiras Simples de Finalmente Aprender Que Juntar para Usar em uma Consulta SQL Kateryna Koidan sql aprender sql sql joins Índice Tipos de SQL JOIN: Uma breve visão geral JUNÇÃO DE MEMBROS JOGO ESQUERDO JUNTO À DIREITA COMPLETO AJUDA 4 Maneiras de aprender Cláusulas JOIN em SQL Você provavelmente já sabe que deve usar o JOIN para combinar dados de várias tabelas. Mas que tipo de JOIN? Neste artigo, vou apresentar quatro maneiras simples de finalmente aprender qual JOIN a utilizar em diferentes cenários. Antes de entrarmos em estratégias inteligentes para aprender Cláusulas JOIN em SQL, sugiro uma breve visão geral dos principais tipos de JUNTOS. Passaremos por vários exemplos para lembrar a diferença entre (INNER) JOIN, LEFT (OUTER) JOIN, RIGHT (OUTER) JOIN, e FULL (OUTER) JOIN. Tipos de SQL JOIN: Uma breve visão geral Para os nossos exemplos de JOIN, estaremos utilizando dados de um centro de parto, um centro de saúde dirigido por parteiras para mães em trabalho de parto. Em particular, temos duas tabelas: newbornsque tem algumas informações básicas sobre os bebês nascidos durante um determinado período. midwivesO curso é um curso de formação de parteiras, com os nomes e informações de experiência das parteiras que trabalham em nosso centro de nascimento. Aqui estão as tabelas: newborns idmother_namegenderweightheightmidwife_id 11Marta StewartMale3.452.0104 12Cathrine BlackFemale3.048.5101 13Julia GreyFemale2.848.1104 14Penelope GreenMale3.852.5105 15Gabriela GarciaMale2.948.8105 16Nikita MooreMale4.053.0102 17Lucy MillerFemale2.547.3101 midwives idfirst_nameyears_experience 101Samantha White6 102Kathleen Webster2 103Sarah McCarty1 105Julia Smith4 106Angela Phillips0 Agora, vamos direto para os exemplos. JUNÇÃO DE MEMBROS Começaremos com o tipo JOIN mais comum, que é INNER JOIN (ou simplesmente JOIN). Este tipo de junção é usado para exibir registros correspondentes de ambas as tabelas. Digamos que queremos obter a identificação do recém-nascido, o nome de sua mãe e também o nome da parteira que estava ajudando durante o parto. Para obter estas informações, podemos nos juntar ao newborns e midwives tabelas baseadas na identificação da parteira, que está disponível em ambas as tabelas: SELECT n.id, n.mother_name, m.name AS midwife FROM newborns n JOIN midwives m ON n.midwife_id = m.id; Para reduzir a digitação, usamos pseudônimos para nomes de tabelas: n para newborns e m para midwives. Usamos também um apelido de coluna (m.name AS midwife) para obter um nome de coluna significativo na saída. Aqui está o resultado: idmother_namemidwife 12Cathrine BlackSamantha White 16Nikita MooreKathleen Webster 17Lucy MillerSamantha White 14Penelope GreenJulia Smith 15Gabriela GarciaJulia Smith Conseguimos as informações que queríamos. Entretanto, você pode notar que alguns recém-nascidos (IDs 11 e 13) estão faltando em nossa tabela de resultados. Isso significa que os registros correspondentes (ou seja, IDs de parteira) não foram identificados na segunda tabela (ou seja, midwives). Se você quiser manter todos os registros da primeira tabela, você deve usar LEFT JOIN. JOGO ESQUERDO LEFT JOIN ou LEFT OUTER JOIN é usado para exibir todos os registros da primeira (esquerda) tabela e registros correspondentes da segunda (direita) tabela. Para manter todos os recém-nascidos na saída, podemos usar a mesma consulta como acima, simplesmente substituindo JOIN por LEFT JOIN: SELECT n.id, n.mother_name, m.name AS midwife FROM newborns n LEFT JOIN midwives m ON n.midwife_id = m.id; E o resultado: idmother_namemidwife 12Cathrine BlackSamantha White 14Penelope GreenJulia Smith 11Marta StewartNULL 13Julia GreyNULL 17Lucy MillerSamantha White 16Nikita MooreKathleen Webster 15Gabriela GarciaJulia Smith Agora temos todos os registros da newborns tabela exibida na saída. Ao mesmo tempo, há dois registros com valores NULL na coluna de parteira. Aparentemente, a parteira correspondente (ID 104) não está listada na coluna midwives tabelas. Talvez ela tenha começado recentemente a trabalhar em outro centro de parto. Ótimo! Mas também é interessante ver se há alguma parteira em nosso centro de nascimento que não tenha auxiliado em trabalhos recentes. Vamos descobrir usando o RIGHT JOIN. JUNTO À DIREITA RIGHT JOIN ou RIGHT OUTER JOIN é usado para exibir todos os registros da segunda (direita) tabela e registros correspondentes da primeira (esquerda) tabela. Se quisermos manter todos os registros da midwives, podemos usar exatamente a mesma consulta SQL que antes, apenas substituindo LEFT JOIN por RIGHT JOIN: SELECT n.id, n.mother_name, m.name AS midwife FROM newborns n RIGHT JOIN midwives m ON n.midwife_id = m.id; Note que RIGHT JOIN é raramente usado porque normalmente pode ser substituído por LEFT JOIN. Em nosso caso, poderíamos usar LEFT JOIN, e mudar a ordem das tabelas, ou seja, colocando midwives na cláusula FROM e newborns no site LEFT JOIN. Os resultados seriam os mesmos que os abaixo: idmother_namemidwife 12Cathrine BlackSamantha White 14Penelope GreenJulia Smith 15Gabriela GarciaJulia Smith 16Nikita MooreKathleen Webster 17Lucy MillerSamantha White NULLNULLSarah McCarty NULLNULLAngela Phillips Na tabela resultante, você pode ver que há duas parteiras sem registros correspondentes no newborns mesa: Sarah McCarty e Angela Phillips. Parece que estas duas parteiras têm a menor experiência e provavelmente estão ajudando as parteiras mais experientes sem que lhes seja atribuído um papel importante. Observe também que novamente não vemos todos os recém-nascidos no conjunto de resultados. E se quisermos manter todos os registros de ambas as tabelas? É neste momento que deve ser usado o FULL JOIN. COMPLETO AJUDA FULL JOIN ou FULL OUTER JOIN é usado para manter todos os registros de ambas as tabelas. Portanto, se quisermos manter todos os recém-nascidos e todas as parteiras no conjunto de resultados, podemos simplesmente substituir o RIGHT JOIN de nosso último exemplo por um FULL JOIN. Note também que a ordem das tabelas não importa com FULL JOIN; podemos trocar a posição das tabelas e obter o mesmo resultado: SELECT n.id, n.mother_name, m.name AS midwife FROM newborns n FULL JOIN midwives m ON n.midwife_id = m.id; idmother_namemidwife 11Marta StewartNULL 12Cathrine BlackSamantha White 13Julia GreyNULL 14Penelope GreenJulia Smith 15Gabriela GarciaJulia Smith 16Nikita MooreKathleen Webster 17Lucy MillerSamantha White NULLNULLSarah McCarty NULLNULLAngela Phillips Agora temos alguns valores NULL em todas as colunas; estes indicam que alguns dos registros da tabela da esquerda não corresponderam na segunda tabela ou que alguns dos registros da tabela da direita não corresponderam na primeira tabela. Todos estes princípios de JUNTOS não parecem ser muito desafiadores, não é mesmo? Ainda assim, selecionar o JOIN correto para usar é muitas vezes um desafio para os iniciantes. Então, vamos descobrir as melhores estratégias para dominar Cláusulas JOIN em SQL. 4 Maneiras de aprender Cláusulas JOIN em SQL Aqui estão quatro passos para finalmente dominar os diferentes tipos de Cláusulas JOIN em SQL. Aprenda as principais diferenças entre os tipos de JOIN. Seu primeiro passo deve ser aprender sobre os quatro principais tipos de JOIN e as regras básicas de aplicação dos mesmos: JOIN exibe apenas os registros correspondentes de ambas as tabelas. LEFT JOIN exibe todos os registros da tabela da esquerda e os registros de correspondência da tabela da direita. RIGHT JOIN exibe todos os registros da tabela da direita e os registros correspondentes da tabela da esquerda. FULL JOIN exibe todos os registros de ambas as tabelas. Leia artigos de alta qualidade em Cláusulas JOIN em SQL. Depois de ter aprendido o básico, recomendamos que você leia os detalhes e use os casos para diferentes tipos de JOINs. Sugiro que você comece com estes artigos que discutem todos os principais tipos de JOINs e incluem explicações detalhadas e exemplos: Tipos de JOINs SQL Explicados O que é um SQL INNER JOIN? O que é um LEFT JOIN em SQL? O que é um FULL JOIN e quando usá-lo? 7 Exemplos de SQL JOIN com explicações detalhadas Use nossa Folha de Dados SQL JOIN Cheat Sheet. Mesmo que você saiba Cláusulas JOIN em SQL bastante bem, muitas vezes é útil ver um breve lembrete com a sintaxe e casos de uso para diferentes tipos de JOIN. Eu recomendo imprimir ou marcar nossa incrível folha de dados SQL JOIN Cheat Sheet. É um guia ilustrado para Cláusulas JOIN em SQL que você pode consultar sempre que não tiver certeza de como usar o JOIN em sua consulta SQL. Pratique! Finalmente, se você realmente quer dominar Cláusulas JOIN em SQL, você precisa de muita prática. Você pode ler sobre os desafios que você pode encontrar ao praticar Cláusulas JOIN em SQL. Para tornar sua primeira experiência com Cláusulas JOIN em SQL o mais tranqüila possível, sugiro começar com o LearnSQL.com interativo Cláusulas JOIN em SQL curso. Este curso prático inclui 93 desafios de codificação que cobrem todos os tipos importantes de Cláusulas JOIN em SQL. Especificamente, você aprenderá: Quando usar JOIN, LEFT JOIN, RIGHT JOIN, e FULL JOIN. Como unir três ou mais tabelas em uma consulta. Como filtrar dados com diferentes tipos de join. Como unir uma tabela com ela mesma. O que é um join não-equi e quando usá-lo. Você pode saber mais sobre este curso neste artigo de visão geral. Obrigado por ler, e feliz aprendizado! Tags: sql aprender sql sql joins