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