Questão nº 55
Questão de Tecnologia da Informação · FCC DPE-AM 2017 (nº 55)
Seja a tabela Contas de um banco de dados relacional:
Contas (Número, Saldo, Nome-Cliente, Código-Agência)
O comando PL-SQL para obter o saldo e o código da agência dos registros da tabela Conta, com nome do cliente nulo, ordenados pelo saldo, com código da agência maior do que 5000 é:
- ASELECT Saldo, Código-Agência
FROM Contas
WHERE Código-Agência > 5000 AND Nome-Cliente = ‘null’
CLASSIFY ON Saldo - BSELECT Saldo, Código-Agência
FROM Contas
WHERE Código-Agência > 5000, Nome-Cliente = NULL’
HAVING Saldo UP - CSELECT Saldo, Código-Agência
FROM Contas
WHERE Código Agência > 5000 AND Nome-Cliente IS NULL
ORDER BY Saldo (alternativa correta) - DSELECT Saldo, Código-Agência
FROM Contas
FOR Código-Agência > 5000 , Nome-Cliente <> NULL’
CLASSIFY ON Saldo - ESELECT Saldo, Código-Agência
FROM Contas
WHERE Código-Agência > 5000 OR Nome-Cliente LIKE ‘NULL’
ORDER UP ON Saldo
Resposta comentada
Gabarito Alternativa C
Para buscar informações específicas em uma tabela, usamos o comando SELECT. As condições para filtrar os dados são definidas na cláusula WHERE, e para organizar o resultado, usamos ORDER BY. É crucial lembrar que para verificar se um campo está vazio (ou seja, NULL), não usamos o sinal de igual (=), mas sim a expressão IS NULL.
- (A) Incorreta: A condição
Nome-Cliente = ‘null’está errada.‘null’entre aspas é uma string literal, não o valorNULL. Para verificar se um campo é nulo, usa-seIS NULL. Além disso,CLASSIFY ON Saldonão é uma sintaxe SQL padrão para ordenação; o correto seriaORDER BY Saldo. Armadilha da banca: Usar='null'é um erro comum para iniciantes, que confundem a string "null" com o valorNULL. - (B) Incorreta: A sintaxe
Nome-Cliente = NULL’está incorreta (aspas simples no final e uso incorreto de=paraNULL). Múltiplas condições na cláusulaWHEREdevem ser conectadas porANDouOR, não por vírgulas.HAVING Saldo UPnão é uma sintaxe SQL padrão para ordenação, eHAVINGé usado com funções de agregação, não para ordenar. - (C) Correta: Esta alternativa utiliza a sintaxe SQL padrão e correta.
SELECT Saldo, Código-Agênciaseleciona as colunas desejadas.FROM Contasespecifica a tabela.WHERE Código Agência > 5000 AND Nome-Cliente IS NULLaplica as duas condições de filtro corretamente:ANDpara combinar as condições, eNome-Cliente IS NULLé a forma padrão e correta de verificar se um campo possui valor nulo.ORDER BY Saldoordena os resultados pelo saldo em ordem crescente (padrão). - (D) Incorreta:
FORnão é a palavra-chave correta para definir condições de filtro; o correto éWHERE. A condiçãoNome-Cliente <> NULL’está incorreta, poisNULLnão pode ser comparado diretamente com operadores de igualdade/diferença (=ou<>), e há um erro de sintaxe com as aspas.CLASSIFY ON Saldonão é uma sintaxe SQL padrão para ordenação. - (E) Incorreta: O uso de
ORem vez deANDaltera a lógica da consulta, pois a questão pede que ambas as condições sejam satisfeitas.Nome-Cliente LIKE ‘NULL’está incorreto, poisLIKEé para comparação de padrões e‘NULL’é uma string literal; não verifica se o campo é nulo.ORDER UP ON Saldonão é uma sintaxe SQL padrão para ordenação.
Fonte: FCC DPE-AM 2017 Analista em Gestão Especializado em Tecnologia da Informação de Defensoria - Analista de Banco de Dados (Caderno Tipo 001). Reproduzida para fins de estudo.