Créer une base SQLite à partir d’un fichier csv

La gestion des données dans les applications est souvent fastidieuse. Pour les applications mobiles, les formats de stockages de données sont variés : sur iphone on va du fichier type texte amélioré avec les fichiers .plist aux données stockées dans des “Core Data Base” ou des base de données SQLite, sur Android ce sera XML ou SQLite.

Dans ce tuto, je vais décrire comment convertir un fichier csv en base de données SQLite en utilisant sqlite3 (utilitaire de commande en ligne).

Les données doivent évidemment être structurées pour définir la structure de la table de la base de données.
Tout d’abord, supprimer dans le fichier csv les noms de colonnes (il ne doit y avoir que les données). Utiliser le séparateur “;” dans le fichier csv ou un séparateur que vous êtes sûr de ne pas retrouver  dans vos données.

Le fichier csv enregistré depuis excel contient des caractères de fin de ligne qu’il faut remplacer pour le rendre lisible par sqlite3.
Pour cela, ouvrir le fichier csv créé dans une fenêtre terminal avec vi et passer la commande de remplacement suivante : (NB : ^M est obtenu en tapant ctrl+v suivi de ctrl+m au clavier).

:1,$s:^M:\r:g

Dans une fenêtre terminal, passer les commandes suivantes :

1 – lancement de l’outil sqlite3 et création de la base MaBase

sqlite3 MaBase.sqlite3

2 – création de notre table dans la base (NB : le prompt est maintenant celui de l’outil sqlite3)

SQLite version 3.6.12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table maTable(donnee1 text, donnee2 text, donnee3 text, value1 real, Value2 real);
sqlite> .separator ";" //definition du separateur ";" du fichier csv
sqlite> .import monFichier.csv maTable
sqlite> .exit

Après celà, votre base de données est créée avec une table maTable.
Pour vérifier le contenu de cette table, vous pouvez utiliser sqlite3 :

sqlite3 MaBase.sqlite3
SQLite version 3.6.12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .mode column //pour un affichage du contenu de la table en colonne
sqlite> select * from maTable;

Et voilà, vous avez généré un fichier MaBase.sqlite3 que vous pouvez embarquer dans vos applications mobiles !

Quelques commandes simples dans sqlite3 :

Pour supprimer une table d’une base de donnée : 

   sqlite> drop table NOM_DE_LA_TABLE 

Pour supprimer TOUT le contenu d’une table : 

   sqlite> delete from NOM_DE_LA_TABLE 
This entry was posted in android, iPhone, tutoriels and tagged , , , , . Bookmark the permalink.