Title | Exercícios SQL resolvidos |
---|---|
Course | Bases De Dados |
Institution | Universidade da Beira Interior |
Pages | 10 |
File Size | 212 KB |
File Type | |
Total Downloads | 57 |
Total Views | 129 |
Exercícios da Folha 1 resolvidos ( SQL)...
Folha 1 Departamento (DepNum, Nome, Local) Empregado (EmpNum, Nome, Categoria, Salario, DepNum) Projecto (ProjNum, Designacao, Fundos)
Atribuicao (EmpNum, ProjNum, Funcao)
1. Obtenha uma listagem com o nome e categoria dos empregados.
select Nome, Categoria From Empregado 2.Obtenha uma listagem com todos os pormenores dos empregados programadores.
select * From Empregado Where Categoria = 'Programador' 3.Obtenha uma listagem com o nome dos empregados programadores.
select Nome From Empregado Where Categoria = 'Programador' 4.Nome dos empregados que recebem um salário entre 200000 e 350000 unidades monetárias?
select Nome From Empregado Where Salario >200000 And Salario =2
19.Quantos empregados estão registados na base de dados?
SELECT COUNT (E.EmpNum) FROM Empregado E
20.Quantos
empregados trabalham do departamento 1?
SELECT COUNT (E.EmpNum) FROM Empregado E WHERE E.DepNum=1
21.Quantos
empregados trabalham na Covilhã (localização do departamento)?
SELECT COUNT (E.EmpNum) FROM Empregado E, Departamento D WHERE D.DepNum=E.DepNum AND D.Local LIKE 'Covilh%'
22.Obtenha
o nome dos departamentos que não têm empregados.
SELECT Nome FROM Departamento WHERE exists( SELECT DepNum FROM Empregado WHERE
EmpNum= NULL)
23.Obtenha o total de encargos com salários do departamento 1.
SELECT COUNT (E.Categoria) FROM Empregado E WHERE E.Salario>0 AND E.DepNum=1
24.
Obtenha o total de encargos com salários dos empregados atribuídos ao projeto 1.
SELECT COUNT (E.Categoria) FROM Empregado E, Atribuicao A WHERE E.Salario>0 AND E.EmpNum=A.EmpNum AND A.ProjNum=1
25.
Quantas categorias (de empregado) existem? SELECT DISTINCT COUNT (E.Categoria) FROM Empregado E
26.
Qual é o valor do salário mais elevado? SELECT MAX (Salario) FROM Empregado
27.
Obtenha o nome do empregado que recebe o menor salário. SELECT Nome FROM Empregado WHERE Salario= (select MIN(Salario) FROM Empregado)
28.
Qual é o valor da média dos salários praticados no departamento 1?
SELECT AVG (Salario) FROM Empregado WHERE DepNum=1
29.
Obtenha a designação do projeto com fundos mais elevados. SELECT Designacao FROM Projecto WHERE Fundos=(select Max(Fundos) From Projecto)
30.
Obtenha uma listagem com os nomes dos empregados que trabalham no projeto com fundos mais elevados.
select Nome
from Empregado E, Atribuicao A where E.EmpNum = A.ProjNum AND A.ProjNum IN (select ProjNum from Projecto where Fundos = (select MAX (fundos) from Projecto ) ) 31. Nomes dos empregados que auferem um salário superior à média dos salários praticada no departamento a que pertencem. SELECT Nome FROM Empregado WHERE Salario>(select AVG (Salario) FROM Empregado)
32. Quantos empregados trabalham em cada departamento?
Select DepNum, count (*) as NEmps From empregado Group By DepNum
33.
Quantos empregados programadores trabalham em cada departamento? select DepNum, count(*) as NEmps From Empregado Where Categoria='Programador' Group by DepNum
34
Obtenha uma listagem com “nome de departamento” e “quantidade de empregados nesse departamento”.
select D.Nome,Count(*) as NEmps From Empregado E,Departamento D Where E.DepNum=D.DepNum Group By D.Nome
35.
Para cada departamento, obtenha uma listagem contendo o nome do departamento, a média dos salários, o menor salário e o salário mais elevado.
select D.Nome, Avg (E.Salario) as MediaSal, Min (Salario) as MenorSal, Max(Salario) as MaiorSal From Empregado E, Departamento D Where E.DepNum=D.DepNum Group by D.Nome
36.
Igual à questão anterior, mas com a lista ordenada por ordem descendente da média dos salários.
select D.Nome, Avg (E.Salario) as MediaSal, Min (Salario) as MenorSal, Max(Salario) as MaiorSal From Empregado E, Departamento D where E.DepNum=D.DepNum Group by D.Nome Order By Avg (Salario) desc
37.
Igual à questão 34, mas na listagem só devem figurar departamentos com 2 ou mais empregados.
select D.Nome,Count(*) as NEmps From Empregado E,Departamento D Where E.DepNum=D.DepNum Group By D.Nome Having Count(*)>= 3 38. Igual à questão anterior, mas com a lista ordenada de modo descendente pela quantidade de empregados
select D.Nome,Count(*) as NEmps From Empregado E,Departamento D Where E.DepNum=D.DepNum Group By D.Nome Having Count(*)>= 2 Order by count(*) desc
39.
Obtenha uma listagem com os nomes dos departamentos cujos encargos com salários são superiores à média dos salários da empresa.
select D.Nome,Count(*) as NEmps From Empregado E,Departamento D Where E.DepNum=D.DepNum Group By D.Nome,D.DepNum Having Sum (E.Salario)>(select Avg (salario) From Empregado )
40.
Qual a média dos salários em cada departamento com pelo menos um empregado programador.
select DepNum, avg (salario) as MediaSal from empregado where DepNum in (select DepNum From Empregado where categoria= 'programador') Group By DepNum
41.
Obtenha a média dos salários considerando os departamentos com pelo menos um empregado programador.
select avg(Salario) From Empregado Where DepNum in ( select DepNum FROM Empregado where Categoria= 'programador' )
42.
Obtenha uma listagem com os nomes dos departamentos cujos encargos com salários são superiores ao valor obtido na questão anterior.
select D.Nome From Departamento D, Empregado E Where E.DepNum=D.DepNum Group by D.Nome Having Sum (E.Salario)> (select avg(salario) From Empregado Where DepNum in (select DepNum From Empregado Where Categoria= 'Programador' ) )
43.
Nome do empregado que participou em mais projetos.
Select E.Nome From ( Select EmpNum, Count(*) as NProj From Atribuicao Group By EmpNum ) as X, EMpregado E Where X.EmpNum = E.EmpNum And NProj = (Select Max(NProj) From ( Select EmpNum, Count(*) as NProj From Atribuicao Group By EmpNum ) as Y )
44. Nome do departamento onde há mais diversidade de categorias dos empregados. select D.Nome from Empregado E, Departamento D Where E.DepNum = D.DepNum Group By D.Nome Having COUNT(Distinct categoria) = (select Top 1 COUNT(Distinct categoria) as NCat from Empregado Group By DepNum Order By COUNT(Distinct categoria) Desc )...