Logo Passei Direto
Buscar

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

BANCO DE DADOS 
JUNÇÃO DE TABELAS 
INNER JOIN 
 
Prof Luiz Antonio Gobitta 
ESTRUTURA DO BANCO DE DADOS 
JUNÇÃO DE TABELAS 
Imagine que desejamos emitir um relatório 
contendo sobrenome e salário dos funcionários e o 
nome do departamento em que ele trabalha. 
Ao verificarmos na base vemos que o sobrenome e o 
salário estão na tabela Funcionários e o nome do 
departamento está na tabela departamentos. 
Notamos também que a relação entre estas duas 
tabelas (entidades) é 1 departamento tem n 
funcionários, portanto vemos que na tabela 
Funcionários temos uma chave estrangeira que é o 
código do departamento. 
Junção Interna - INNER JOIN 
A junção interna (inner join) é um comando para juntar 2 
tabelas, sendo sua sintaxe: 
SELECT col1, col2, ..., coln 
FROM tabela1 INNER JOIN tabela2 
ON tabela1.chave = tabela2.chave 
 Então precisamos juntar as informações da tabela 
Funcionários com a informação da tabela departamentos: 
SELECT last_name, salary, department_name 
FROM hr.employees INNER JOIN hr.departments 
ON hr.employees.department_id = 
hr.departments.department_id; 
Como department_id está presente nas 2 tabelas (mesmo nome), temos 
que informar a qual tabela nos referimos. 
• Desta forma podemos juntar quantas tabelas 
forem necessárias, 2, 3, 4 ou mais. Para isso, 
devemos colocar o primeiro INNER JOIN com 2 
tabelas e depois mais um INNER JOIN com a 
terceira tabela e etc... 
• Inner Join: retorna os registros que são 
comuns às duas tabelas envolvidas. 
 
 
 
• Para o SQL SERVER e ORACLE, podemos usar 
INNER JOIN ou somente JOIN. 
 
 
Exemplos 
 Crie uma query que mostre os sobrenomes dos funcionários, os 
cargos e as respectivas descrições de cargo. 
select F.last_name, F.job_id, C.job_title 
from hr.employees F INNER JOIN hr.jobs C 
ON F.job_id = C.job_id 
 
 Crie uma consulta para o RH a fim de gerar os endereços de todas 
as unidades (filiais) da empresa. Mostre o ID do local, o endereço, 
a cidade, o estado e o país do depto. 
select L.location_id, L.street_address, L.city, 
L.state_province, P.country_name 
from hr.locations L INNER JOIN hr.countries P 
ON L.country_id = P.country_id 
Exemplos 
O RH precisa de um relatório sobre os funcionários e os 
seus respectivos departamentos. Crie uma consuta que 
exiba o sobrenome, o salário, o nome do departamento e a 
descrição de cargo para todos os funcionários. 
select F.last_name, F.salary, D.department_name, 
C.job_title 
from hr.employees F JOIN hr.departments D 
ON F.department_id = D.department_id 
JOIN hr.jobs C ON F.job_id = C.job_id 
Note que as duas junções de tabela são representadas com um 
JOIN após o outro. O primeiro JOIN cria uma "tabela" virtual 
reunindo 'hr.employees' e 'hr.departments'. O segundo reúne 
essa tabela virtual à tabela ‘hr.jobs‘. 
 
Exemplos 
O RH precisa de um relatório sobre os funcionários e 
os seus respectivos departamentos. Crie uma consuta 
que exiba o sobrenome, o salário, o nome do 
departamento e a descrição de cargo somente para os 
funcionários com salário entre 2000 e 4000. 
 
select F.last_name, F.salary, 
D.department_name, C.job_title 
from hr.employees F JOIN 
hr.departments D 
ON F.department_id = D.department_id 
JOIN hr.jobs C on F.job_id = C.job_id 
where salary between 2000 and 4000 
 
Exemplos 
 O RH precisa de um relatório dos funcionários em South 
San Francisco. Exiba o sobrenome, o cargo, o nome do 
departamento e a cidade de todos os funcionários que 
trabalham na cidade de South San Francisco. 
select F.last_name, D.department_name, 
C.job_title, L.city 
from hr.employees F JOIN hr.departments D 
ON F.department_id = D.department_id 
JOIN hr.jobs C 
ON F.job_id = C.job_id 
JOIN hr.locations L 
ON D.location_id = L.location_id 
WHERE L.city = 'South San Francisco' 
Exemplos 
Crie uma query que exiba os nomes de cada um 
dos departamentos e a respectiva média salarial 
para os departament0s com média salarial maior 
que 3.900. 
select D.department_name, avg(F.salary) 
from 
hr.employees F JOIN hr.departments D 
ON F.department_id = D.department_id 
group by D.department_name 
having avg(F.salary) > 3900 
 
EXEMPLOS 
 Crie uma query que exiba o primeiro nome, o sobrenome e a 
descrição do cargo dos funcionários, o nome dos departamentos, o 
nome do pais e o nome da região aonde estes funcionários 
trabalham. 
select F.first_name, F.last_name, C.job_title, 
D.department_name, P.country_name, R.region_name 
from hr.employees F JOIN hr.departments D 
ON F.department_id = D.department_id 
JOIN hr.jobs C on F.job_id = C.job_id 
JOIN hr.locations L 
on D.location_id = L.location_id 
JOIN hr.countries P 
on L.country_id = P.country_id 
JOIN hr.regions R on P.region_id = R.region_id

Mais conteúdos dessa disciplina