Baixe o app para aproveitar ainda mais
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';
Compartilhar