{"id":957,"date":"2026-06-06T18:15:24","date_gmt":"2026-06-06T21:15:24","guid":{"rendered":"https:\/\/jrtx.com.br\/blog\/2026\/06\/06\/aula-12-joins-no-oracle-inner-outer-cross-e-join-com-sintaxe\/"},"modified":"2026-06-06T18:15:24","modified_gmt":"2026-06-06T21:15:24","slug":"aula-12-joins-no-oracle-inner-outer-cross-e-join-com-sintaxe","status":"publish","type":"post","link":"https:\/\/jrtx.com.br\/blog\/2026\/06\/06\/aula-12-joins-no-oracle-inner-outer-cross-e-join-com-sintaxe\/","title":{"rendered":"Aula 12: Joins no Oracle \u2014 INNER, OUTER, CROSS e JOIN com sintaxe antiga"},"content":{"rendered":"<p>Bem-vindo \u00e0 Aula 12 do nosso curso &#8220;Oracle SQL \u2014 Do Zero ao Avan\u00e7ado&#8221;. Hoje, vamos explorar um dos conceitos mais cruciais na manipula\u00e7\u00e3o de dados no Oracle SQL: os Joins. Compreender os diferentes tipos de Joins no Oracle e suas aplica\u00e7\u00f5es \u00e9 fundamental para realizar consultas eficientes e precisas em bancos de dados. Nesta aula, voc\u00ea aprender\u00e1 a aplicar diversos tipos de Joins, como INNER, OUTER, CROSS, al\u00e9m da sintaxe antiga de JOIN. Este conhecimento \u00e9 essencial para qualquer profissional de TI que busca otimizar consultas SQL e manipular dados de forma eficaz.<\/p>\n<h3>O que voc\u00ea vai aprender nesta aula<\/h3>\n<ul>\n<li>O conceito de INNER JOIN e sua aplica\u00e7\u00e3o pr\u00e1tica<\/li>\n<li>Como utilizar OUTER JOIN para lidar com dados ausentes<\/li>\n<li>Entender e aplicar CROSS JOIN<\/li>\n<li>Compara\u00e7\u00e3o entre a sintaxe antiga e a nova de JOIN em Oracle SQL<\/li>\n<\/ul>\n<h3>INNER JOIN: Uni\u00e3o de Dados de Forma Precisa<\/h3>\n<p>O <strong>INNER JOIN<\/strong> \u00e9 amplamente utilizado para combinar registros que possuem valores correspondentes nas tabelas envolvidas. Em nossos projetos na JRT Technology Solutions, utilizamos INNER JOIN para obter dados precisos e espec\u00edficos, juntando tabelas com base em uma coluna comum.<\/p>\n<p>Exemplo de uso do INNER JOIN:<\/p>\n<pre><code>SELECT employees.name, departments.department_name\nFROM employees\nINNER JOIN departments ON employees.department_id = departments.id;<\/code><\/pre>\n<p>Na consulta acima, estamos recuperando uma lista de nomes de funcion\u00e1rios junto com o nome do departamento ao qual eles pertencem.<\/p>\n<h3>OUTER JOIN: Trabalhando com Dados Incompletos<\/h3>\n<p>O <strong>OUTER JOIN<\/strong> permite a combina\u00e7\u00e3o de registros entre tabelas, incluindo aqueles que n\u00e3o t\u00eam correspond\u00eancia direta em uma das tabelas. Ele \u00e9 \u00fatil quando precisamos garantir que n\u00e3o haja perda de dados. No Oracle, temos tr\u00eas tipos de OUTER JOIN: LEFT, RIGHT e FULL.<\/p>\n<ul>\n<li><strong>LEFT OUTER JOIN<\/strong>: Retorna todos os registros da tabela \u00e0 esquerda e os registros correspondentes da tabela \u00e0 direita.<\/li>\n<li><strong>RIGHT OUTER JOIN<\/strong>: Retorna todos os registros da tabela \u00e0 direita e os registros correspondentes da tabela \u00e0 esquerda.<\/li>\n<li><strong>FULL OUTER JOIN<\/strong>: Retorna todos os registros quando h\u00e1 uma correspond\u00eancia em uma das tabelas.<\/li>\n<\/ul>\n<p>Exemplo de <strong>LEFT OUTER JOIN<\/strong>:<\/p>\n<pre><code>SELECT employees.name, departments.department_name\nFROM employees\nLEFT OUTER JOIN departments ON employees.department_id = departments.id;<\/code><\/pre>\n<p>Essa consulta retorna todos os funcion\u00e1rios e os departamentos, incluindo aqueles sem um departamento correspondente.<\/p>\n<h3>CROSS JOIN: Combina\u00e7\u00e3o Completa<\/h3>\n<p>O <strong>CROSS JOIN<\/strong> \u00e9 usado para combinar todas as linhas de uma tabela com todas as linhas de outra, resultando em um produto cartesiano. Em nossos projetos na JRT Technology Solutions, apesar de menos comum, o CROSS JOIN \u00e9 \u00fatil para gerar combina\u00e7\u00f5es abrangentes de dados para an\u00e1lises espec\u00edficas.<\/p>\n<p>Exemplo de CROSS JOIN:<\/p>\n<pre><code>SELECT employees.name, departments.department_name\nFROM employees\nCROSS JOIN departments;<\/code><\/pre>\n<p>A consulta acima fornece todas as combina\u00e7\u00f5es poss\u00edveis entre os funcion\u00e1rios e os departamentos.<\/p>\n<h3>Comparando com a Sintaxe Antiga de JOIN<\/h3>\n<p>Antes do SQL-92, a sintaxe de <strong>JOIN<\/strong> era diferente. Embora a sintaxe moderna seja recomendada, a compreens\u00e3o das formas legadas ainda \u00e9 \u00fatil, especialmente para a manuten\u00e7\u00e3o de sistemas antigos.<\/p>\n<p>Exemplo usando a sintaxe antiga para INNER JOIN:<\/p>\n<pre><code>SELECT employees.name, departments.department_name\nFROM employees, departments\nWHERE employees.department_id = departments.id;<\/code><\/pre>\n<p>Nossos especialistas na JRT Technology Solutions ainda encontram essa sintaxe em manuten\u00e7\u00e3o de sistemas legados, sendo crucial entender sua aplica\u00e7\u00e3o e limita\u00e7\u00f5es.<\/p>\n<h3>Resumo da Aula 12<\/h3>\n<p>Nesta aula, aprendemos sobre diferentes tipos de Joins no Oracle, incluindo INNER, OUTER, CROSS, e comparamos a sintaxe moderna com a sintaxe antiga de JOIN. Esse conhecimento refor\u00e7a a capacidade de realizar consultas complexas e precisas em bancos de dados Oracle. Na pr\u00f3xima aula, vamos nos aprofundar na otimiza\u00e7\u00e3o de consultas SQL, onde discutiremos \u00edndices e planos de execu\u00e7\u00e3o.<\/p>\n<div style=\"margin:48px 0 32px;padding:32px 24px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:16px;text-align:center;\">\n<p style=\"margin:0 0 8px;font-size:17px;color:#111827;font-weight:700;\">Quer aprender na pr\u00e1tica com especialistas?<\/p>\n<p style=\"margin:0 0 24px;font-size:15px;color:#1f2937;font-weight:400;\">A JRT Technology Solutions oferece treinamentos e implementa\u00e7\u00e3o de Oracle SQL para equipes corporativas.<\/p>\n<p>  <a href=\"https:\/\/api.whatsapp.com\/send\/?phone=5521980606699&#038;text=Ol%C3%A1%21+Tenho+interesse+no+treinamento+de+Oracle%20SQL.&#038;type=phone_number&#038;app_absent=0\"\n     target=\"_blank\" rel=\"noopener noreferrer\"\n     style=\"display:inline-flex;align-items:center;gap:12px;background:#25D366;color:#ffffff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;font-weight:600;padding:14px 28px;border-radius:100px;text-decoration:none;box-shadow:0 4px 12px rgba(37,211,102,0.4);letter-spacing:0.01em;\"><br \/>\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"#ffffff\">\n      <path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/>\n    <\/svg><br \/>\n    Falar no WhatsApp<br \/>\n  <\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Descubra os tipos de joins no Oracle \u2014 INNER, OUTER, CROSS e sintaxe antiga. Aprenda a usar cada um com exemplos pr\u00e1ticos. Clique para dominar!<\/p>\n","protected":false},"author":1,"featured_media":956,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":0,"footnotes":""},"categories":[75],"tags":[1666,1664,1663,1665,1667,1668],"class_list":["post-957","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-cross-join-oracle","tag-inner-join-oracle","tag-joins-no-oracle","tag-outer-join-oracle","tag-sintaxe-antiga-sql","tag-sql-oracle-joins"],"_links":{"self":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/957","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/comments?post=957"}],"version-history":[{"count":0,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/957\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media\/956"}],"wp:attachment":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media?parent=957"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/categories?post=957"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/tags?post=957"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}