João é um administrador de banco de dados MySQL e precisa criar uma rotina de carga de dados para ler os dados do arquivo "dados.csv" e inserir na tabela “tabela_dados”. Para tal, João deverá utilizar o comando:
- A)insert into tabela_dados values 'dados.csv';
Errada, porque `INSERT INTO` nao faz leitura direta de arquivo CSV com essa sintaxe; ele insere valores explicitamente informados na instrucao.
- B)insert all from 'dados.csv' into tabela_dados;
Errada, porque `insert all from` nao e um comando valido do MySQL para importar arquivo.
- C)import data 'dados.csv' to tabela_dados fields terminated by ',' lines terminated by '\n' ignore 1 lines (id, nome);
Errada, porque `import data` nao corresponde a sintaxe do MySQL para carga de arquivo texto.
- D)load to 'dados.csv' into table tabela_dados fields terminated by ',' lines terminated by '\n' ignore 1 lines (id, nome);
Errada, porque `load to` e `into table` nessa forma nao sao a sintaxe correta do MySQL para importar CSV.
- E)load data infile 'dados.csv' into table tabela_dados fields terminated by ',' lines terminated by '\n' ignore 1 lines (id, nome);
Certa, porque `LOAD DATA INFILE` e o comando apropriado do MySQL para carregar dados de um arquivo texto para uma tabela, permitindo definir delimitadores e ignorar a linha de cabecalho.
Gabarito: E
No MySQL, quando voce quer ler dados de um arquivo texto como CSV e jogar direto dentro de uma tabela, o comando classico e o `LOAD DATA INFILE`. Ele e feito exatamente para carga em massa, muito mais adequado do que ficar tentando fazer `INSERT` linha por linha. Pense nele como o "caminhao de mudanca" do banco: ele leva o arquivo inteiro para dentro da tabela de uma vez. A estrutura basica usa o nome do arquivo, a tabela de destino e, se necessario, a forma como os dados estao separados. Em CSV, e comum indicar `FIELDS TERMINATED BY ','` para dizer que as colunas sao separadas por virgula, e `LINES TERMINATED BY '\n'` para marcar o fim de cada linha. Quando o arquivo tem cabecalho, o comando pode ignorar a primeira linha com `IGNORE 1 LINES`. A alternativa E esta correta porque reproduz essa sintaxe de forma coerente com o MySQL: `load data infile 'dados.csv' into table tabela_dados fields terminated by ',' lines terminated by '\n' ignore 1 lines (id, nome);`. A ideia central esta certa: carregar dados de um arquivo externo para dentro da tabela, especificando separadores e ignorando o cabecalho. Em provas da FGV, isso costuma aparecer como teste de sintaxe do MySQL, e aqui o comando correto e justamente o de importacao em massa. As demais alternativas tentam imitar o comando, mas usam verbos ou ordem que nao pertencem ao MySQL. Na pratica, para esse tipo de questao, vale memorizar a expressao `LOAD DATA INFILE ... INTO TABLE ...`, porque ela e a cara do import de arquivo no MySQL.