GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So exportieren Sie MySQL-Abfrageergebnisse in das CSV-Format unter Linux

Abfragen von einem MySQL Die Datenbank-Shell macht immer Spaß und ist technisch, bis Sie eine Datenbankausgabe benötigen, die irgendwo für einfachen Zugriff und Referenz gespeichert ist. insbesondere bei großen Datensätzen.

Der schnelle Datenzugriff erspart es Ihnen, sich jedes Mal über eine Terminal-Shell bei einem MySQL-Server anzumelden, um auf bestimmte mit MySQL-Abfragen verbundene Ausgaben zu verweisen. Die CSV (Comma Separated Value )-Datei ist ein idealer Kandidat, um diese Art von sich wiederholenden Benutzer-zu-Datenbank-Interaktionen aufzulösen.

Das CSV-Dateiformat eignet sich am besten zum Speichern von MySQL-Ausgaben aufgrund seiner herausragenden Attribute, darunter:

  • Es ist ein allgemein akzeptables kommasepariertes Datenspeicherformat.
  • Sein für Menschen lesbarer zusätzlicher Vorteil.
  • Sein einfacher Import in jede Anwendung aufgrund seiner reinen Textnatur.
  • Seine Anpassungsfähigkeit bei der Verwaltung und Organisation großer Datensätze.

Voraussetzungen

  • Die CSV-Datei, die Sie mit MySQL verknüpfen Abfrageausgaben sollten noch nicht vorhanden sein, da sie während der Ausführung einer gezielten MySQL-Abfrageausgabe automatisch generiert werden.
  • Haben Sie Root-Rechte sowohl auf der MySQL-Datenbank als auch auf dem Linux-System.

Beispieldatenbanktabelle mit mehreren Zeilenwerten erstellen

Damit dieses Tutorial ansprechend und besser verständlich ist, muss eine Datenbanktabelle mit einigen Werten vorhanden sein. Für dieses Tutorial können Sie sich entweder unter MySQL befinden oder MariaDB RDBMS. Seit MariaDB ist ein Open-Source-Fork von MySQL , diese beiden RDBMS verweisen auf dieselbe Implementierung ihrer Datenbank-Shell-Befehle.

Melden Sie sich bei Ihrem MySQL an Datenbank als Root-DB-Benutzer oder mit einem vorhandenen Datenbankbenutzer-Zugangsdaten.

$ sudo mysql -u root -p

Wir werden eine neue Datenbank erstellen, um unsere neue Datenbanktabelle zu hosten.

MariaDB[(none)]> show databases;
MariaDB[(none)]> create database lst_db;
MariaDB[(none)]> use lst_db;

Als nächstes erstellen Sie die Datenbank mit einigen Tabellen wie gezeigt.

MariaDB[(none)]>  CREATE TABLE lst_projects(
	project_id INT AUTO_INCREMENT, 
	project_name VARCHAR(100) NOT NULL,
	project_category VARCHAR(100) NOT NULL,
	project_manager VARCHAR(100) NOT NULL,
	start_date DATE,
	end_date DATE,
	PRIMARY KEY(project_id)
);

MySQL-Datenbanktabelle mit Daten füllen

Wir haben überprüft, ob unsere erstellte MySQL-Datenbanktabelle existiert. Es ist an der Zeit, es mit einigen Daten zu füllen.

MariaDB[(none)]> show tables;
MariaDB[(none)]> INSERT INTO 
	lst_projects(project_name, project_category, project_manager, start_date, end_date)
VALUES
	('Marketing','AI','David Guitar','2021-08-01','2021-12-31'),
            ('Copy writing','AI','Viola Guin','2022-01-01','2022-03-31'),
            ('Modeling','Robotics','Mary Atkins','2023-04-01','2023-07-31'),
            ('API','ML','Duncan Reeves','2024-02-01','2024-06-20'),
	('Sales','ML','Anthony Luigi','2025-05-15','2025-11-20');

Lassen Sie uns die Existenz unserer lst_projects bestätigen Tabellenwerte.

MariaDB[(none)]> SELECT * FROM lst_projects;

Exportieren von MySQL-Abfrageergebnissen in das CSV-Format

Das temporäre Verzeichnis “/var/tmp” gibt MySQL die erforderlichen Lese- und Schreibrechte. Wir werden es verwenden, um alle CSV-Dateien zu hosten, die automatisch aus MySQL-Abfragen generiert werden.

Mehrere Bedingungen bestimmen, wie wir ein MySQL-Abfrageergebnis in ein CSV-Dateiformat exportieren.

Alle MySQL-Abfragen in CSV exportieren

Um diese DB-Abfrage zu exportieren, „SELECT * FROM lst_projects; ” in eine CSV-Datei, würden wir es folgendermaßen implementieren:

MariaDB[(none)]> SELECT * FROM lst_projects
INTO OUTFILE '/var/tmp/get_all_queries.csv'
FIELDS ENCLOSED BY '"'
TERMINATED BY ';'
ESCAPED BY '"'
LINES TERMINATED BY '\r\n';

Lassen Sie uns versuchen, die generierte Datei abzurufen:

MySQL-Tabellen mit Kopfzeilen in CSV exportieren

Dieser Ansatz verleiht Ihrer generierten CSV-Datei ein professionelles Aussehen.

MariaDB[(none)]> (SELECT 'Project Name','Project Category','Project Manager','Start Date','End Date')
UNION 
(SELECT project_name,project_category, project_manager, start_date, end_date
FROM lst_projects
INTO OUTFILE '/var/tmp/included_column_headings.csv'
FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"'
LINES TERMINATED BY '\r\n');

Lassen Sie uns die generierte Datei erneut abrufen:

Wie bereits erwähnt, ist der CSV-Export der MySQL-Abfrage jetzt gut organisiert mit Spaltenüberschriften.

Umgang mit Nullwerten bei exportierten MySQL-Abfragen

Lassen Sie uns eine Spalte hinzufügen, die Null akzeptiert Werte in unsere Datenbanktabelle lst_projects .

MariaDB[(none)]> ALTER TABLE lst_projects ADD COLUMN project_status VARCHAR(15) AFTER end_date;

Wir werden keine Werte in diese neue Spalte einfügen, um sicherzustellen, dass sie leer bleibt. MySQL-Abfrageexporte mit Null Werte sind mit “"N” voraufgezeichnet in der generierten CSV-Datei. Um dieses Problem zu beheben, können wir das “"N” ersetzen Wert mit etwas Zuordenbarerem wie “N/A” .

MariaDB[(none)]> (SELECT 'Project Name','Start Date','End Date','Project Status')
UNION 
(SELECT 
    project_name, start_date, end_date, IFNULL(project_status, 'N/A')
FROM
    lst_projects INTO OUTFILE '/var/tmp/with_null.csv' 
    FIELDS ENCLOSED BY '"' 
    TERMINATED BY ';' 
    ESCAPED BY '"' LINES 
    TERMINATED BY '\r\n');

Lassen Sie uns die generierte CSV-Datei überprüfen.

MySQL-Tabellen mit Zeitstempel-Dateiname in CSV exportieren

Es erstellt eine genauere Verwaltungsroutine in Bezug darauf, wann Ihre CSV-Dateien generiert wurden.

MariaDB[(none)]> SET @TS = DATE_FORMAT(NOW(),'_%Y_%m_%d_%H_%i_%s');
SET @FOLDER = '/var/tmp/';
SET @PREFIX = 'lst_projects';
SET @EXT    = '.csv';
SET @CMD = CONCAT("SELECT * FROM lst_projects INTO OUTFILE '",@FOLDER,@PREFIX,@TS,@EXT,
"' FIELDS ENCLOSED BY '\"' TERMINATED BY ';' ESCAPED BY '\"'",
"  LINES TERMINATED BY '\r\n';");
PREPARE statement FROM @CMD;
EXECUTE statement;

Der generierte CSV-Dateiname sollte nun einen Zeitstempel haben.

Ausgabe Ihres MySQL Abfrageergebnisse in eine CSV-Datei ist eine effiziente Methode zur Verwaltung großer Datenmengen, da Sie sowohl Zeit als auch Geld sparen, insbesondere bei der Verwaltung von Daten für große Organisationen.


Linux
  1. So kopieren Sie eine MySQL-Datenbank

  2. So stoppen Sie einen Prozess in MySQL

  3. So erstellen Sie eine Datenbank in MySQL mit MySQL Workbench

  4. So importieren Sie die Exportdatenbank in MYSQL MariaDB

  5. wie man sich bei mysql anmeldet und die datenbank vom linux-terminal aus abfragt

So installieren Sie das Adminer MySQL-Datenbankverwaltungstool auf Alma Linux 8

So erhalten Sie eine Liste der MySQL-Benutzerkonten unter Linux

So konvertieren Sie xlsx in das CSV-Format unter Linux

So überprüfen Sie die MySQL-Benutzerrechte unter Linux

So benennen Sie den MySQL-Datenbanknamen in Linux um

Wie man eine Datenbank in MySQL erstellt