B[4] provocará uma reorganização dos registros da tabela, pois o campo ID está fora de ordem.
CALTER TABLE Tab_InfJuv INCLUDE PRIMARY KEY (ID); fará com que o campo ID passe a ser a chave primária da tabela.
DINSERT INTO Tab_InfJuv VALUES (32, 'Centro2-Diadema', 'Carlos Santos Silva', 2); provocará um erro.
EALTER TABLE TabInfJuv ADD PRIMARY KEY (ID); dará erro porque o campo ID não é NOT NULL.
Revelar gabarito e comentário▾
GabaritoD — INSERT INTO Tab_InfJuv VALUES (32, 'Centro2-Diadema', 'Carlos Santos Silva', 2); provocará um erro.
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”.
Comandos SQL: UNIQUE e INSERT duplicado
Gabarito: letra D. O comando INSERT da alternativa D tenta inserir um valor para a coluna ID (32) que já existe na tabela, violando a restrição UNIQUE definida na criação. Isso provocará um erro de violação de constraint.
A tabela Tab_InfJuv foi criada com ID integer UNIQUE, ou seja, o campo ID deve ter valores únicos. Após os inserts [2] a [5], a tabela contém os IDs: 11, 14, 12 e 32. A tentativa de inserir novamente o valor 32 gera conflito com a unicidade.
erDiagram
Tab_InfJuv {
int ID UNIQUE
string nome
string endereco
int idade
}
Tab_InfJuv ||--o{ Tab_InfJuv : "ID único (UNIQUE)"
Alternativa A — ❌ Incorreta
O comando [1] não cria uma chave primária, apenas uma restrição UNIQUE. Para ser chave primária, deveria ter sido usado PRIMARY KEY (ID) na definição. A restrição UNIQUE permite valores nulos (dependendo do SGBD), enquanto PRIMARY KEY não.
Alternativa B — ❌ Incorreta
O comando INSERT não reorganiza registros. A ordem física dos dados em uma tabela não é garantida por padrão; cada INSERT apenas adiciona uma nova linha, sem reordenar as existentes.
Alternativa C — ❌ Incorreta
A sintaxe correta para adicionar chave primária em uma tabela existente é ALTER TABLE ... ADD PRIMARY KEY (coluna);. O uso de INCLUDE não é válido no padrão SQL para esse fim.
Alternativa D — ✅ Correta ⟵ GABARITO
Conforme explicado, o valor 32 já foi inserido no comando [5]. A restrição UNIQUE impede duplicatas, portanto o INSERT resultará em erro.
Alternativa E — ❌ Incorreta
O nome da tabela na alternativa está escrito TabInfJuv (sem o underscore), enquanto a tabela criada é Tab_InfJuv. Esse erro de nome já causaria falha no comando. Além disso, mesmo com o nome correto, a adição de PRIMARY KEY sobre ID exigiria que a coluna fosse NOT NULL, o que não foi definido. Contudo, o erro principal é a inexistência da tabela.
PEGA ESSA DICA!
Em SQL, UNIQUE garante valores distintos, mas permite nulos (dependendo do SGBD). Já PRIMARY KEY é UNIQUE + NOT NULL. Fique atento à grafia dos nomes de tabelas e à sintaxe dos comandos DDL.