Sei sulla pagina 1di 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
Módulo 14 – Linguagem de Manipulação de Dados

Considera a base de dados «portugal.mdb».

1. Explica o que permite obter cada uma das seguintes instruções.


SELECT DescricaoProvincia SELECT NomeConcelho, CodDistrito
a) FROM provincia; b) FROM concelho;

SELECT * SELECT NomeConcelho, CodDistrito


c) FROM concelho; d) FROM concelho;

SELECT DescricaoProvincia SELECT MIN(AreaTotal)


e) FROM provincia f) FROM distrito;
WHERE CodProvincia=8;

SELECT NomeConcelho, NomeDistrito


g) FROM concelho, distrito
WHERE concelho.CodDistrito=distrito.CodDistrito;

SELECT CodDistrito AS Código, SUM(Populacao) AS [Total por


h) Distrito]
FROM distrito
GROUP BY CodDistrito;

SELECT CodDistrito AS Código, SUM(Populacao) AS Top


i) FROM distrito
GROUP BY CodDistrito
HAVING SUM(Populacao)>100000;

SELECT NomeConcelho, DescricaoProvincia


j) FROM conselho, provincia
WHERE concelho.CodProvincia= provincia.CodProvincia
ORDER BY NomeConcelho ASC;

SELECT NomeConcelho, DescricaoProvincia


k) FROM conselho, provincia
WHERE concelho.CodProvincia= provincia.CodProvincia
ORDER BY NomeConcelho ASC, DescricaoProvincia DESC;

SELECT NomeDistrito, NomeConcelho, DescricaoProvincia


l) FROM distrito, concelho, provincia
WHERE distrito.CodDistrito=concelho.codDistrito AND
concelho.CodProvincia=provincia.CodProvincia
ORDER BY NomeDistrito, NomeConcelho, DescricaoProvincia;

SELECT NomeDistrito, Populacao


m) FROM distrito

1
União Europeia
Fundo Social
Europeu Escola Secundária Ferreira de
Castro
WHERE Populacao BETWEEN 10000 AND 200000;

SELECT NomeDistrito, Populacao


n) FROM distrito
WHERE Populacao IN (125577, 160398, 703724);

SELECT NomeDistrito
o) FROM distrito
WHERE CodDistrito LIKE "1?";

SELECT NomeConcelho
p) FROM concelho
WHERE NomeConcelho LIKE "VILA*";

SELECT AVG(Populacao)
q) FROM distrito;

SELECT CodDistrito AS Código, AVG(Populacao) AS "MEDIA"


r) FROM distrito
GROUP BY CodDistrito;

SELECT COUNT(*) AS [Total Distritos]


s) FROM distrito;

SELECT COUNT(*)
t) FROM distrito
WHERE Populacao> 1000000;

SELECT CodDistrito, COUNT(*) AS "Total"


u) FROM concelho
GROUP BY CodDistrito;

SELECT MAX(AreaTotal) SELECT AreaTotal


v) FROM distrito; w) FROM distrito
WHERE CodDistrito=6;

SELECT MAX(Populacao) SELECT MIN(Populacao)


x) FROM distrito; y) FROM distrito;

SELECT SUM(Populacao) AS Total


z) FROM distrito;

SELECT CodDistrito AS Código, SUM(Populacao) AS Total


aa) FROM distrito
GROUP BY CodDistrito;

2. Considerando o mesmo esquema de base de dados, apresenta a instrução SQL, que


permite efectuar a selecção de dados adequada a cada um dos seguintes pedidos:
a) O código e o nome de todos os distritos, ordenados descendentemente por número
de habitantes.

b) A maior área entre os distritos com código inferior a 10.

c) Os concelhos (código e nome) do distrito de Viseu.


2
União Europeia
Fundo Social
Europeu Escola Secundária Ferreira de
Castro
d) Os distritos (código e nome) que possuem uma área entre 2000 Km2 e 5000 km2.

e) Para todos os distritos, concelhos e províncias, listar as suas designações,


ordenando ascendentemente primeiro por distrito, depois por província e depois por
concelho.

f) A contagem dos concelhos existentes em cada distrito.

g) Os nomes dos distritos com mais de 18 concelhos.

h) Os distritos com mais de 1000000 habitantes.

i) A contagem dos distritos com mais de 10000 habitantes.

j) O código e o nome de cada distrito e a contagem dos seus concelhos.

k) O código de cada distrito e a respectiva densidade populacional (número de


habitantes por quilometro quadrado), ordenados descendentemente pelo seu
código.

l) O número total de habitantes existente na província com o código 2.

m) O somatório de habitantes da província com código 1, incluindo apenas os


concelhos que pertencem a distritos com área inferior a 4000Km2

n) Os nomes dos distritos com área superior a 5000Km 2 e com mais de 20000
habitantes, ordenados ascendentemente. (Utilize SELECT DISTINCT para que não
sejam apresentados registos repetidos).

Potrebbero piacerti anche