Exercícios SQL resolvidos PDF

Title Exercícios SQL resolvidos
Course Bases De Dados
Institution Universidade da Beira Interior
Pages 10
File Size 212 KB
File Type PDF
Total Downloads 57
Total Views 129

Summary

Exercícios da Folha 1 resolvidos ( SQL)...


Description

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 )...


Similar Free PDFs