Questão de Banco de Dados — Banco de Dados Relacionais — FURB 2025
Banco de Dados›Banco de Dados Relacionais
Código
qg497158
Banca
FURB
Órgão
Prefeitura de Florianópolis - SC
Ano
2025
Nível
Superior
Cargo
Auditor Fiscal de Tributos Municipais - Tecnologia da Informação - 2º Dia
Para alterar o tipo de dados da coluna nome na tabela clientes de VARCHAR(50) para VARCHAR(100), garantindo que tentativas de inserir valores maiores que 100 caracteres resultem em erro, qual deve ser a instrução DDL? Assinale a alternativa correta:
AALTER TABLE clientes ALTER COLUMN nome TYPE VARCHAR(100) ENFORCE LENGTH.
BALTER TABLE clientes CHANGE COLUMN nome VARCHAR(100) WITH OVERFLOW ERROR.
CALTER TABLE clientes ALTER COLUMN nome VARCHAR(100) TRUNCATE.
DALTER TABLE clientes ALTER COLUMN nome MODIFY VARCHAR(100) WITH ERROR RAISE.
EALTER TABLE clientes ALTER COLUMN nome SET DATA TYPE VARCHAR(100).
Revelar gabarito e comentário▾
GabaritoE — ALTER TABLE clientes ALTER COLUMN nome SET DATA TYPE VARCHAR(100).
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”.
ALTER TABLE - Modificação de colunas (DDL)
Gabarito: letra E. A instrução DDL padrão para alterar o tipo de uma coluna é ALTER TABLE ... ALTER COLUMN ... SET DATA TYPE ... (ou ALTER COLUMN ... tipo). Essa sintaxe altera a definição da coluna e, ao definir VARCHAR(100), o banco de dados automaticamente rejeitará strings com mais de 100 caracteres, pois a restrição de tamanho é inerente ao tipo. As demais alternativas utilizam cláusulas não padronizadas (ENFORCE LENGTH, WITH OVERFLOW ERROR, TRUNCATE, WITH ERROR RAISE) que não existem no SQL padrão.
ALTER TABLE (DDL): Sintaxe padrão SQL (ALTER COLUMN ... SET DATA TYPE, ALTER COLUMN ... tipo); Sintaxes proprietárias (MySQL: CHANGE COLUMN, Oracle: MODIFY); Restrição de tamanho (Intrínseca ao VARCHAR, NÃO precisa de cláusulas extras)
Alternativa A — ❌ Incorreta
A cláusula ENFORCE LENGTH não faz parte do SQL padrão. A sintaxe correta para alterar o tipo de dados é apenas ALTER COLUMN ... SET DATA TYPE (ou ALTER COLUMN ... tipo). Não há necessidade de palavras adicionais.
Alternativa B — ❌ Incorreta
CHANGE COLUMN é sintaxe do MySQL (não padrão) e a cláusula WITH OVERFLOW ERROR não existe. Além disso, a instrução muda a coluna mas a forma correta para SQL Server ou padrão é ALTER COLUMN.
Alternativa C — ❌ Incorreta
TRUNCATE é um comando DDL para remover todos os dados da tabela, não para modificar colunas. A sintaxe ALTER COLUMN ... TRUNCATE não é válida.
Alternativa D — ❌ Incorreta
MODIFY é usado em Oracle/MySQL, mas a cláusula WITH ERROR RAISE não existe. A sintaxe correta seria MODIFY (nome VARCHAR(100)) dentro de ALTER TABLE, mas a forma apresentada está incorreta. Além disso, a opção não especifica SET DATA TYPE e inclui termos inexistentes.
Alternativa E — ✅ Correta ⟵ GABARITO
ALTER TABLE clientes ALTER COLUMN nome SET DATA TYPE VARCHAR(100); é a sintaxe padrão do SQL (conforme SQL:2003 e seguido por vários SGBDs como PostgreSQL, SQL Server, etc.). Essa instrução altera o tipo da coluna para VARCHAR(100) e, por definição, o banco de dados passará a rejeitar valores com mais de 100 caracteres, gerando erro. Não são necessárias cláusulas adicionais como "ENFORCE LENGTH", pois a restrição de comprimento é intrínseca ao tipo VARCHAR.
PEGA ESSA DICA!
Em questões de SQL, memorize a sintaxe padrão de ALTER TABLE: ALTER COLUMN ... SET DATA TYPE ou ALTER COLUMN ... tipo. Fique atento a cláusulas inventadas como "ENFORCE LENGTH", "WITH ERROR RAISE", etc. — elas não existem no SQL e são distratores comuns.