Pular para o conteúdo principal

Questão de Banco de Dados — PostgreSQL — VUNESP 2023

Banco de DadosPostgreSQL
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 é:

  1. ASELECT N FROM T1 WHERE M < 20 CUT IN 20;
  2. BSELECT N (20) FROM T1 WHERE M < 20;
  3. CSELECT 20 OF N FROM T1 WHERE M < 20;
  4. DSELECT N FROM T1 WHERE M < 20 MAX OF 20;
  5. 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.

  1. 1SELECT N
  2. 2FROM T1
  3. 3WHERE M < 20
  4. 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.

Gabarito: letra E

Link permanente: /questoes/vu196195