Prévia do material em texto
Disc.: IMPLEMENTAÇÃO DE BANCO DE DADOS Aluno(a): MARCIEL Acertos: 10,0 de 10,0 04/11/2020 1a Questão Acerto: 1,0 / 1,0 Uma linguagem de consulta procedural, onde o objetivo fundamental é permitir a escrita de expressões relacionais é denominada de álgebra relacional. Com suas operações fundamentais é possível exprimir qualquer consulta nesta linguagem. Sendo assim, para apresentar os dados de acordo com a tabela abaixo, marque a alternativa correta que descreve a álgebra a ser utilizada. Produto.Nome Produto.Qualidade Estoque.Qtde Laranja 1 100 Laranja 2 150 Uva 1 200 Uva 2 130 Trigo 2 240 Pêssego 1 260 Pêssego 2 190 πNome, Qualidade, Qtde(σProduto.Cod_Prod = Estoque.Cod_Prod) πNome, Qualidade, Qtde πNome, Qualidade, Qtde(σProduto.Cod_Prod = Estoque.Cod_Prod(Produto X Estoque)) σProduto.Cod_Prod = Estoque.Cod_Prod(πNome, Qualidade, Qtde) σProduto.Cod_Prod = Estoque.Cod_Prod(Produto X Estoque) Respondido em 04/11/2020 10:24:30 2a Questão Acerto: 1,0 / 1,0 São comandos da categoria de Definição de Dados (DDL): COMMIT / ROLLBACK CREATE / ALTER / DROP GRANT / REVOKE SELECT INSERT / UPDATE / DELETE Respondido em 04/11/2020 10:28:02 3a Questão Acerto: 1,0 / 1,0 O esquema de banco de dados apresentado abaixo faz parte de um banco de dados criado a partir de um conjunto de dados públicos de captura de tubarões entre os anos de 2001 e 2013 na costa da Austrália. Os dados podem ser baixados no endereço: https://data.qld.gov.au/dataset/shark-control-program-shark-catch-statistics/resource/5c6be990- 3938-4125-8cca-dac0cd734263 Características do esquema: Chave primária sublinhada e chave estrangeira em itálico. Seguem algumas tabelas do Esquema: Espécie (IDEspécie, IDOrdem. Nome_Científico, TamMaior, TamMenor, TamMédio) Tubarão (IDTubarão, IDEspécie, Comprimento, Sexo) Captura (NumCaptura, IDTubarão, IDLocal, Data, TempAgua) Local (IDLocal, CodArea, NomeLocal) Area (CodArea, NomeArea) Sabendo-se que um metro possui 39,3700787 polegadas, assinale a alternativa correto abaixo que consulta a data da captura, a temperatura da água e o comprimento do tubarão convertido em polegadas com o título Polegadas: SELECT DATA, TEMPAGUA, COMPRIMENTO * 39.3700787 Polegadas FROM TUBARÃO T, CAPTURA C WHERE C.IDTUBARÃO = T.IDTUBARÃO; SELECT DATA, TEMPAGUA, (COMPRIMENTO * 39,3700787) Polegadas FROM TUBARÃO T, CAPTURA C WHERE C.IDTUBARÃO = T.IDTUBARÃO; SELECT DATA, TEMPAGUA, "COMPRIMENTO * 39,3700787" Polegadas FROM TUBARÃO T, CAPTURA C WHERE C.IDTUBARÃO = T.IDTUBARÃO; SELECT DATA, TEMPAGUA, COMPRIMENTO * 39.3700787 Polegadas FROM TUBARÃO T, CAPTURA C; SELECT DATA, TEMPAGUA, COMPRIMENTO * 39,3700787 Polegadas FROM TUBARÃO T, CAPTURA C WHERE C.IDTUBARÃO = T.IDTUBARÃO; Respondido em 04/11/2020 10:49:27 4a Questão Acerto: 1,0 / 1,0 O operador que possibilita a seleção de uma faixa de valores sem a necessidade do uso dos operadores >=, <= e AND é: HAVING LIKE GROUP BY BETWEEN IN Respondido em 04/11/2020 10:50:28 5a Questão Acerto: 1,0 / 1,0 Considerando as tabelas descritas a seguir e a legenda: PK - chave primária / FK - chave estrangeira. 1 - ALUNO (matricula,nome,especializacao,nivel,idade), onde matricula é a PK; 2 - TURMA (nome_turma,horario,sala), onde nome_turma é a PK; 3 - MATRICULA (numero_aluno,nome_turma,numero_posicao), onde numero_aluno e nome_turma formam a PK, numero_aluno é FK referenciando ALUNO e nome_turma é FK referenciando TURMA. Marque a opção que contém o código em SQL para exibir o(s) nome(s) da(s) turma(s) que tem mais de 20 alunos matriculados: SELECT t.nome_turma,count(*) FROM TURMA t INNER JOIN MATRICULA m ON t.nome_turma = m.nome_turma HAVING count(*) > 20 GROUP BY t.nome_turma SELECT nome_turma,count(*) FROM TURMA t INNER JOIN MATRICULA m ON t.nome_turma = m.nome_turma WHERE count(*) > 20 SELECT * FROM TURMA t,MATRICULA m ON t.nome_turma = m.nome_turma WHERE count(*) > 20 SELECT nome_turma,count(*) FROM TURMA t INNER JOIN MATRICULA m ON t.nome_turma = m.nome_turma GROUP BY nome_turma WHERE count(*) > 20 SELECT t.nome_turma,count(*) FROM TURMA t INNER JOIN MATRICULA m ON t.nome_turma = m.nome_turma GROUP BY 1 HAVING count(*) > 20 Respondido em 04/11/2020 10:52:05 6a Questão Acerto: 1,0 / 1,0 Na sintaxe ANSI da junção Interior, na sua forma padrão é: select * from tabela1 CROSS JOIN tabela2; select [colunas] from tabela1 LEFT JOIN tabela2 ON ; select [colunas] from tabela1 RIGHT JOIN tabela2 ON ; select * from tabela1 LEFT JOIN tabela2; select [colunas] from tabela1 INNER JOIN tabela2 ON ; Respondido em 04/11/2020 10:54:10 7a Questão Acerto: 1,0 / 1,0 eM um banco de dados há três tabelas: T1, T2 e T3, com 10, 20 e 30 registros respectivamente. Cada tabela possui um atributo A, sobre o qual é definida uma chave primária. Nesse cenário, está correto concluir que o comando select T1.* from T1 cross join T2 cross join T3 produz um resultado que, além da linha de títulos, possui: 6.000 linhas. 600 linhas; 30 linhas; 10 linhas; 20 linhas; Respondido em 04/11/2020 10:55:25 8a Questão Acerto: 1,0 / 1,0 Sabendo que a estrutura da tabela é: ID_EMP_MATRICULA, VC_EMP_NOME, NU_EMP_CARGO, NU_EMP_SALARIO, NU_EMP_GRATIFICACAO, NU_EMP_DESCONTO. Pede-se que, exiba a(s) matrícula(s), o(s) nome(s), o(s) salário(s) líquido(s) do(s) maior(es) salário(s) pago(s) aos empregados pela empresa. Qual a alternativa válida: SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, (E.NU_EMP_SALARIO + E.NU_EMP_GRATIFICACAO - E.NU_EMP_DESCONTO) AS LIQUIDO FROM EMPREGADO E INNER JOIN CARGO C ON E.NU_EMP_CARGO = C.ID_CAR_CODIGO WHERE E.NU_EMP_SALARIO IN MAX(E.NU_EMP_SALARIO); SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, (E.NU_EMP_SALARIO + E.NU_EMP_GRATIFICACAO - E.NU_EMP_DESCONTO) AS LIQUIDO FROM EMPREGADO E INNER JOIN CARGO C ON E.NU_EMP_CARGO = C.ID_CAR_CODIGO WHERE E.NU_EMP_SALARIO > E.NU_EMP_SALARIO; SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, (E.NU_EMP_SALARIO + E.NU_EMP_GRATIFICACAO - E.NU_EMP_DESCONTO) AS LIQUIDO FROM EMPREGADO E INNER JOIN CARGO C ON E.NU_EMP_CARGO = C.ID_CAR_CODIGO HAVING E.NU_EMP_SALARIO IN (SELECT MAX(X.NU_EMP_SALARIO) FROM EMPREGADO X)); SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, (E.NU_EMP_SALARIO + E.NU_EMP_GRATIFICACAO - E.NU_EMP_DESCONTO) AS LIQUIDO FROM EMPREGADO E INNER JOIN CARGO C ON E.NU_EMP_CARGO = C.ID_CAR_CODIGO WHERE E.NU_EMP_SALARIO = MAX(E.NU_EMP_SALARIO); SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, (E.NU_EMP_SALARIO + E.NU_EMP_GRATIFICACAO - E.NU_EMP_DESCONTO) AS LIQUIDO FROM EMPREGADO E INNER JOIN CARGO C ON E.NU_EMP_CARGO = C.ID_CAR_CODIGO WHERE E.NU_EMP_SALARIO IN (SELECT MAX(X.NU_EMP_SALARIO) FROM EMPREGADO X)); Respondido em 04/11/2020 11:03:39 9a Questão Acerto: 1,0 / 1,0 SELECT * FROM Imovel WHERE NumVagasGaragem IN(1,2,4) ORDER BY Tamanho SELECT * FROM Imovel WHERE NumQuartos BETWEEN 2 AND 4 ORDER BY Tamanho DESC SELECT * FROM Imovel WHERE NumVagasGaragem IN(1,2,4) ORDER BY Tamanho DESC SELECT * FROM Imovel WHERE NumBanheiros BETWEEN 2 AND 4 ORDER BY Tamanho DESC SELECT * FROM Imovel WHERE NumBanheiros BETWEEN 2 AND 4 ORDER BY Tamanho Respondido em 04/11/2020 11:03:06 10a Questão Acerto: 1,0 / 1,0 A cláusula having, quando usada, estabelece uma condição sobre uma agregação obtida de: order by em uma expressão select. group by em uma expressão select. Reorganiza-se automaticamente com pequenas mudanças locais. group by em uma cláusula order by. sum em umaexpressão create. Respondido em 04/11/2020 11:03:45 javascript:abre_colabore('38403','212180719','4275428194');