Exercício: Consultas em SQL
Objetivo
O objetivo deste exercício é praticar a formulação de consultas em SQL.
Preparação
- Conecte-se ao servidor linux03, que já possui o HSQLDB instalado.
- Baixe o código SQL para criação do banco de dados: empresa.sql
- Execute a interface gráfica de gerenciamento do HSQLDB:
java -cp /opt/hsqldb/lib/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing \ -url jdbc:hsqldb:file:meudb -driver org.hsqldb.jdbcDriver
- Execute o código empresa.sql no HSQLDB para criação do banco de dados.
Exercícios
Expresse as consultas abaixo em SQL:
- Alterar o salário do empregado de código 3 para 28000.
- Obter nomes de empregados com salario > 30000.
- Obter nomes de empregados que trabalham no projeto 'Transmogrifador'.
- Obter nomes e endereços de todos os empregados que trabalham no departamento de 'Pesquisa'. Use INNER JOIN para esta consulta.
- Obter nomes de empregados que começam com a letra 'A'. Dica: use LIKE.
- Obter os nomes e datas de nascimento dos empregados que fazem aniversário no mês de outubro.
- Obter os nomes dos empregados nascidos entre as datas 1950-01-01 e 1970-01-01. Dica: use BETWEEN.
- Listar os títulos de projetos em ordem alfabética. Dica: use ORDER BY.
- Listar nomes e horas trabalhadas por empregados no projeto de código 3, em ordem decrescente de horas trabalhadas.
- Obter códigos de empregados que trabalham mais de 10 horas em algum projeto. O resultado da consulta não deve ter repetições de códigos de empregados. Dica: use DISTINCT.
- Obter a quantidade de empregados pertencentes ao departamento 4. Dica: consulte funções agregadas do SQL.
- Obter, a partir da tabela trabalhaEm, os números mínimo, máximo e médio de horas trabalhadas por empregados em cada projeto. O resultado deve possuir 4 colunas nomeadas: projeto, minimo, maximo e media. Dica: use AS para renomear os campos e GROUP BY para agrupar os resultados por projeto.
- Obter os códigos de projetos cuja média de horas trabalhadas seja maior que 20. Dica: use HAVING.
- Obter os nomes de projetos correspondentes à consulta anterior. Usar a consulta anterior como uma consulta aninhada à nova consulta. Dica: use AS para evitar ambigüidades de nomes entre as consultas.
Teste
Depois de fazer todos os exercícios acima, faça o SQL Quiz da W3Schools.
Material de apoio
- SQL Tutorial
Tutorial SQL, com demonstração on-line e guia de referência.