Questões de Concurso
Sobre sql em banco de dados
Foram encontradas 4.612 questões
I.O uso de Prepared Statements (consultas parametrizadas) separa a lógica do comando SQL dos dados fornecidos, evitando que a entrada do usuário seja interpretada como código.
II.O ataque de SQL Injection pode ocorrer em diferentes tipos de comandos SQL, como SELECT, INSERT, UPDATE e DELETE.
III.O uso de ORMs (Object-Relational Mappers) elimina completamente o risco de SQL Injection, independentemente da forma como as consultas são construídas.
É correto o que se afirma em:
Um analista precisa extrair dados de diferentes tabelas do Sistema Integrado de Administração Financeira (SIAFI) para gerar um relatório complexo sobre despesas com pessoal. O relatório deve combinar informações de servidores, lotações, remunerações e descontos. Para isso, ele precisa construir uma consulta SQL avançada que utilize diferentes tipos de junções (JOINs).
Associe os tipos de junções SQL da Coluna A com suas respectivas descrições e resultados na Coluna B, no contexto da consulta ao banco de dados do SIAFI.
Coluna A
1. INNER JOIN
2. LEFT JOIN (ou LEFT OUTER JOIN)
3. FULL OUTER JOIN
4. CROSS JOIN
Coluna B (__) Retorna todos os registros da tabela de servidores (à esquerda) e os registros correspondentes da tabela de remunerações (à direita). Se um servidor não tiver remuneração registrada no período, seus dados ainda aparecerão no resultado, com valores nulos para as colunas de remuneração. (__) Retorna o produto cartesiano entre a tabela de categorias de despesa e a tabela de fontes de recurso, combinando cada categoria com cada fonte, sendo útil para criar um universo de todas as combinações possíveis para análise de cenários orçamentários. (__) Retorna apenas os registros que possuem correspondência em ambas as tabelas, por exemplo, ao combinar a tabela de servidores com a de lotações, o resultado incluirá apenas os servidores que têm uma lotação válida e ativa registrada no sistema. (__) Retorna todos os registros quando há uma correspondência em qualquer uma delas, preenchendo com valores nulos as lacunas onde não houver match. Por exemplo, ao unir a tabela de empenhos e a tabela de pagamentos, o resultado mostraria todos os empenhos (mesmo os não pagos) e todos os pagamentos (mesmo os de empenhos de exercícios anteriores).
A sequência correta de preenchimento dos parênteses, de cima para baixo, é:
Em uma instituição de ensino superior, foi necessário criar um banco de dados para controlar os projetos científicos e a participação dos pesquisadores. Para isso, foram criadas as tabelas Pesquisador, Area_Conhecimento e Projeto por meio dos scripts SQL abaixo:

Deseja-se listar o nome dos pesquisadores que atuam como bolsistas, juntamente com a carga horária semanal dos projetos, exibindo apenas registros com correspondência entre as tabelas e ordenando em ordem decrescente de carga horária.
Assinale a alternativa correta:
Em um sistema corporativo de gestão de pessoas, os dados dos colaboradores estão distribuídos em diferentes entidades relacionais, de forma a garantir integridade e evitar redundâncias. Um analista precisa construir uma consulta que permita extrair informações consolidadas para fins gerenciais. Considere as seguintes tabelas:
● TABELA_PESSOAS (ID_PESSOA, NOME, CPF)
● TABELA_CONTRATOS (MATRICULA, ID_PESSOA, SALARIO, COD_SETOR)
● TABELA_SETORES (COD_SETOR, NOME_SETOR)
O analista elaborou a seguinte consulta SQL:

Com base na consulta apresentada e no comportamento dos operadores relacionais em SQL padrão, analise as afirmativas a seguir:
I. A consulta retornará exclusivamente colaboradores que possuam contrato com remuneração superior a 2000 e que estejam vinculados a um setor válido cadastrado, excluindo implicitamente quaisquer registros com ausência de correspondência nas tabelas relacionadas.
II. Caso existam contratos com o campo COD_SETOR nulo ou com valores que não possuam correspondência na tabela de setores, tais registros serão desconsiderados no resultado, ainda que atendam ao critério de remuneração.
III. Ao realizar um RIGHT JOIN entre a TABELA_PESSOAS e a TABELA_CONTRATOS, o SQL Server garantirá que todos os registros de pessoas sejam exibidos no resultado final, mesmo aqueles que não possuem contrato vinculado, preenchendo os campos da tabela de contratos com valores NULL.
IV. A consulta apresentada pode retornar colaboradores que não possuem registro correspondente na TABELA_CONTRATOS, desde que estejam cadastrados na TABELA_PESSOAS e atendam ao critério de salário informado.
Assinale a opção correta:
Observe as tabelas abaixo:
O código que retornará como resultado um produto cartesiano entre tb_livro e tb_autor é:
I. O comando "SELECT titulo FROM Livro WHERE ano > 1900;" retornaria os valores Vidas Secas, Grande Sertão: Veredas, Capitães da Areia e A Hora da Estrela.
II. O comando "SELECT titulo FROM Livro WHERE autor IN (SELECT autor FROM Livro GROUP BY autor HAVING COUNT(titulo) > 1);" retornaria os valores O Guarani, Iracema, O Primo Basílio e Quincas Borba.
III. O comando "SELECT ano FROM Livro WHERE ano < 1870;" retornaria os valores O Guarani, Iracema e A Moreninha.
IV. O comando "SELECT titulo FROM Livro WHERE autor >= 'A' AND autor < 'I';" retornaria os valores O Cortiço, A Hora da Estrela, O Primo Basílio e Vidas Secas.
Nesse contexto, qual cláusula SQL deve ser utilizada pelo Analista para atender a essa necessidade?
Um Analista de Sistemas está desenvolvendo relatórios para uma agência de fomento. Ele precisa listar os nomes dos funcionários que atendam a todas as seguintes condições:
• Recebem salário superior a R$ 5.000,00;
• Possuem dependentes do sexo feminino.
Considerando as tabelas Funcionarios, Departamentos e Dependentes, qual consulta SQL retorna CORRETAMENTE os resultados desejados?
O domínio da linguagem SQL exige do analista a compreensão da correta ordem de execução lógica e restrição de cláusulas de agregação. Considere o seguinte modelo de dados relacional de uma instituição acadêmica (chaves primárias sublinhadas):
Pesquisador (ID_Pesq, Nome)
Projeto (ID_Proj, Titulo)
Atuacao (ID_Pesq, ID_Proj, Horas_Semanais)
Um analista precisa escrever uma consulta SQL que retorne o nome dos pesquisadores e a quantidade de projetos em que atuam, considerando apenas as atuações com mais de 10 horas semanais. Além disso, o relatório final deve exibir apenas os pesquisadores que possuam participação em mais de 2 projetos (já obedecendo ao critério mínimo de horas). O resultado deve ser ordenado pela quantidade de projetos em ordem decrescente.
Assinale a alternativa que apresenta o comando SQL sintática e logicamente correto para satisfazer todos os requisitos dessa regra de negócio.
Considere um banco de dados relacional de um e-commerce composto pelas seguintes tabelas e suas respectivas colunas, com os tipos de dados estritamente indicados (chaves primárias sublinhadas):
Cliente (ID_Cliente INT, Nome VARCHAR(100))
Produto (ID_Produto INT, Tipo VARCHAR(50), Valor DECIMAL(10,2))
Compra (ID_Compra INT, ID_Cliente INT, ID_Produto INT, Data_Compra DATE)
Um analista de dados precisa gerar um relatório que retorne os nomes dos clientes que compraram produtos do tipo 'livro' durante o mês de dezembro (independentemente do ano), ordenados a partir daqueles que realizaram a maior quantidade de compras para os de menor quantidade. Assinale a alternativa que apresenta o comando SQL correto para obter esse resultado.
Considere o seguinte comando SQL executado em um banco de dados:
SELECT COUNT(ID), AVG(Valor), Tipo
FROM Transacoes
WHERE CAST(Valor AS VARCHAR) LIKE '1%'
GROUP BY Tipo
HAVING COUNT(ID) > 10;
Assinale a alternativa que apresenta a correta descrição do resultado produzido pela execução desse comando.
Considere que um administrador de banco de dados (DBA) deseja criar uma nova tabela para registrar os colaboradores de uma empresa. A regra de negócio exige que a matrícula atue como o identificador principal e exclusivo do registro, que o nome seja um texto de tamanho variável (até 100 caracteres) com preenchimento obrigatório, e que exista uma coluna temporal para armazenar a data de contratação. O comando SQL a ser executado para atender a essa especificação é:
CREATE TABLE funcionario (
matricula INT ____________,
nome ____________(100) ____________,
data_contratacao ____________
);
Assinale a alternativa que preenche, correta e respectivamente, as lacunas do script acima.
SQL é uma linguagem padrão utilizada em sistemas gerenciadores de bancos de dados relacionais para consulta e manipulação de dados. Considere o comando abaixo:
SELECT departamento, COUNT(*) AS total, MAX(salario) AS
maior_salario
FROM funcionarios
WHERE cargo <> 'Estagiario'
GROUP BY departamento
HAVING COUNT(*) >= 3
ORDER BY maior_salario DESC;
Com base nesse comando, assinale a alternativa CORRETA.
Uma analista está desenvolvendo um relatório em um sistema de vendas para identificar clientes cujo valor total de pedidos ultrapassou R$ 500,00 no mês corrente. A consulta utiliza as cláusulas JOIN e GROUP BY com a função de agregação SUM. Ao testar a consulta, ela percebeu que precisava filtrar os grupos com base no valor calculado pela agregação. Nesse contexto, qual cláusula SQL deve ser utilizada para filtrar grupos com base no resultado de uma função de agregação?
Diante de um sistema com banco de dados relacional SQL Server com determinadas tabelas, conforme apresenta o quadro abaixo, equipe de RH necessita de um relatório que apresente o nome de cada secretaria e a média salarial dos servidores lotados nela que tenham sido admitidos há mais de 5 anos, listando somente as secretarias cuja média salarial desse grupo supere a média salarial de todos os servidores do município, com o resultado ordenado da maior para a menor média.
SERVIDORES (id_servidor, nome, id_lotacao, data_admissao, salario)LOTACOES (id_lotacao, nome_lotacao, id_secretaria)
SECRETARIAS (id_secretaria, nome_secretaria, orcamento anual)
Assim, assinale a alternativa que contém o comando SQL capaz de atender CORRETAMENTE a esse requisito.