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

SQLite - Importer des données à partir d'un fichier CSV

Vous pouvez importer des données d'un fichier CSV dans une base de données SQLite.

Pour importer des données dans SQLite, utilisez le .import commande. Cette commande accepte un nom de fichier et un nom de table.

Le nom du fichier est le fichier à partir duquel les données sont lues, le nom de la table est la table dans laquelle les données seront importées. Si le tableau n'existe pas, il sera créé automatiquement, sur la base des données du fichier CSV.

CSV vers nouveau tableau

Cet exemple importe le contenu d'un fichier CSV dans une table qui n'existe pas actuellement. Par conséquent, un nouveau tableau sera créé sur la base des données du fichier CSV.

Nous utiliserons le même fichier CSV que nous avons exporté précédemment.

.mode csv
.import /Users/quackit/sqlite/dumps/catalog.csv Catalog

Assurez-vous d'utiliser .mode csv avant le .import car cela empêche l'utilitaire de ligne de commande d'essayer d'interpréter le texte du fichier d'entrée comme un autre format.

Après avoir exécuté cela, nous pouvons exécuter un .tables commande pour revoir nos tableaux :

sqlite> .tables
Albums   Albums2  Artists  Catalog

La nouvelle table ( Catalogue ) a été créé. Faisons un SELECT dessus pour en vérifier le contenu :

sqlite> .mode column
sqlite> SELECT * FROM Catalog;
AlbumId   AlbumName             ArtistName  
--------  --------------------  ------------
1         Killers               Iron Maiden 
2         Powerslave            Iron Maiden 
12        Somewhere in Time     Iron Maiden 
3         Surfing with the Ali  Joe Satriani
10        Flying in a Blue Dre  Joe Satriani
11        Black Swans and Worm  Joe Satriani
6         Out of the Loop       Mr Percival 
7         Suck on This          Primus      
8         Pork Soda             Primus      
9         Sailing the Seas of   Primus

Vous pouvez également redéfinir le mode sur column (ou tout autre mode que vous utilisiez) comme je l'ai fait ici.

Et vérifions également le schéma :

sqlite> .schema Catalog
CREATE TABLE Catalog(
  "AlbumId" TEXT,
  "AlbumName" TEXT,
  "ArtistName" TEXT
);

Tableau existant

Vous pouvez également importer le fichier CSV dans une table existante. Créez simplement la table avec les définitions appropriées, puis lancez l'importation.

Cependant, assurez-vous de supprimer d'abord tous les en-têtes du fichier CSV. Lorsque vous importez dans une table existante, chaque ligne dans le fichier CSV est lu comme une ligne dans le tableau. Ainsi, si vous incluez la ligne d'en-tête, elle deviendra la première ligne de données de votre tableau.

Nous allons maintenant créer une nouvelle table appelée Genres et remplissez-le à partir d'un fichier CSV.

Voici le contenu du fichier CSV :

1,Rock
2,Country
3,Pop
4,Comedy
5,Jazz
6,Blues
7,Techno

Créez le nouveau tableau :

CREATE TABLE Genres(
  GenreId    INTEGER PRIMARY KEY, 
  Genre      TEXT NOT NULL
);

Vérifiez qu'il est là :

sqlite> .tables
Albums   Albums2  Artists  Catalog  Genres 

Importez maintenant le fichier CSV :

.mode csv
.import /Users/quackit/sqlite/dumps/genres.csv Genres

Vérifiez maintenant que les données ont bien été saisies (et revenez à column mode):

sqlite> .mode column
sqlite> SELECT * FROM Genres;
GenreId   Genre               
--------  --------------------
1         Rock                
2         Country             
3         Pop                 
4         Comedy              
5         Jazz                
6         Blues               
7         Techno