SQLite
 sql >> Base de données >  >> RDS >> SQLite

SQLite - Exporter des données vers un fichier CSV

Vous pouvez exporter des données d'une base de données SQLite vers un fichier CSV. Vous pouvez exporter un tableau entier ou les résultats d'une requête.

Pour exporter des données vers un fichier CSV, utilisez le .once commande, suivi du chemin/du nom du fichier dans lequel vous souhaitez que le fichier soit écrit.

Tableau vers fichier CSV

Cet exemple exporte le contenu des Artistes table dans un fichier CSV :

.header on
.mode csv
.once /Users/quackit/sqlite/dumps/artists.csv
SELECT * FROM Artists;

Explication du code :

  1. Tout d'abord, nous activons les en-têtes. Cela entraînera l'utilisation des noms de colonne comme en-têtes dans le fichier CSV. Ceci est facultatif. Si vous désactivez les en-têtes, le fichier CSV n'en contiendra tout simplement pas.
  2. Ensuite, nous activons le mode csv ( .mode csv ).
  3. La ligne suivante (commençant par .once ) entraîne l'écriture de la sortie dans le fichier CSV.
  4. La dernière chose que nous écrivons est la requête proprement dite (dans ce cas, un SELECT déclaration sur la table.).

Après avoir exécuté ce code, un fichier CSV est créé avec le contenu suivant :

ArtistId,ArtistName,Bio
1,"Joe Satriani",
2,"Steve Vai",
3,"The Tea Party",
4,Noiseworks,
5,"Wayne Jury",
6,"Mr Percival",
7,"Iron Maiden",
8,Atmasphere,"Australian jazz band centred around polyrhythms."
9,"Ian Moss",
10,Magnum,
13,Primus,
14,"Pat Metheny",
15,"Frank Gambale",
16,"Mothers of Invention",

Joindre des requêtes

Vous n'êtes pas limité à la sortie d'une seule table. Vous pouvez générer n'importe quelle requête. Voici une requête qui sélectionne les données de deux tables et génère le résultat dans un fichier CSV.

.header on
.mode csv
.once /Users/quackit/sqlite/dumps/catalog.csv
SELECT AlbumId, AlbumName, ArtistName  
FROM Artists AS a 
  INNER JOIN Albums AS b 
  ON a.ArtistId = b.ArtistId
ORDER BY ArtistName;

Cela se traduit par un fichier CSV avec le contenu suivant :

AlbumId,AlbumName,ArtistName
1,Killers,"Iron Maiden"
2,Powerslave,"Iron Maiden"
12,"Somewhere in Time","Iron Maiden"
3,"Surfing with the Alien","Joe Satriani"
10,"Flying in a Blue Dream","Joe Satriani"
11,"Black Swans and Wormhole Wizards","Joe Satriani"
6,"Out of the Loop","Mr Percival"
7,"Suck on This",Primus
8,"Pork Soda",Primus
9,"Sailing the Seas of Cheese",Primus

Ouvrir le fichier CSV automatiquement

Vous pouvez utiliser le .system pour ouvrir automatiquement le fichier dans le tableur de votre ordinateur, tel qu'Excel, OpenOffice, LibreOffice, etc.

Placez le .system code sur la dernière ligne (après le SELECT déclaration). Comme ceci :

.header on
.mode csv
.once /Users/quackit/sqlite/dumps/catalog.csv
SELECT AlbumId, AlbumName, ArtistName  
FROM Artists AS a 
  INNER JOIN Albums AS b 
  ON a.ArtistId = b.ArtistId
ORDER BY ArtistName;
.system open /Users/quackit/sqlite/dumps/catalog.csv

Le code exact que vous utiliserez dépendra de votre système d'exploitation.

  • Sous Windows, utilisez .system suivi du nom du fichier.
  • Sur Mac, utilisez .system open suivi du nom du fichier.
  • Sur les systèmes Linux et Unix, utilisez .system suivi du nom du programme pour ouvrir le fichier, suivi du nom du fichier. Par exemple, .system libreoffice /dumps/file.csv

Vider une table ou une base de données

Vous pouvez également vider une table ou même toute la base de données dans un fichier texte ASCII en utilisant le .dump commande.