Introdução à junção interna no Oracle
As cláusulas joins são usadas no banco de dados oracle para acessar os dados de várias tabelas para obter informações. Existem diferentes tipos de junções no banco de dados oracle.
Junção interna é um dos tipos de junção no banco de dados oracle. Uma junção interna, junte as várias tabelas e retorne as linhas para as quais a condição de junção é ou é verdadeira. Uma junção interna também é conhecida como junção simples. A junção interna é a junção mais comum entre os tipos de junção.
A sintaxe da junção interna
SELECT column (, column ) FROM t1
INNER JOIN t2
ON t1.column = t2.column;
A representação visual da junção interna é representada no diagrama abaixo, pois no diagrama abaixo a área sombreada retorna como resultado da junção interna do Oracle
O Oracle Inner Join retorna os registros de interseção de t1 e t2 como resultado.
Exemplos de consulta para junção interna
Vamos entender a junção interna em detalhes com a ajuda de alguns dos exemplos de consulta:
Exemplo 1
Exemplo de consulta para junção interna
SELECT employee.employee _id, employee.employee_name, department. department_name
FROM employee
INNER JOIN department
ON employee.employee _id = department.employee _id;
O exemplo acima do Oracle INNER JOIN retornará todas as linhas da tabela de funcionários e da tabela de departamentos em que o valor de _id empregado na tabela de empregados e na tabela de departamentos são correspondentes.
Consideramos aqui o esquema hr, que é o esquema de amostra do banco de dados oracle. O esquema hr contém as tabelas PAÍSES, FUNCIONÁRIOS, DEPARTAMENTOS, HISTÓRICO DE TRABALHO, TRABALHOS, LOCAIS, REGIÕES, nas quais estamos interessados ou solicitamos tabelas de FUNCIONÁRIOS, DEPARTAMENTOS e LOCAIS.
A descrição dessas tabelas é -
Tabela COLABORADORES
Tabela DEPARTAMENTOS
Tabela LOCAIS
Exemplo 2
Exemplo de junção interna para duas tabelas
Aqui gostaríamos de recuperar dados de duas tabelas EMPREGADOS e DEPARTAMENTOS. Consulta aqui que escrevemos para recuperar a identificação do funcionário e o nome do funcionário da tabela do funcionário e o nome do departamento da tabela do departamento -
SELECT employees. employee_id, employees. first_name, departments.department_name
FROM employees, departments
WHERE employees. employee_id = departments. department_id;
Resultado
Os nomes das colunas com a tabela são precedidos pela cláusula Oracle SELECT. Se uma coluna é comum a ambas as tabelas, para maior clareza, o nome da coluna deve ser prefixado com o nome da tabela. As tabelas das quais os dados devem ser recuperados são especificadas na cláusula from com a vírgula separada. Na cláusula WHERE, especifique a condição de junção. A relação entre funcionários e tabelas de departamento é determinada pelos valores na coluna comum employee_id em ambas as tabelas devem ser iguais e essa relação é denominada Junção Equi. Comumente chave primária e chaves estrangeiras estão envolvidas nessa relação.
Exemplo 3
Exemplo de junção interna de duas tabelas com aliases
Vamos reescrever o exemplo acima usando Aliases de Tabela como -
SELECT e. employee_id, e. first_name,
d. department_name
FROM employees e, departments d
WHERE e. employee_id = d. department_id;
Resultado
Como na consulta acima, os aliases da tabela são criados na cláusula from após o nome da coluna e, em vez de escrever um nome completo da tabela na cláusula select antes de cada coluna, use os Aliases da tabela como e ed na consulta acima.
Exemplo 4
Exemplo de junção interna para duas tabelas com Adicionando Cláusulas Adicionais
Exemplo de consulta seguinte, onde adicionamos cláusulas adicionais à nossa instrução Oracle SELECT na cláusula where para adicionar agregações, restringir as linhas retornadas, definir a ordem de classificação e assim por diante. Aqui está um exemplo de consulta que recupera todos os funcionários que estão trabalhando nos departamentos Finanças, Manufatura e Construção.
SELECT e. employee_id, e. first_name,
d. department_name
FROM employees e, departments d
WHERE e. employee_id = d. department_id
AND d. department_name in ( 'Finance', 'Manufacturing', 'Construction' );
Resultado
Exemplo 5
Exemplo de junção interna de duas tabelas com uma cláusula order by
No próximo exemplo de consulta, reescrevemos a consulta acima adicionando a cláusula order by, exibindo os dados do funcionário classificados pelo nome do departamento.
SELECT e. employee_id, e. first_name,
d. department_name
FROM employees e, departments d
WHERE e. employee_id = d. department_id
AND d. department_name in ('Finance', 'Manufacturing', 'Construction')
ORDER BY d. department_name;
Resultado
Exemplo 6
Exemplo de junção interna para junção de várias tabelas
Às vezes, para obter as informações, precisamos juntar mais de duas tabelas. Em seguida, escrevemos o exemplo de consulta para juntar várias tabelas. Considere o exemplo em que queremos recuperar o primeiro nome do funcionário da tabela de funcionários, o nome do departamento da tabela de departamentos e o ID do país do local em que esse funcionário trabalha na tabela de locais.
SELECT e. first_name, e. salary, d. department_name, l. city, l. country_id
FROM employees e, departments d, locations l
WHERE e. employee_id = d. department_id
AND
d. location_id = l. location_id;
Resultado
Para unir quatro ou mais tabelas, o mesmo conceito se aplica adicionando o nome da tabela na cláusula FROM de um oracle e aplique a condição de junção na cláusula WHERE de um oracle.
Conclusão
Junção interna é um dos tipos de junção no banco de dados oracle. Uma junção interna usada para unir várias tabelas e retornar as linhas para as quais a condição de junção é ou é verdadeira. Geralmente, a chave primária e a chave estrangeira estão envolvidas na junção interna para criar um relacionamento entre as tabelas.
Artigos recomendados
Este é um guia para o Inner Join no Oracle. Aqui discutimos a introdução da junção interna, juntamente com alguns exemplos em detalhes. Você também pode consultar nossos outros artigos sugeridos para saber mais:
- Junta-se ao MySQL
- Consultas Oracle
- Armazenamento de Dados Oracle
- O que é o banco de dados Oracle