Questão de Banco de Dados — PostgreSQL — VUNESP 2023
Banco de Dados›PostgreSQL
Código
vu196195
Banca
VUNESP
Órgão
Pref Marília
Ano
2023
Cargo
Ana ( )
Considere a seguinte tabela presente em um sistema gerenciador de banco de dados PostgreSQL (v. 14):
T1 (A, M, N)
O comando para obter o atributo N, considerando apenas valores de M (inteiro) menores do que 20, restringindo o resultado a 20 linhas é:
ASELECT N FROM T1 WHERE M < 20 CUT IN 20;
BSELECT N (20) FROM T1 WHERE M < 20;
CSELECT 20 OF N FROM T1 WHERE M < 20;
DSELECT N FROM T1 WHERE M < 20 MAX OF 20;
ESELECT N FROM T1 WHERE M < 20 LIMIT 20;
Revelar gabarito e comentário▾
GabaritoE — SELECT N
FROM T1
WHERE M < 20
LIMIT 20;
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Comandos SQL: LIMIT no PostgreSQL
Gabarito: letra E. No PostgreSQL, a cláusula LIMIT é a forma correta de restringir o número de linhas retornadas por uma consulta — exatamente o que o enunciado pede ao limitar o resultado a 20 linhas. As demais alternativas usam sintaxes inexistentes ou incorretas no SQL padrão e no PostgreSQL.
O comando SELECT é a base de qualquer consulta em SQL, e sua sintaxe básica é SELECT colunas FROM tabela WHERE condição. Para limitar a quantidade de linhas retornadas, o PostgreSQL oferece a cláusula LIMIT, que deve vir após a cláusula WHERE (ou após ORDER BY, se houver). A sintaxe correta é:
SELECT N
FROM T1
WHERE M < 20
LIMIT 20;
Essa cláusula é específica do PostgreSQL (e também do MySQL, SQLite e outros SGBDs), mas não faz parte do padrão SQL ANSI, que utiliza FETCH FIRST n ROWS ONLY (disponível no PostgreSQL a partir da versão 8.4). Apesar disso, LIMIT é amplamente utilizada e aceita no PostgreSQL.
A pegadinha desta questão é justamente a presença de alternativas com sintaxes inventadas, como CUT IN, SELECT N (20), SELECT 20 OF N e MAX OF. Essas opções não existem em nenhum SGBD relacional — são distratores criados para confundir quem não conhece a sintaxe correta. O candidato que domina o básico do PostgreSQL identifica rapidamente que apenas a letra E apresenta uma cláusula válida.
Além do LIMIT, o PostgreSQL também permite usar OFFSET para pular um número de linhas antes de começar a retornar, e FETCH FIRST como alternativa padrão. Por exemplo, SELECT N FROM T1 WHERE M < 20 LIMIT 20 OFFSET 10; retornaria 20 linhas a partir da 11ª. Esses conceitos são frequentemente cobrados em provas de banco de dados, então vale a pena dominá-los.
Guarde a sintaxe correta: SELECT ... FROM ... WHERE ... LIMIT n; — é exatamente esse o critério que separa a alternativa correta das demais.
1SELECT N
2FROM T1
3WHERE M < 20
4LIMIT 20
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
A cláusula CUT IN 20 não existe no SQL nem no PostgreSQL. O comando CUT é um utilitário de linha de comando do sistema operacional (usado para extrair seções de arquivos de texto), não uma instrução SQL. A banca tenta confundir o candidato que conhece o comando cut do Linux, mas ele não tem relação com consultas a banco de dados.
Alternativa B — ❌ Incorreta
A sintaxe SELECT N (20) é inválida. No SQL, para limitar o número de linhas, não se usa parênteses após o nome da coluna. Essa forma lembra uma chamada de função, mas N é uma coluna, não uma função. O correto seria usar LIMIT 20 após a cláusula WHERE.
Alternativa C — ❌ Incorreta
SELECT 20 OF N também é uma sintaxe inexistente. A palavra OF não é usada para limitar resultados no SQL; ela aparece em outras construções, como CURSOR ... OF, mas não nesse contexto. O número 20 não pode ser colocado antes de OF para indicar limite de linhas.
Alternativa D — ❌ Incorreta
MAX OF 20 não é uma cláusula válida. MAX é uma função de agregação usada para retornar o maior valor de uma coluna, mas não serve para limitar o número de linhas do resultado. A banca explora a confusão entre MAX (função de agregação) e LIMIT (restrição de linhas).
Alternativa E — ✅ Correta ⟵ GABARITO
A cláusula LIMIT 20 é a forma correta no PostgreSQL para restringir o resultado a 20 linhas. A consulta SELECT N FROM T1 WHERE M < 20 LIMIT 20; seleciona o atributo N da tabela T1, filtra as linhas onde M é menor que 20 e retorna no máximo 20 registros. Essa é a sintaxe padrão do PostgreSQL para limitar resultados.