Enunciado
Considere as duas seguintes tabelas de um banco de dados relacional: Curso (ID, Especialidade, Tipo) Aluno (Número, Nome, Cidade, ID) ID é chave estrangeira na tabela Aluno, com origem na chave primária ID de Curso. O comando SQL para obter o nome dos alunos, a especialidade e o tipo de curso em que estão matriculados é:
Alternativas
- A)
SELECT Nome, Especialidade, Tipo FROM Curso, Aluno;
- B)
SELECT Nome, Especialidade, Tipo FROM Curso.ID = Aluno.ID;
- C)
SELECT Nome, Especialidade, Tipo FROM Curso, Aluno WHERE ID = ID;
- D)
SELECT Nome, Especialidade, Tipo FROM Curso, Aluno (Curso.ID = Aluno.ID);
- E)
SELECT Nome, Especialidade, Tipo FROM Curso, Aluno WHERE Curso.ID = Aluno.ID;
Gabarito e comentário
Resposta correta: E
A alternativa E está correta. As tabelas precisam ser relacionadas pela chave ID. A condição Curso.ID = Aluno.ID associa cada aluno ao curso em que está matriculado, enquanto a lista do SELECT retorna Nome, Especialidade e Tipo. Sem essa condição, ocorre produto cartesiano. A qualificação do nome das colunas também evita ambiguidade entre os dois campos chamados ID. Assim, a resposta é: SELECT Nome, Especialidade, Tipo FROM Curso, Aluno WHERE Curso.ID = Aluno.ID;