logo

Tabela de exportação MySQL para CSV

O MySQL possui um recurso para exportar uma tabela para o arquivo CSV. Um formato de arquivo CSV é um valor separado por vírgula que usamos para trocar dados entre vários aplicativos, como Microsoft Excel, Goole Docs e Open Office. É útil ter os dados MySQL em formato de arquivo CSV que nos permite analisá-los e formatá-los da maneira que desejarmos. É um arquivo de texto simples que nos ajuda a exportar dados com muita facilidade.

MySQL fornece uma maneira fácil de exportar qualquer tabela para arquivos CSV residentes no servidor de banco de dados. Devemos garantir o seguinte antes de exportar dados MySQL:

  • O processo do servidor MySQL tem acesso de leitura/gravação à pasta especificada (destino), que contém o arquivo CSV.
  • O arquivo CSV especificado não deve existir no sistema.

Para exportar a tabela para um arquivo CSV, usaremos o SELECIONE EM....OUTFILE declaração. Esta afirmação é um elogio ao CARREGAR DADOS comando, que é usado para gravar dados de uma tabela e depois exportá-los para um formato de arquivo especificado no host do servidor. É para garantir que tenhamos privilégios de arquivo para usar esta sintaxe.

 SELECT column_lists INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/filename.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ''' LINES TERMINATED BY '
'; 

Também podemos usar esta sintaxe com uma instrução de valores para exportar dados diretamente para um arquivo. A seguinte declaração explica isso mais claramente:

 SELECT * FROM (VALUES ROW(1,2,3,4),ROW(5,6),ROW(7,8)) AS table1 INTO OUTFILE '/tmp/selected_values.txt'; 

Se quisermos exportar todas as colunas da tabela , usaremos a sintaxe abaixo. Com esta instrução, a ordem e o número de linhas serão controlados pelo ORDENAR POR e LIMITE cláusula.

como verificar o tamanho da tela do monitor
 TABLE table_name ORDER BY lname LIMIT 1000 INTO OUTFILE '/path/filename.txt' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY '
';; 

De cima,

LINHAS TERMINADAS POR ',' : é usado para indicar as linhas de linhas em um arquivo que são finalizadas por um operador de vírgula. Cada linha contém os dados de cada coluna no arquivo.

CAMPOS INCLUÍDOS POR ''' : É usado para especificar o campo do arquivo entre aspas duplas. Impede os valores que contêm separadores de vírgula. Se os valores contidos entre aspas duplas estiverem entre aspas, ele não reconhece a vírgula como separador.

Local de armazenamento do arquivo exportado

O local de armazenamento de cada arquivo exportado no MySQL é armazenado na variável padrão arquivo_seguro_priv . Podemos executar o comando abaixo para obter o caminho padrão de um arquivo exportado.

 mysql> SHOW VARIABLES LIKE 'secure_file_priv'; 

Após a execução, dará o resultado da seguinte forma onde podemos ver este caminho: C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/ como o local padrão do arquivo. Este caminho será utilizado no momento da execução de um comando de exportação.

string encontrar c++
Tabela de exportação MySQL para CSV

Se quisermos alterar o local de exportação padrão do arquivo CSV especificado no arquivo_seguro_priv variável, precisamos editar o meu.ini arquivo de configuração. Na plataforma Windows, este arquivo está localizado neste caminho: C:ProgramDataMySQLMySQL Server X.Y .

Se quisermos exportar dados MySQL, primeiro precisamos criar um base de dados com pelo menos um mesa . Usaremos esta tabela como exemplo.

Podemos criar um banco de dados e tabela executando o código abaixo nos editores que estamos usando:

 CREATE DATABASE testdb; USE testdb; CREATE TABLE employee_detail ( ID int NOT NULL AUTO_INCREMENT, Name varchar(45) DEFAULT NULL, Email varchar(45) DEFAULT NULL, Phone varchar(15) DEFAULT NULL, City varchar(25) DEFAULT NULL, PRIMARY KEY (ID), UNIQUE KEY unique_email (Email), UNIQUE KEY index_name_phone (Name,Phone) ) INSERT INTO employee_detail ( Id, Name, Email, Phone, City) VALUES (1, 'Peter', '[email protected]', '49562959223', 'Texas'), (2, 'Suzi', '[email protected]', '70679834522', 'California'), (3, 'Joseph', '[email protected]', '09896765374', 'Alaska'), (4, 'Alex', '[email protected]', '97335737548', 'Los Angeles'), (5, 'Mark', '[email protected]', '78765645643', 'Washington'), (6, 'Stephen', '[email protected]', '986345793248', 'New York'); 

Se executarmos o SELECIONAR declaração, veremos a seguinte saída:

Tabela de exportação MySQL para CSV

Exporte dados MySQL em formato CSV usando a instrução SELECT INTO ... OUTFILE

Para exportar os dados da tabela para um arquivo CSV, precisamos executar a consulta da seguinte forma:

 SELECT Id, Name, Email, Phone, City FROM employee_detail INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/employee_backup.csv' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY '
'; 

Obteremos a seguinte saída, onde podemos ver que seis linhas foram afetadas. Isso ocorre porque a tabela especificada contém apenas seis linhas.

Tabela de exportação MySQL para CSV

Se executarmos a mesma instrução novamente, o MySQL produzirá uma mensagem de erro que pode ser vista na saída abaixo:

Tabela de exportação MySQL para CSV

A mensagem de erro informa que o nome do arquivo especificado já existe no local especificado. Assim, se exportarmos o novo arquivo CSV com o mesmo nome e localização, ele não poderá ser criado. Podemos resolver isso excluindo o arquivo existente no local especificado ou renomeando o nome do arquivo para criá-lo no mesmo local.

Podemos verificar se o arquivo CSV foi criado no local especificado ou não navegando até um determinado caminho da seguinte forma:

Tabela de exportação MySQL para CSV

Quando abrirmos este arquivo, ele se parecerá com a imagem abaixo:

Tabela de exportação MySQL para CSV

Na imagem podemos ver que os campos numéricos estão entre aspas. Podemos mudar esse estilo adicionando Cláusula OPTIONALLY antes de ENCLOSED BY :

igualdade de strings em java
 SELECT Id, Name, Email, Phone, City FROM employee_detail INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/employee_backup.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ''' LINES TERMINATED BY '
'; 

Exportando dados com cabeçalho de coluna

Às vezes, queremos exportar dados junto com títulos de colunas que tornem o arquivo conveniente. O arquivo exportado será mais compreensível se a primeira linha do arquivo CSV contiver os títulos das colunas. Podemos adicionar os títulos das colunas usando o UNIÃO TODOS declaração da seguinte forma:

java len da matriz
 SELECT 'Id', 'Name', 'Email', 'Phone', 'City' UNION ALL SELECT Id, Name, Email, Phone, City FROM employee_detail INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/employee_backup.csv' FIELDS TERMINATED BY ';' ENCLOSED BY ''' ESCAPED BY ''' LINES TERMINATED BY '
'; 

Nesta consulta, podemos ver que adicionamos cabeçalho para cada nome de coluna. Podemos verificar a saída navegando até o URL especificado, onde a primeira linha contém o título de cada coluna:

Tabela de exportação MySQL para CSV

Exportar tabela MySQL em formato CSV

MySQL OUTFILE também nos permite exportar a tabela sem especificar nenhum nome de coluna. Podemos usar a sintaxe abaixo para exportar a tabela em formato de arquivo CSV:

 TABLE employee_detail ORDER BY City LIMIT 1000 INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/employee_backup.csv' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY '
'; 

Se executarmos a instrução acima, nossa ferramenta de linha de comando produzirá o seguinte resultado. Isso significa que a tabela especificada contém seis linhas, que são exportadas em funcionário_backup.csv arquivo.

Tabela de exportação MySQL para CSV

Tratamento de valores nulos

Às vezes, os campos no conjunto de resultados têm valores NULL, então o arquivo de destino (tipo de arquivo exportado) conterá N em vez de NULL. Podemos corrigir esse problema substituindo o valor NULL por 'não aplicável (N/A)' usando o IFNULO função. A declaração abaixo explica isso mais claramente:

 SELECT Name, Email, Phone, IFNULL(Phone, 'N/A') FROM employee_detail INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/employee_backup.csv' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY '
'; 

Exportar tabela para formato CSV usando MySQL Workbench

Se não quisermos acessar o servidor de banco de dados para exportar o arquivo CSV, o MySQL oferece outra forma, ou seja, usando MySQL Workbench. Workbench é uma ferramenta GUI para trabalhar com banco de dados MySQL sem usar uma ferramenta de linha de comando. Ele nos permite exportar o conjunto de resultados de uma instrução para um formato CSV em nosso sistema local. Para fazer isso, precisamos seguir as etapas abaixo:

  • Execute a instrução/consulta e obtenha seu conjunto de resultados.
  • Em seguida, no painel de resultados, clique em 'exportar conjunto de registros para um arquivo externo' opção. O conjunto de registros é usado para o conjunto de resultados.
  • Finalmente, uma nova caixa de diálogo será exibida. Aqui, precisamos fornecer um nome de arquivo e seu formato. Após preencher os dados, clique no botão Salvar botão. A imagem a seguir explica isso mais claramente:
Tabela de exportação MySQL para CSV

Agora podemos verificar o resultado navegando até o caminho especificado.