Analista de Sistemas - Desenvolvimento de Sistemas
Qual das alternativas abaixo apresenta um comando SQL capaz de copiar todas as colunas de uma tabela para outra tabela, considerando que os tipos de dados nas tabelas de origem e destino sejam correspondentes?
AINSERT tabela_1IN tabela_2;
BINSERT INTO tabela_2SELECT * FROM tabela_1;
CINSERT ALL tabela_2;ON tabela_1;
DINSERT * FROM tabela_1VALUES tabela_2;
EINSERT tabela_1JOIN tabela_2;
Revelar gabarito e comentário▾
GabaritoB — INSERT INTO tabela_2
SELECT * FROM tabela_1;
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 SQL para copiar dados entre tabelas
Gabarito: letra B. O comando INSERT INTO tabela_2 SELECT * FROM tabela_1; é a forma correta em SQL para copiar todas as linhas e colunas da tabela de origem (tabela_1) para a tabela de destino (tabela_2), desde que os tipos de dados sejam compatíveis. A estrutura INSERT INTO ... SELECT ... é padrão da linguagem SQL para inserir dados provenientes de uma consulta, podendo selecionar todas as colunas com *.
Alternativa A — ❌ Incorreta
A sintaxe INSERT tabela_1 IN tabela_2; não é válida em SQL. O comando correto requer a cláusula INTO após INSERT. Além disso, faltam as colunas e a consulta de origem.
Alternativa B — ✅ Correta ⟵ GABARITO
INSERT INTO tabela_2 SELECT * FROM tabela_1; está perfeitamente de acordo com o padrão SQL para inserir em uma tabela os registros retornados por uma consulta. O asterisco indica que todas as colunas da tabela origem serão copiadas, respeitando a correspondência de tipos.
Alternativa C — ❌ Incorreta
INSERT ALL tabela_2; ON tabela_1; não é a sintaxe correta para copiar dados simples. INSERT ALL é usado em bancos Oracle para inserir em múltiplas tabelas a partir de uma consulta, mas a estrutura apresentada está incorreta e não copiaria de uma tabela para outra.
Alternativa D — ❌ Incorreta
INSERT * FROM tabela_1 VALUES tabela_2; mescla elementos de forma equivocada. Não existe cláusula VALUES com * nem a estrutura correta. O correto seria INSERT INTO tabela_2 SELECT * FROM tabela_1;.
Alternativa E — ❌ Incorreta
INSERT tabela_1 JOIN tabela_2; não é um comando SQL válido. O JOIN é usado em consultas SELECT, mas não em comandos INSERT dessa forma. Faltam os elementos necessários (INTO, SELECT, etc.).
PEGA ESSA DICA!
Para fixar o comando de cópia de dados entre tabelas, lembre-se da estrutura: INSERT INTO destino (colunas) SELECT colunas FROM origem WHERE condição. Quando quiser copiar tudo, use * e omita a lista de colunas, mas garanta que as tabelas tenham a mesma ordem e tipos compatíveis.