Questão de Banco de Dados — PostgreSQL — FUNDATEC 2025
Banco de Dados›PostgreSQL
Código
qg484503
Banca
FUNDATEC
Órgão
UFRGS
Ano
2025
Nível
Médio
Cargo
Técnico em Tecnologia da Informação/Área: Sistemas de Informação
Em um ambiente corporativo, um analista precisa criar uma tabela no PostgreSQL para armazenar informações de funcionários, incluindo um identificador único, o nome completo e a data de admissão. Considerando boas práticas de modelagem e os tipos de dados disponíveis nesse SGBD, assinale a alternativa correta.
ACREATE TABLE funcionario (id SERIAL PRIMARY KEY,nome VARCHAR(255),data_admissao DATE);
BCREATE TABLE funcionario (id INT PRIMARY KEY,nome TEXT(255),data_admissao DATETIME);
CCREATE TABLE funcionario (id AUTO_INCREMENT PRIMARY KEY,nome NVARCHAR(255),data_admissao DATETIME2);
DCREATE TABLE funcionario (id BIGINT AUTO PRIMARY,nome CHAR,data_admissao SMALLDATETIME);
ECREATE TABLE funcionario (id IDENTITY PRIMARY,nome VARCHAR(255),data_admissao TIMESTAMP WITHOUT TIME ZONE);
Revelar gabarito e comentário▾
GabaritoA — CREATE TABLE funcionario (
id SERIAL PRIMARY KEY,
nome VARCHAR(255),
data_admissao DATE
);
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”.
PostgreSQL: Criação de Tabelas
Gabarito: letra A. A alternativa A utiliza corretamente o tipo SERIAL para auto-incremento, VARCHAR(255) para o nome e DATE para a data de admissão, todos nativos do PostgreSQL. As demais alternativas misturam sintaxes de outros SGBDs ou usam tipos inexistentes no PostgreSQL.
A banca testa o conhecimento dos tipos de dados e recursos específicos do PostgreSQL. Em particular, o auto-incremento em PostgreSQL é feito com SERIAL (ou BIGSERIAL), e não com AUTO_INCREMENT (MySQL) ou IDENTITY (SQL Server). O tipo para data sem hora é DATE; para data com hora usa-se TIMESTAMP. Não existem DATETIME, DATETIME2, SMALLDATETIME ou TEXT(255) no PostgreSQL.
Alternativa A — ✅ Correta ⟵ GABARITO
Utiliza SERIAL (que cria uma sequência automática) para a chave primária, VARCHAR(255) para o nome (tamanho variável com limite) e DATE para a data de admissão. Tudo compatível com PostgreSQL.
Alternativa B — ❌ Incorreta
INT não é auto-incremento; deveria ser SERIAL.
TEXT(255) é inválido: TEXT não aceita tamanho em PostgreSQL; use VARCHAR(255).
DATETIME não existe; use TIMESTAMP ou DATE.
Alternativa C — ❌ Incorreta
AUTO_INCREMENT é do MySQL, não do PostgreSQL.
NVARCHAR é do SQL Server; no PostgreSQL use VARCHAR com codificação adequada.
DATETIME2 é do SQL Server; inexistente no PostgreSQL.
Alternativa D — ❌ Incorreta
BIGINT AUTO PRIMARY é sintaxe inválida: AUTO não é palavra-chave; o correto seria BIGSERIAL.
CHAR sem tamanho equivale a CHAR(1), inadequado para nome completo.
SMALLDATETIME não existe; use TIMESTAMP com precisão menor, se necessário.
Alternativa E — ❌ Incorreta
IDENTITY PRIMARY é do SQL Server; no PostgreSQL use SERIAL ou GENERATED AS IDENTITY (a partir da versão 10), mas a sintaxe IDENTITY sozinha não é reconhecida.
TIMESTAMP WITHOUT TIME ZONE é válido, mas o erro na chave primária invalida a alternativa.
NÃO CAIA NESSA!
A banca mistura sintaxes de MySQL, SQL Server e PostgreSQL. Decore os equivalentes: SERIAL (PostgreSQL) = AUTO_INCREMENT (MySQL) = IDENTITY (SQL Server).