Questão nº 45
Questão de Banco de Dados · FCC TRT24 2016 (nº 45)
Em um banco de dados Oracle aberto e em condições ideais há uma tabela chamada `funcionario` com os campos `idFuncionario` (inteiro − primary key), `nome` (cadeia de caracteres) e `salario` (real). Para exibir o nome e o salário de todos os funcionários cujo valor de salário esteja fora do intervalo de 1000 a 12000 utiliza-se a instrução SQL `SELECT nome, salario FROM funcionario WHERE`
- A`salario<1000 AND salario>12000;`
- B`salario NOT BETWEEN 1000 OR 12000;`
- C`1000>salario>12000;`
- D`salario NOT BETWEEN 1000 AND 12000;` (alternativa correta)
- E`salario BETWEEN 1000 AND 12000;`
Resposta comentada
Gabarito Alternativa D
A cláusula BETWEEN no SQL é usada para verificar se um valor está dentro de um intervalo específico, incluindo os valores dos limites (o menor e o maior). Para encontrar valores que não estão nesse intervalo, usamos a negação NOT antes de BETWEEN.
- (A) Incorreta: Esta condição (
salario<1000 AND salario>12000) é logicamente impossível, pois um salário não pode ser menor que 1000 e, ao mesmo tempo, maior que 12000. A armadilha da banca aqui é tentar induzir o aluno a pensar que "fora do intervalo" significa que as duas condições de exclusão devem ser verdadeiras simultaneamente, quando na verdade elas definem regiões distintas que, juntas, formam o "fora do intervalo" e deveriam ser conectadas porOR. - (B) Incorreta: A sintaxe correta para a cláusula
BETWEENexige o uso do operadorANDpara definir o limite superior do intervalo (limite_inferior AND limite_superior). UsarORaqui é um erro de sintaxe. - (C) Incorreta: Esta sintaxe de comparação encadeada (
1000>salario>12000) não é válida em SQL. Em SQL, cada comparação deve ser feita separadamente e conectada por operadores lógicos comoANDouOR. - (D) Correta: A cláusula
NOT BETWEENé a forma padrão e correta em SQL para selecionar valores que estão fora de um intervalo especificado, incluindo os limites. Ela retorna todos os salários que são menores que 1000 OU maiores que 12000. - (E) Incorreta: Esta cláusula selecionaria os funcionários cujo salário está dentro do intervalo de 1000 a 12000 (inclusive), o que é o oposto do que a questão pede ("fora do intervalo").
Fonte: FCC TRT24 2016 Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.