SQL queries for student exam registration database
1. DEPARTAMENTO DE MATEMÁTICAS E CIÊNCIAS EXPERIMENTAIS
12ºG
ÁREA DISCIPLINAR: INFORMÁTICA
Programação e
CURSO PROFISSIONAL TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS
Sistemas de
Saída Profissional: Técnico de Gestão e Programação de Sistemas Informáticos
Informação
Família Profissional: Informática
Ano Lectivo 2011|2012
Área de Educação e Formação:481- Ciências Informáticas (Portaria 916 /2005 de 26 de Setembro)
Módulo 14 – Linguagem de Manipulação de Dados
Ficha de Trabalho 14. 7 Correcção
Grupo I
4. Utilize o objecto CONSULTA e de acordo com o comando SELECT da linguagem SQL e escreve a instrução completa
nas linhas em branco que responde as seguintes questões: Grave todas as consultas efectuadas na sua Base de Dados com um
nome adequado.
4.1. Quais são as disciplinas do tipo Anual? E de que ano pertencem?
SELECT nomedisciplina, ano FROM disciplina WHERE tipodisciplina ="Anual";
4.2. Qual é o total que vai pagar a Aluna Marta Dias para efectuar os exames em que se inscreveu? Deverá colocar o titulo da
coluna: TOTAL_A_PAGAR.
SELECT sum(preçoinscrição) AS TOTAL_A_PAGAR FROM inscrição WHERE codaluno = 1;
4.3. Qual é o nome e identificação do cartão cidadão dos alunos que efectuaram inscrições em exames? Responde com
sinónimos.
SELECT DISTINCT a.nomealuno, a.num_cartao_cidadao FROM aluno AS a, inscricao AS i WHERE i.codaluno = a.codaluno;
4.4. Quantas inscrições em exames houve no dia 11-09-2011? O nome da coluna deve ser TOTAL_INSCRICAO.
SELECT Count(*) AS TOTAL_INSCRICAO FROM inscricao WHERE (datainscricao=#9/11/2011#);
4.5. Quais os dados dos alunos que residem em Vila Nova de Gaia? Listar os alunos por ordem alfabética
SELECT * FROM aluno WHERE (localidade = 'Vila Nova de Gaia') ORDER BY nomealuno;
4.6. Quais são os tipos de exames para as disciplinas do 1º ano em que os alunos se podem inscrever? Responde a questão
utilizando sinónimos e sem repetições.
SELECT DISTINCT d.nomedisciplina, d.ano, t.descricao FROM disciplina AS d, tipoexame AS t, exame AS e1, exame AS e2
WHERE (e1.codtipoexame = e2.coddisciplina) and (e1.coddisciplina = d.coddisciplina) and (e1.codtipoexame=t.codtipoexame)
and (d.ano =1);
4.7. Quais os dados dos alunos cujo o telefone é desconhecido?
SELECT * FROM aluno WHERE telefone is null;
4.8. Lista para cada aluno as inscrições mais caras e mais baratas, bem como o valor médio de inscrições realizadas. Em cada
coluna deverá aparecer o nome respectivo de cada valor, de acordo com a seguinte figura:
SELECT a.nomealuno AS Nome_ALUNO, max(i.preçoinscrição) AS Max_Inscricao, min(i.preçoinscrição) AS Min_Inscricao,
avg(i.preçoinscrição) AS Valor_Médio FROM inscricao AS i, aluno AS a WHERE i.codaluno = a.codaluno GROUP BY
a.nomealuno;
4.9. Lista os nomes dos alunos cujo o total do preço de inscrições que efectuaram seja inferior a 50 Euros. Não pode
permitir repetições e utilize sinónimos
SELECT A.nomealuno, Sum(I.preçoinscrição) AS TOTAL FROM Aluno AS A, Inscricao AS I WHERE A.codaluno = I.codaluno
GROUP BY A.nomealuno HAVING (((Sum(I.preçoinscrição))<50));
12ºG 1/2
2. Módulo 14 Ficha de Trabalho 14.7 -Correcção
4.10. Acrescenta novos dados a tabela Inscrição:
4.11. Lista as datas das inscrições e nome da disciplina dos exames cujo a disciplina é Base de Dados. Utilize sinónimos.
SELECT I.datainscricao, [E].coddisciplina, D.nomedisciplina FROM Disciplina AS d, Exame AS e, inscricao AS i
WHERE (D.coddisciplina=[E].coddisciplina) And ([E].codexame=I.codexame) And (D.nomedisciplina='Bases de Dados');
12ºG 2/2