Lista de exercícios de Bases de dados e SQL com respostas
Lista de exercícios de Bases de dados e SQL grátis para imprimir: 8 exercícios do nível fácil ao nível de prova, com gabarito. Imprima ou salve como PDF.
Para professores: pode imprimir, copiar e usar em aula gratuitamente. Cada nova folha tem novos valores e o seu próprio gabarito. Agradecemos um link para o ExamProblems na página da sua disciplina.
Nome: ____________________ Data: ____________
1.Fácil
Qual instrução SQL recupera dados de uma tabela?
- ASELECT
- BCREATE
- CINSERT
- DUPDATE
2.Fácil
O que NULL representa em SQL?
- AO número zero em colunas numéricas
- BUm valor ausente ou desconhecido
- CUm booleano falso
- DUma string vazia
3.Fácil
No modelo relacional, como se chama uma linha de uma tabela?
- AAtributo
- BDomínio
- CTupla
- DEsquema
4.Média
Quando WHERE EXISTS (subconsulta) é verdadeiro para uma linha?
- AQuando a subconsulta não retorna valores NULL
- BQuando a subconsulta retorna um número maior que zero
- CQuando a subconsulta retorna exatamente uma linha
- DQuando a subconsulta retorna pelo menos uma linha
5.Média
Uma tabela armazena o endereço do cliente em cada linha de pedido. Alterar o endereço numa linha, mas não nas outras, é um exemplo de:
- ALeitura fantasma
- BAnomalia de exclusão
- CAnomalia de inserção
- DAnomalia de atualização
6.Média
Qual consulta retorna o número de pedidos por cliente?
- ASELECT customer_id FROM orders WHERE COUNT(*) > 0
- BSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
- CSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
- DSELECT DISTINCT COUNT(*) FROM orders
7.Difícil
Por que NATURAL JOIN é considerado arriscado em consultas de produção?
- AEle sempre retorna um produto cartesiano
- BEle ignora as chaves primárias e estrangeiras e mantém só as linhas NULL
- CEle junta por todas as colunas com o mesmo nome, então uma coluna nova pode mudar o resultado sem aviso
- DNenhum banco de dados o suporta
8.Difícil
Depois de customers LEFT JOIN orders, por que usar COUNT(o.id) em vez de COUNT(*) para contar os pedidos por cliente?
- ACOUNT(*) ignora as linhas com valores NULL
- BCOUNT(*) conta como 1 a linha preenchida com NULL dos clientes sem pedidos
- CCOUNT(*) não é permitido depois de um join
- DCOUNT(o.id) conta só os clientes distintos