Pular para o conteúdo principal

Questão de Banco de Dados — MySQL — VUNESP 2024

Banco de DadosMySQL
Código
vu212096
Banca
VUNESP
Órgão
Pref Aparecida (SP)
Ano
2024
Cargo
Tec TI ( )
Considerando o sistema gerenciador de bancos de dados MYSQL 8.0, deseja-se criar uma tabela denominada Branca, com os atributos A, do tipo caractere, com 10 posições, e B, com enumeração dos valores pequeno, médio e grande. Dessa forma, o comando do MySQL para a criação dessa tabela é:
  1. ACREATE TABLE Branca ( A CHAR (10), B (‘pequeno’, ‘médio’, ‘grande’));
  2. BCREATE TABLE Branca ( A CHAR (10), B ENUM (‘pequeno’, ‘médio’, grande’));
  3. CCREATE TABLE Branca ( A CHAR (10) B FROM ((‘pequeno’, ‘médio’, ‘grande’));
  4. DCREATE TABLE Branca ( A CHAR (10), B INSIDE (‘pequeno’, ‘médio’, ‘grande’));
  5. ECREATE TABLE Branca ( A CHAR (10), B INTO (‘pequeno’, ‘médio’, ‘grande’));
Revelar gabarito e comentário

GabaritoB — CREATE TABLE Branca ( A CHAR (10), B ENUM (‘pequeno’, ‘médio’, grande’));

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

MySQL: criação de tabela com tipo ENUM

Gabarito: letra B. No MySQL 8.0, o comando correto para criar a tabela Branca com o atributo A do tipo CHAR(10) e o atributo B como enumeração dos valores 'pequeno', 'médio' e 'grande' é CREATE TABLE Branca (A CHAR(10), B ENUM('pequeno', 'médio', 'grande')). A sintaxe do tipo ENUM exige a palavra-chave ENUM seguida da lista de valores permitidos entre parênteses e aspas simples, separados por vírgula.

O comando CREATE TABLE é o comando DDL (Data Definition Language) responsável por criar tabelas em um banco de dados relacional. A sintaxe básica é CREATE TABLE nome_da_tabela (coluna1 tipo1, coluna2 tipo2, ...). Cada coluna é definida por um nome e um tipo de dado, podendo ter restrições adicionais. No MySQL, o tipo ENUM é um tipo de dado especial que permite definir uma lista de valores válidos para uma coluna. Ao declarar uma coluna como ENUM('valor1', 'valor2', ...), o banco de dados garante que apenas esses valores poderão ser armazenados nela, além do valor NULL (se a coluna for anulável) e do valor vazio '' em alguns contextos.

A sintaxe correta do ENUM no MySQL é:

ENUM('valor1', 'valor2', 'valor3', ...)

Os valores devem estar entre aspas simples e separados por vírgula. A palavra-chave ENUM é obrigatória e não pode ser substituída por outras palavras como FROM, INSIDE, INTO ou simplesmente a lista de valores sem o tipo. Além disso, a definição de cada coluna deve ser separada por vírgula, e a lista de valores do ENUM deve estar entre parênteses.

Para entender melhor, considere um exemplo prático: imagine que você queira criar uma tabela Produto com uma coluna Tamanho que só aceite os valores 'P', 'M' e 'G'. O comando seria:

CREATE TABLE Produto (
    Codigo INT,
    Tamanho ENUM('P', 'M', 'G')
);

Nesse caso, qualquer tentativa de inserir um valor diferente de 'P', 'M' ou 'G' na coluna Tamanho resultaria em erro (ou em um valor vazio, dependendo do modo SQL). O ENUM é útil para campos com um conjunto fixo e pequeno de valores possíveis, como status, categorias ou tamanhos.

A pegadinha desta questão está justamente na sintaxe do ENUM: a banca troca a palavra-chave ENUM por outras palavras que não existem no MySQL (FROM, INSIDE, INTO) ou omite a palavra-chave, apresentando apenas a lista de valores. O candidato que não conhece a sintaxe exata pode se confundir e marcar uma alternativa incorreta. Além disso, é importante lembrar que a definição de cada coluna deve ser separada por vírgula, e a lista de valores do ENUM deve estar entre parênteses e com aspas simples em cada valor.

Guarde a estrutura exata do ENUMENUM('valor1', 'valor2', ...) — e a necessidade de separar as colunas por vírgula: é exatamente nesses dois pontos que as alternativas se dividem.

1Sintaxe básica
CREATE TABLE nome (coluna tipo, ...)
Colunas separadas por vírgula
2Tipo ENUM
ENUM('valor1', 'valor2', ...)
Valores entre aspas simples
Palavra-chave obrigatória
3Erros comuns
Sem a palavra ENUM
FROM / INSIDE / INTO
Falta de vírgula entre colunas
CREATE TABLE
LEVELsoulevel.com.br
CREATE TABLE: Sintaxe básica (CREATE TABLE nome (coluna tipo, ...), Colunas separadas por vírgula); Tipo ENUM (ENUM('valor1', 'valor2', ...), Valores entre aspas simples, Palavra-chave obrigatória); Erros comuns (Sem a palavra ENUM, FROM / INSIDE / INTO, Falta de vírgula entre colunas)

Alternativa A — ❌ Incorreta

Esta alternativa apresenta a lista de valores sem a palavra-chave ENUM: B ('pequeno', 'médio', 'grande'). No MySQL, para criar uma coluna com enumeração, é obrigatório usar a palavra-chave ENUM antes da lista de valores. Sem ela, o comando é inválido, pois o MySQL não reconhece essa sintaxe como uma definição de coluna.

Alternativa B — ✅ Correta ⟵ GABARITO

Esta alternativa apresenta a sintaxe correta: B ENUM ('pequeno', 'médio', 'grande'). A palavra-chave ENUM é usada, os valores estão entre aspas simples e separados por vírgula, e a definição da coluna A CHAR(10) está correta, com as colunas separadas por vírgula. Este é o comando válido no MySQL 8.0 para criar a tabela Branca conforme solicitado.

Alternativa C — ❌ Incorreta

Esta alternativa usa a palavra-chave FROM, que não é um tipo de dado no MySQL. Além disso, há um erro de sintaxe: falta a vírgula entre a definição da coluna A e a coluna B, e a lista de valores está entre parênteses duplos, o que também é inválido. O comando FROM é usado em consultas SELECT, não na definição de colunas.

Alternativa D — ❌ Incorreta

Esta alternativa usa a palavra-chave INSIDE, que não existe no MySQL para definição de tipos de dados. A sintaxe correta para enumeração é ENUM, não INSIDE. Além disso, a lista de valores está entre parênteses, mas sem a palavra-chave correta, o comando é inválido.

Alternativa E — ❌ Incorreta

Esta alternativa usa a palavra-chave INTO, que também não é um tipo de dado no MySQL. A palavra-chave INTO é usada em comandos INSERT INTO, não na definição de colunas. A sintaxe correta para enumeração é ENUM, e sem ela o comando é inválido.

Gabarito: letra B

Link permanente: /questoes/vu212096