You are on page 1of 3

União Europeia

Fundo Social
Europeu Escola Secundária Ferreira de
Castro
Ano lectivo 2006/2007
Programação e Sistemas de Informação 1. Cláusulas e Funções SQL –
Resolução
Módulo 14 – Linguagem de Manipulação de Dados

1.
Descrição de todas as Lista dos nomes dos concelhos e do
a) províncias de Portugal. b) código do distrito a que pertence.
Pode ser interessante e
divertido ler a descrição e
tentar adivinhar de que
província se trata.
Permite visualizar toda a Permite visualizar os campos
c) tabela «concelho». d) «NomeConcelho», «CodDistrito» da
tabela «concelho».
Mostra a descrição da Qual é a menor área ocupada por um
e) província com código 8. f) distrito?

Lista dos nomes de todos os concelhos, com indicação do distrito a que


g) pertence (junção das tabelas concelho e distrito).

Visualizar a população de cada distrito.


h) Na verdade, esta instrução é equivalente a:
SELECT CodDistrito AS Código, Populacao AS [Total por Distrito]
FROM distrito;
Visualizar a população dos distritos com mais de 100000 habitantes.
i)
Apresenta para todos os concelhos, o nome e a descrição da província a
j) que pertence, ordenados por nome ascendente.

Executa exactamente o mesmo que a consulta anterior, uma vez que não
k) existem valores repetidos no campo NomeConcelho.
Lista para cada distrito, os nomes dos concelhos e da província a que
l) cada um pertence, com ordenação ascendente sucessivamente por nome de
distrito e de concelho.

Mostra o nomes e a população dos distritos com população entre


m) 10000 e 200000.
Mostra o nome e a população dos distritos em que a população é
n) igual a 125577, 160398 ou 703724.

Mostra os nomes dos distritos cujo código está entre 10 e 19.


o)
Lista todos os concelhos cujo nome começa por “Vila”.
p)
Calcula a média da população dos distritos.
q)
Apresenta o código e a média da população por distrito.
r)
Calcula o número de distritos.
s)
Calcula o número de distritos com mais de 1 milhão de habitantes.
t)
Calcula o número de concelhos de cada distrito.
u)
Encontra a maior área total Encontra a área total do
v) dos distritos. w) distrito com código 6.

1
União Europeia
Fundo Social
Europeu Escola Secundária Ferreira de
Castro
Encontra a maior população Encontra a menor população
x) dos distritos. y) dos distritos.

Calcula a soma da população de todos os distritos.


z)
O mesmo que:
aa) SELECT CodDistrito AS Código, Populacao AS Total
FROM distrito;
Lista o código e a população de todos os distritos.

2.
a)
SELECT CodDistrito, NomeDistrito
FROM distrito
ORDER BY Populacao DESC;

b)
SELECT MAX(AreaTotal) AS AREA
FROM distrito
WHERE CodDistrito<10;

c)
SELECT CodConcelho, NomeConcelho
FROM distrito INNER JOIN concelho ON distrito.CodDistrito = concelho.CodDistrito
WHERE NomeDistrito="Viseu";

d)
SELECT CodDistrito, NomeDistrito, AreaTotal
FROM distrito
WHERE AreaTotal BETWEEN 2000 AND 5000;

e)
SELECT NomeDistrito, NomeProvincia, NomeConcelho
FROM provincia INNER JOIN (distrito INNER JOIN concelho ON distrito.CodDistrito =
concelho.CodDistrito) ON provincia.CodProvincia = concelho.CodProvincia
ORDER BY NomeDistrito, NomeProvincia, NomeConcelho;

f)
SELECT NomeDistrito, COUNT(CodConcelho) AS [Nº de Concelhos]
FROM distrito INNER JOIN concelho ON distrito.CodDistrito = concelho.CodDistrito
GROUP BY NomeDistrito;

g)
SELECT NomeDistrito, COUNT(CodConcelho) AS [Nº de Concelhos]
FROM distrito INNER JOIN concelho ON distrito.CodDistrito = concelho.CodDistrito
GROUP BY NomeDistrito
HAVING COUNT(CodConcelho)>18;

h)
SELECT NomeDistrito
FROM distrito
WHERE Populacao>1000000;

i)
SELECT Count(NomeDistrito) AS [Grandes Cidades]
FROM distrito
WHERE distrito.Populacao>1000000;
2
União Europeia
Fundo Social
Europeu Escola Secundária Ferreira de
Castro
j)
SELECT distrito.CodDistrito,NomeDistrito, COUNT(CodConcelho) AS [Nº de Concelhos]
FROM distrito INNER JOIN concelho ON distrito.CodDistrito = concelho.CodDistrito
GROUP BY distrito.CodDistrito, distrito.NomeDistrito;

k)
SELECT CodDistrito, [Populacao]/[AreaTotal] AS [Densidade Populacional]
FROM distrito
ORDER BY CodDistrito DESC;

l)
SELECT Sum(TotalDistrito) AS Total
FROM
[SELECT DISTINCT provincia.CodProvincia, Populacao as TotalDistrito
FROM provincia INNER JOIN (distrito INNER JOIN concelho ON
distrito.CodDistrito = concelho.CodDistrito) ON provincia.CodProvincia =
concelho.CodProvincia
WHERE provincia.CodProvincia=2]. AS [NovaTabela];

m)
SELECT Sum(TotalDistrito) AS Total
FROM
[SELECT DISTINCT provincia.CodProvincia, Populacao as TotalDistrito
FROM provincia INNER JOIN (distrito INNER JOIN concelho ON
distrito.CodDistrito = concelho.CodDistrito) ON provincia.CodProvincia =
concelho.CodProvincia
WHERE provincia.CodProvincia=1 AND AreaTotal<4000]. AS [NovaTabela];

n)
SELECT DISTINCT NomeDistrito, AreaTotal, Populacao
FROM distrito INNER JOIN concelho ON distrito.CodDistrito = concelho.CodDistrito
WHERE AreaTotal>5000 AND Populacao>20000;

You might also like