Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — VUNESP 2025

Banco de DadosConsultas e Comandos em SQL
Código
vu222897
Banca
VUNESP
Órgão
EsFCEx
Ano
2025
Cargo
CFO/QC ( )
Considere que se deseja criar, em um banco de dados relacional, uma tabela denominada Teste, com os seguintes campos: Descritivo, do tipo caracter, com tamanho 20, e Tamanho, do tipo inteiro, sendo ainda Descritivo a chave primária da tabela. O comando SQL para criar essa tabela é:
  1. ACREATE UNIQUE TABLE Teste (Descritivo AS CHAR (20) AND PRIMARY KEY, Tamanho AS INT);
  2. BCREATE TABLE Teste (Descritivo CHAR (20) PRIMARY KEY, Tamanho INT);
  3. CCREATE DIRECT TABLE Teste (Descritivo CHAR (20) PRIMARY KEY, Tamanho INT);
  4. DCREATE MAIN TABLE Teste (Descritivo, Tamanho: CHAR (20), INT, Descritivo AS PRIMARY KEY);
  5. ECREATE TABLE Teste HAVING (Descritivo AND Tamanho WITH CHAR (20), INT, PRIMARY KEY is Descritivo);
Revelar gabarito e comentário

GabaritoB — CREATE TABLE Teste (Descritivo CHAR (20) PRIMARY KEY, Tamanho INT);

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

Comando CREATE TABLE no SQL

Gabarito: letra B. O comando CREATE TABLE é a instrução da sublinguagem DDL (Data Definition Language) do SQL responsável por criar uma nova tabela em um banco de dados relacional. A sintaxe correta exige a palavra-chave CREATE TABLE, seguida do nome da tabela e, entre parênteses, a definição das colunas com seus respectivos tipos de dados e restrições (como PRIMARY KEY). A alternativa B é a única que apresenta exatamente essa estrutura: CREATE TABLE Teste (Descritivo CHAR (20) PRIMARY KEY, Tamanho INT);.

O comando CREATE TABLE é um dos comandos fundamentais da DDL, a sublinguagem do SQL que lida com a definição da estrutura do banco de dados. Enquanto a DML (Data Manipulation Language) manipula os dados dentro das tabelas (com INSERT, UPDATE, DELETE), a DDL define e modifica os objetos do banco, como tabelas, índices e bancos de dados. A sintaxe típica do CREATE TABLE é:

CREATE TABLE nome_da_tabela (
    nome_da_coluna1 tipo_de_dado [restrições],
    nome_da_coluna2 tipo_de_dado [restrições],
    ...
    [restrições de tabela]
);

No caso da questão, a tabela Teste deve ter duas colunas: Descritivo, do tipo CHAR(20) (caractere com tamanho fixo de 20), e Tamanho, do tipo INT (inteiro). Além disso, Descritivo deve ser a chave primária, o que pode ser feito diretamente na definição da coluna com a palavra-chave PRIMARY KEY.

A chave primária é um conceito central do modelo relacional: ela identifica de forma única cada registro (linha) da tabela, garantindo que não haja duplicatas e que cada linha possa ser acessada de forma inequívoca. A definição de uma chave primária pode ser feita de duas maneiras: inline, junto à definição da coluna (como na alternativa B), ou como uma restrição de tabela separada, usando CONSTRAINT ... PRIMARY KEY (coluna). Ambas são válidas, mas a forma inline é mais concisa e comum para chaves primárias de uma única coluna.

A banca explora aqui a confusão entre os comandos DDL e outras palavras-chave que não fazem parte da sintaxe do SQL. O candidato que não domina a sintaxe básica do CREATE TABLE pode se perder em alternativas que usam palavras como UNIQUE, DIRECT, MAIN ou HAVING, que não têm função na criação de tabelas. A pegadinha é justamente reconhecer a estrutura canônica do comando, que é sempre CREATE TABLE nome (colunas e restrições).

Guarde a estrutura fundamental do CREATE TABLECREATE TABLE + nome + parênteses com colunas e tipos — e a forma de declarar a chave primária. É exatamente esse critério que separa a alternativa correta das demais.

Alternativa A — ❌ Incorreta

A alternativa A usa CREATE UNIQUE TABLE, que não é uma sintaxe válida. O comando correto é CREATE TABLE; a palavra UNIQUE é usada como restrição de coluna (para garantir valores únicos), não como parte do comando de criação. Além disso, a sintaxe Descritivo AS CHAR (20) AND PRIMARY KEY é inválida: o tipo de dado deve vir logo após o nome da coluna, e a restrição PRIMARY KEY não é conectada com AND.

Alternativa B — ✅ Correta ⟵ GABARITO

A alternativa B apresenta a sintaxe correta: CREATE TABLE Teste (Descritivo CHAR (20) PRIMARY KEY, Tamanho INT);. O comando CREATE TABLE é seguido do nome da tabela (Teste), e entre parênteses estão as definições das colunas: Descritivo com tipo CHAR(20) e a restrição PRIMARY KEY, e Tamanho com tipo INT. A chave primária é declarada inline, diretamente na coluna, o que é perfeitamente válido.

Alternativa C — ❌ Incorreta

A alternativa C usa CREATE DIRECT TABLE, que não é uma sintaxe válida do SQL. A palavra DIRECT não faz parte do comando de criação de tabelas. O correto é apenas CREATE TABLE.

Alternativa D — ❌ Incorreta

A alternativa D apresenta uma sintaxe completamente inválida: CREATE MAIN TABLE Teste (Descritivo, Tamanho: CHAR (20), INT, Descritivo AS PRIMARY KEY);. A palavra MAIN não é usada no comando CREATE TABLE, e a forma de definir as colunas está errada: os tipos de dados devem vir após cada nome de coluna, não agrupados no final, e a chave primária não é declarada com AS PRIMARY KEY.

Alternativa E — ❌ Incorreta

A alternativa E usa CREATE TABLE Teste HAVING (...), o que é inválido. A cláusula HAVING é usada em consultas SELECT para filtrar grupos, não na criação de tabelas. Além disso, a definição das colunas está incorreta: Descritivo AND Tamanho WITH CHAR (20), INT não é uma forma válida de declarar colunas e tipos.

Gabarito: letra B

Link permanente: /questoes/vu222897