utilisateur@monpc$ sqlite3
> .read exo1.sql
> .schema
(affichages de sqlite)
> .save base_exo1.db
utilisateur@monpc$ sqlite3 exo2.db
> .separator ','
> .import extraction.csv table_pseudos
La commande `.open nom_de_fichier` charge la base de données contenue dans le fichier indiqué
Pour ouvrir une base de données au lancement de sqlite, on peut également donner le nom de fichier en argument de la commande de lancement de *sqlite* : `sqlite3 nom_de_fichier`.
Dans les deux cas, les changements dans les données de la base sont automatiquement sauvegardés dans le fichier.
La commande `.save nom_de_fichier` sauvegarde des données courantes dans le fichier désigné, mais les chmngements ultérieurs ne sont pas automatiquement sauvegardés dans ce fichier. En revanche, si un fichier avait été nommé en argument de *sqlite* ou de la commande `.open`, alors les données continuent d'y être automatiquement sauvegardées.
Il convient changer le séparateur, afin que ce soit le même que dans le fichier csv.
Par exemple, pour importer un fichier csv dont le séparateur est la virgule `,` il faut saisir `.separator ','`.
On utilise ensuite `.import fichier_source table_cible`. Si `table_cible` n'existe pas, elle est automatiquement créée avec autant d'attrbuts que de colonnes dans le fichier csv, et nommés d'après la première ligne. Pour choisir le domaine des attributs, il faut créer soi-même la table avant d'importer le fichier.
On le fait avec `.read nom_du_fichier`.
De tels fichers ont habituellement l'extension `.sql` mais on peut mettre celle que l'on veut.
On utilise la commande `.schema table` pour afficher la commande ayant permis de définir la table dont on a donné le nom en paramètre de `.schema`.
La commande `.schema`, sans paramètre, affiche les commandes ayant permis de définir toutes les tables de la base de données.
Par défaut, *sqlite3* n'effectue pas les vérifications attendues sur les données des champs `PRIMARY KEY` et `FOREIGN KEY`.
Dans les deux cas, il faut ajouter la directive `NOT NULL` juste après la déinition du domaine.