Pular para o conteúdo principal

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

Banco de DadosPostgreSQL
Código
fc070100
Banca
FCC
Órgão
TRT - 18ª Região (GO)
Ano
2023
Nível
Superior
Cargo
Analista Judiciário - Área: Apoio Especializado - Tecnologia da Informação
Em um banco de dados PostgreSQL 13 aberto e funcionando em condições ideais, deseja-se criar a tabela Tab_TRT18 utilizando o comando SELECT, com o valor 1 no campo Vara, o valor Juiz1 no campo NomeJuiz e o valor [email protected] no campo Email. O comando correto é:
  1. ASELECT Vara AS 1, NomeJuiz AS 'Juiz1', Email AS '[email protected]' INTO Tab_TRT18;
  2. BSELECT 1 AS Vara, 'Juiz1' AS NomeJuiz, '[email protected]' AS Email INTO Tab_TRT18;
  3. CSELECT INTO Tab_TRT18 (1 AS Vara, 'Juiz1' AS NomeJuiz, '[email protected]' AS Email);
  4. DSELECT INTO Tab_TRT18 Vara AS 1, NomeJuiz AS 'Juiz1', Email AS '[email protected]';
  5. ESELECT VALUES (1 AS Vara, 'Juiz1' AS NomeJuiz, '[email protected]' AS Email) INTO Tab_TRT18;
Revelar gabarito e comentário

GabaritoB — SELECT 1 AS Vara, 'Juiz1' AS NomeJuiz, '[email protected]' AS Email INTO Tab_TRT18;

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”.

Criação de Tabela com SELECT INTO no PostgreSQL

Gabarito: letra B. A sintaxe correta no PostgreSQL para criar uma tabela a partir de valores constantes é SELECT 1 AS Vara, 'Juiz1' AS NomeJuiz, '[email protected]' AS Email INTO Tab_TRT18;. A cláusula INTO deve vir após a lista de seleção e antes da cláusula FROM (que neste caso não existe por não haver tabela de origem). As demais alternativas invertem a ordem do INTO ou utilizam nomes de colunas inexistentes.

O comando SELECT ... INTO no PostgreSQL é uma extensão que cria uma nova tabela e insere os resultados da consulta. É equivalente a CREATE TABLE Tab_TRT18 AS SELECT .... A alternativa B respeita a sintaxe: as constantes (1, 'Juiz1', '[email protected]') são especificadas com AS para definir os nomes das colunas da nova tabela.

  1. 1SELECT constantes
  2. 2AS nome_coluna
  3. 3INTO nova_tabela
  4. 4FROM (opcional)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A sintaxe SELECT Vara AS 1, NomeJuiz AS 'Juiz1', Email AS '[email protected]' INTO Tab_TRT18; está errada porque:

  • Utiliza nomes de colunas (‘Vara’, ‘NomeJuiz’, ‘Email’) que não existem em nenhuma tabela de origem.

  • O alias ‘1’ não é um identificador válido sem aspas duplas (números não podem ser identificadores nus no PostgreSQL).

  • A constante ‘Juiz1’ entre aspas simples após AS é interpretada como alias textual, mas não é a forma correta de definir um valor.

Alternativa B — ✅ Correta ⟵ GABARITO

A sintaxe SELECT 1 AS Vara, 'Juiz1' AS NomeJuiz, '[email protected]' AS Email INTO Tab_TRT18; está correta:

  • Usa constantes diretamente na lista de seleção.

  • Define corretamente os alias para nomear as colunas da nova tabela.

  • A cláusula INTO aparece após a lista de seleção e antes de qualquer FROM (opcional).

No PostgreSQL, esse comando cria a tabela tab_trt18 (nome ajustado para minúsculas, a menos que entre aspas duplas) com uma única linha contendo os valores fornecidos.

Alternativa C — ❌ Incorreta

SELECT INTO Tab_TRT18 (1 AS Vara, 'Juiz1' AS NomeJuiz, '[email protected]' AS Email); — A posição do INTO está errada: ele deve vir após a lista de seleção, e não antes. Além disso, os parênteses envolvendo a lista de colunas não fazem parte da sintaxe SELECT ... INTO.

Alternativa D — ❌ Incorreta

SELECT INTO Tab_TRT18 Vara AS 1, NomeJuiz AS 'Juiz1', Email AS '[email protected]'; — Novamente o INTO está deslocado para antes da lista de seleção. Também faz referência a colunas inexistentes e usa alias inválidos.

Alternativa E — ❌ Incorreta

SELECT VALUES (1 AS Vara, 'Juiz1' AS NomeJuiz, '[email protected]' AS Email) INTO Tab_TRT18; — A cláusula VALUES não é usada diretamente com SELECT nesse contexto. A sintaxe correta para inserir constantes sem tabela de origem seria VALUES (1, 'Juiz1', '[email protected]'), mas mesmo assim não se utilizaria SELECT VALUES INTO. O comando SELECT INTO exige uma lista de seleção, não VALUES.

Gabarito: letra B.

Link permanente: /questoes/fc070100