Considere uma tabela para controle dos funcionários d...

Próximas questões
Com base no mesmo assunto
Q450042 Banco de Dados
Considere uma tabela para controle dos funcionários de uma empresa, chamada func, contendo os campos id (inteiro), fnome (varchar) e fcargo (varchar). Para exibir todos os funcionários que não sejam Gerentes nem Analistas e que tenham os nomes terminados em 'Ia' ou 'ma', utiliza- se a instrução SQL:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a E. Vamos entender o porquê:

A expressão "WHERE" no SQL é utilizada para filtrar registros que atendem a uma condição específica. Neste caso, precisamos excluir registros onde o campo fcargo é igual a 'Gerente' ou 'Analista', e garantir que o campo fnome termine com 'la' ou 'ma'.

Para representar a condição de não pertencer a um conjunto de valores, utilizamos o operador "NOT IN". Isso garante que o campo fcargo não possa ter nenhum dos valores listados entre parênteses.

O operador "LIKE" é usado para filtrar registros que atendem a um padrão específico em uma string. O símbolo de percentual '%' é um coringa no SQL que representa qualquer sequência de caracteres. Logo, '%la' busca por campos que terminam com 'la'.

É essencial usar o operador "AND" para garantir que ambas as condições – o cargo não ser 'Gerente' ou 'Analista' e o nome terminar com 'la' ou 'ma' – devem ser verdadeiras. O operador "OR" é usado porque queremos encontrar nomes que terminem com 'la' ou 'ma'.

A alternativa E está correta porque utiliza corretamente o operador "NOT IN" para excluir os cargos 'Gerente' e 'Analista', e aplica o operador "LIKE" com '%la' e '%ma' para filtrar os nomes que terminem com 'la' ou 'ma'. Além disso, ela usa o operador "OR" para aceitar nomes que atendam a qualquer uma das condições de final de string, e declara essa condição após o "AND" para garantir que ambas as condições do "WHERE" sejam aplicadas corretamente.

Portanto, a consulta SQL correta é: SELECT * FROM func WHERE fcargo NOT IN ('Gerente', 'Analista') AND (fnome LIKE '%la' OR fnome LIKE '%ma');

Essa consulta retorna todos os registros de funcionários que não são gerentes ou analistas e cujos nomes terminam com 'la' ou 'ma'.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Recuperar todos os dados a parti de func onde fcargo não em ('gerente',',analista') e fnome como '%fnome como '%ma';

sistema básico de seleção de dados, mas as alternativas fazem com que você se confunda. Cuidado!

Letra E

Eu acho que está questão ficou ambígua, pois se quer os que não são gerentes nem analistas e que "o resultado" termine com "la" ou "ma", então a query deveria ser:

select * from func where fcargo not in ('Gerente', 'Analista') and (fnome like '%la' or fnome like '%ma');

Por elmininação a E

O operador IN é utilizado quando desejamos consultar uma tabela, filtrando o valor de um de seus campos a partir de uma lista e possibilidades.

 

Enquanto o operador de comparação de igualdade (=) avalia se os dois valores são iguais, o IN permite verificar se o valor de um campo se encontra em uma lista.

 

Sua sintaxe é a seguinte:

SELECT campos FROM tabela WHERE campo IN (valor1, valor2, valor3);

Usando OR sem parênteses vai dar certinho...pode confiar...

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo