Buscar

RespLista 6 1_6 2

Prévia do material em texto

Programação de Banco de Dados com SQL 6-1: Junções Cruzadas e Junções Naturais Atividades Práticas
Objetivos
· Criar e executar uma junção natural usando a sintaxe de junção SQL ANSI-99
· Criar uma junção cruzada usando a sintaxe de junção SQL ANSI-99
· Explicar a importância de ter um padrão de SQL definido pelo ANSI
· Descrever a necessidade de as empresas combinarem informações de várias origens de dados
Vocabulário
Identifique a palavra do vocabulário correspondente a cada definição a seguir.
	CROSS JOIN
	Retorna o produto cartesiano de duas tabelas.
	NATURAL JOIN
	Une duas tabelas com base no mesmo nome de coluna.
Tente/solucione
Use o banco de dados Oracle para os problemas de 1 a 4.
1. Crie uma junção cruzada que exiba o sobrenome e o nome do departamento das tabelas funcionários e departamentos.
R:
SELECT last_name, department_name
FROM employees CROSS JOIN departments;
2. Crie uma consulta que use uma junção natural para ingressar na tabela de departamentos e na tabela de localizações. Exibir o ID do departamento, o nome do departamento, o ID do local e a cidade.
R:
SELECT department_id, department_name, location_id, city
FROM DEPARTMENTS NATURAL JOIN LOCATIONS;
3. Crie uma consulta que use uma junção natural para ingressar na tabela de departamentos e na tabela de localizações. Restrinja a saída somente aos IDs de departamento 20 e 50. Exiba o id do departamento, o nome do departamento, o id do local e a cidade.
R:
SELECT department_id, department_name, location_id, city
FROM DEPARTMENTS NATURAL JOIN LOCATIONS
WHERE department_id between 20 and 50
Programação de Banco de Dados com SQL 6-2: Cláusulas de Junção
Atividades Práticas
Objetivos
· Criar e executar uma junção natural usando a sintaxe de junção SQL ANSI-99
· Criar uma junção cruzada usando a sintaxe de junção SQL ANSI-99
· Explicar a importância de ter um padrão de SQL definido pelo ANSI
· Descrever a necessidade de as empresas combinarem informações de várias origens de dados
Vocabulário
Identifique a palavra do vocabulário correspondente a cada definição a seguir.
	USING
	Permite uma junção natural com base em uma condição arbitrária ou em duas colunas com nomes diferentes.
	ON
	Executa uma equijunção com base em um nome de coluna especificado.
Tente/solucione
Use o banco de dados Oracle para os problemas de 1 a 6.
1. Una as tabelas locais e departamentos do banco de dados Oracle usando a coluna location_id. Limite os resultados somente ao local 1400.
R: 
SELECT *
FROM departments join locations USING(location_id)
WHERE location_id = 1400;
2. Una as tabelas d_play_list_items, d_track_listings e d_cds da DJs on Demand com a sintaxe JOIN USING. Inclua o ID da música, o número do CD, o título e comentários na saída.
R: 
SELECT song_id, cd_number, title, comments
FROM d_play_list_items
join d_track_listings USING(song_id)
join d_cds USING(cd_number);
3. Exiba a cidade, o ID do local, além do nome e do ID dos departamentos 10, 20 e 30 da cidade de Seattle.
R: 
SELECT city, location_id, department_name, department_id
FROM departments
JOIN locations USING(location_id)
WHERE department_id in (10, 20, 30)
AND city = 'Seattle';
4. Exiba o nome do país, o ID e o nome da região Américas.
R: 
SELECT country_name, region_id, region_name
FROM countries
JOIN regions USING(region_id)
WHERE region_name = 'Americas';
5. Crie uma instrução unindo as tabelas de funcionários e cargos. Exiba os nomes, os sobrenomes, a data de contratação, o id e o título do cargo, e o salário máximo. Limite a consulta aos funcionários que ocupam cargos cujo salário pode ser superior a US$ 12.000.
R: 
SELECT first_name, last_name, hire_date, job_id, job_title, max_salary
FROM employees
JOIN jobs USING(job_id)
JOIN job_history USING(job_id)
WHERE max_salary >= 12000;
6. Exiba o título do cargo, o nome, o sobrenome e o e-mail de todos os funcionários que trabalham no almoxarifado.
R: 
SELECT job_title, first_name, last_name, email
FROM employees
JOIN jobs USING(job_id)
WHERE job_title = 'Stock Clerk';
As perguntas a seguir usam a sintaxe JOIN…ON:
7. Crie uma instrução que exiba o ID, o nome e o sobrenome dos funcionários, além do ID, do nome e do sobrenome do gerente de todos os funcionários da tabela funcionários. Dica: está é uma autojunção.
R: 
SELECT employee_id, first_name, last_name, manager_id, first_name, last_name
FROM employees;
8. Use a sintaxe JOIN ON para consultar e exibir o ID, a cidade e o nome dos departamentos de todos os locais do Canadá.
R: 
	SELECT d.department_id, l.city, d.department_name
	FROM departments d
	JOIN locations l
	ON(d.location_id = l.location_id)
	JOIN countries c
	ON(c.country_id = l.country_id)
WHERE country_name = 'Canada';
9. Consulte e exiba o ID do gerente, o ID do departamento, o nome do departamento, o nome e o sobrenome de todos os funcionários dos departamentos 80, 90, 110 e 190.
R: 
	SELECT d.manager_id, d.department_id, department_name, first_name, last_name
	FROM departments d
	JOIN employees e
	ON(d.manager_id = e.manager_id)
WHERE d.department_id in (80, 90, 110, 190);
10. Exiba o ID, o sobrenome, o ID do departamento, o nome do departamento e a data de contratação de todos os funcionários que foram contratados em 7 de junho de 1994.
R: 
SELECT employee_id, last_name, d.department_id, department_name, hire_date
FROM employees e
JOIN departments d
ON(d.department_id = e.department_id)
WHERE hire_date = '07-Jun-1994';

Continue navegando