Prévia do material em texto
Aluno: Matr.: Disc.: FUND.BANCO DADOS 2020.1 - F (GT) / EX 1. Sobre as subconsultas em SQL, assinale a alternativa FALSA. Podem retornar linhas nulas. Podem existir várias subconsultas para uma única consulta. São escritas entre parênteses. Podem retornar uma ou várias colunas. Podem retornar uma ou várias linhas. Explicação: As subconsultas obedecem aos seguintes princípios: • São escritas entre parênteses. • Podem existir várias subconsultas para uma única consulta. • Podem existir subconsultas dentro de subconsultas (subconsultas aninhadas). • Podem retornar uma ou várias colunas. • Podem retornar uma ou várias linhas. • Normalmente são utilizadas nas cláusulas WHERE ou HAVING, podendo, mais raramente, serem utilizadas nas cláusulas FROM ou SELECT. • Eventualmente podem referenciar colunas da consulta principal (subconsulta correlata). • Não devem retornar linhas nulas. 2. Qual operador retorna todas as linhas do primeiro conjunto acrescidas de todas as linhas do segundo conjunto, eliminando as duplicadas? Intersect http://simulado.estacio.br/bdq_simulados_exercicio.asp http://simulado.estacio.br/bdq_simulados_exercicio.asp Union Inner join Join Except Explicação: O operador UNION realiza a operação de UNIÃO, ou seja, retorna todas as linhas do primeiro conjunto acrescidas de todas as linhas do segundo conjunto, eliminando as duplicadas. 3. Baseado no modelo de banco de dados mostrado a seguir: FILIAL(idfilial(PK), nome, cidade,endereço,telefone) FUNCIONARIO(idfuncionario(PK),nome,endereço ,telefone,salario,idfilial) CLIENTE(idcliente(PK),nome,cpf,endereço,telefon e,cidade) CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km ,valor,chassis,idfilial) ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,da taIni,dataFim,idfuncionario) Qual o código do Carro que tem o maior valor de aluguel? SELECT idCarro FROM aluguel a where valor = (select sum(valor) from aluguel); SELECT idCarro, Max(valor) FROM aluguel; SELECT idCarro FROM aluguel a where valor = Max(valor); SELECT idCarro, Max(valor) FROM aluguel a group by idcarro; SELECT idCarro FROM aluguel a where valor = (select Max(valor) from aluguel); http://simulado.estacio.br/bdq_simulados_exercicio.asp Explicação: Para executarmos a consulta temos que primeiro obter o maior valor de aluguel em uma subconsulta e depois utilizar este valor para filtrar as linhas na consulta principal 4. Em um projeto lógico de um sistema foi identificado que um projeto é de um certo tipo. Assim, as relações abaixo foram definidas: TIPO_PROJETO (ID_TIPO, NOME) PROJETO (ID_PROJETO, NOME, DESCRICAO, ID_TIPO, VALOR) Conforme a linguagem SQL e as relações dadas, escolha a opção que mostre o nome de cada tipo de projeto que não possua um projeto e que comece com a letra A. SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE TP.ID_TIPO = P.ID_TIPO AND TP.ID_TIPO IS NULL AND TP.NOME LIKE '%A%'; SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE ID_TIPO IS NULL AND TP.NOME LIKE '%A%'; SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE TP.ID_TIPO = P.ID_TIPO AND P.VALOR IS NULL AND TP.NOME LIKE '%A%'; SELECT NOME FROM TIPO_PROJETO WHERE ID_TIPO NOT IN (SELECT DISTINCT ID_TIPO FROM PROJETO) AND NOME LIKE 'A%' ; SELECT TP.NOME FROM TIPO_PROJETO TP, PROJETO P WHERE ID_TIPO IS NULL AND P.VALOR=0 AND TP.NOME LIKE 'A%'; Explicação: http://simulado.estacio.br/bdq_simulados_exercicio.asp A subconsulta retorna o ID do tipos de projeto que possuem projeto e a clausula where filtrar as linhas da consulta principal que estão no conjunto retornado e ainda os nomes que não começam por A 5. Considere as seguintes tabelas: CLIENTE (idCli, NomeCli) PEDIDO (idPEDIDO, Data, idCli, ValorPedido) Qual alternativa apresenta os clientes que NÃO tiveram nenhum pedido? SELECT * FROM CLIENTE WHERE idCli IN (SELECT idCli FROM PEDIDO) SELECT NomeCli FROM CLIENTE C RIGHT JOIN PEDIDO P ON C.idCli = P.idCli SELECT NomeCli FROM CLIENTE C LEFT JOIN PEDIDO P ON C.idCli = P.idCli SELECT * FROM CLIENTE WHERE idCli NOT IN (SELECT idCli FROM PEDIDO) SELECT * FROM CLIENTE Explicação: O comando utiliza uma subconsulta para obter o id dos clientes que fizeram pedidos e a seguir filtra os clientes que não aparecem no conjunto retornado 6. Dentre os comandos abaixo, selecione o que possui uma subconsulta. SELECT * FROM PROFESSOR P, DISCIPLINA D http://simulado.estacio.br/bdq_simulados_exercicio.asp http://simulado.estacio.br/bdq_simulados_exercicio.asp SELECT P.NOME, D.NOME FROM PROFESSOR P, DISCIPLINA D WHERE P.ID_PROF = D.ID_PROF DROP TABLE PESSOA SELECT COUNT(*) FROM PRODUTO GROUP BY COR HAVING COR='VERDE' SELECT * FROM NOME WHERE MEIO IN (SELECT DISTINCT MEIO FROM NOME) Explicação: Subconsultas são escritas entre parênteses.