SQL: Operadores e funções em consultas Oracle
Gabarito: letra A. A unica alternativa sintaticamente correta é a que utiliza o operador LIKE com o padrão '_a%' para encontrar nomes cujo segundo caractere seja 'a'. As demais alternativas apresentam erros de sintaxe ou uso incorreto de funções/operadores do SQL Oracle.
A banca testa o conhecimento dos operadores LIKE, BETWEEN e das funções de tratamento de nulos (NVL) e substring (SUBSTR) no Oracle. Vamos analisar cada uma:
Alternativa A — ✅ Correta ⟵ GABARITO
SELECT * FROM emp WHERE nome LIKE '_a%'; O operador LIKE com o padrão '_a%' significa: o primeiro caractere pode ser qualquer um (_), o segundo deve ser 'a', e depois qualquer sequência de caracteres (%). Essa é a sintaxe correta para selecionar funcionários cujo nome tenha 'a' como segunda letra.
Alternativa B — ❌ Incorreta
SELECT * FROM emp WHERE nome LIKE ('Pedro','Ana'); O operador LIKE não aceita uma lista de valores entre parênteses. Para comparar com múltiplas strings, deve-se usar o operador IN ou combinar com OR. Exemplo correto: WHERE nome IN ('Pedro','Ana').
Alternativa C — ❌ Incorreta
SELECT * FROM emp WHERE salario BETWEEN (1000,2000); A sintaxe correta do operador BETWEEN utiliza a palavra AND, não vírgulas. O correto é: WHERE salario BETWEEN 1000 AND 2000.
Alternativa D — ❌ Incorreta
SELECT * FROM emp WHERE SUBSTRING(nome,FIRST)= 'Mari'; Não existe a função SUBSTRING no Oracle (o correto é SUBSTR). Além disso, FIRST não é uma palavra-chave válida. Para extrair os 4 primeiros caracteres, usa-se: WHERE SUBSTR(nome,1,4) = 'Mari'.
Alternativa E — ❌ Incorreta
SELECT nome, salario+NIL(comissao) FROM emp; A função NIL não existe no Oracle. Para tratar valores nulos em somas, utiliza-se NVL ou COALESCE. O correto seria: SELECT nome, salario + NVL(comissao, 0) FROM emp.
Gabarito: letra A