Table des matières
SQLite : une base de données SQL
Pré-requis
Installation
-
Installez le paquet sqlite3 ou en ligne de commande :
...@...:~$ sudo apt install sqlite3
Configuration
Utilisation
Avec un client graphique : SQLiteManager
En ligne de commande
-
Lancez dans un terminal :
...@...:~ $ sqlite3 SQLite version 3.31.1 2020-01-27 19:55:54 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database.
sqlite>Le prompt change et signale que vous êtes dans le terminal SQlite :
Lister les commandes
-
.help : Lister les commandes :
sqlite> .help .archive ... Manage SQL archives
Quitter sqlite
-
.exit : Quitter le programme sqlite
-
.quit : Quitter le programme sqlite
Modifier le format de sortie
-
.mode MODE ?TABLE? : Mode de sortie, MODE est à choisir parmi :
-
csv : valeurs séparées par des virgules
-
column : colonnes alignées à gauche (voir .width)
-
insert : commande SQL insert pour la table TABLE
-
line : Une valeur par ligne
-
[list] : Valeurs délimitées par la chaîne de séparation .separator
-
tabs : valeurs séparées par des tabulations
-
tcl : Liste TCL des éléments
Afficher le nom des colonnes / Changer l'aspect des colonnes (.mode column)
Rappel des paramètres
-
.show Affiche les valeurs actuelles des différents paramètres :
sqlite> .show echo: off eqp: off explain: auto headers: off mode: html nullvalue: "" output: stdout colseparator: "|" rowseparator: "\n" stats: off width: filename: :memory:
Gestion des bases
* **.databases** : Liste les noms et les fichiers des bases de données associées * **.tables ?TABLE?** : Liste les noms des tables dans la base courante. Si TABLE est spécifié, ne liste que les tables correspondant au motif TABLE. * **.import FILE TABLE** : Importer les données de FILE dans TABLE * **.indices ?TABLE?** : Afficher les noms de tous les indices ; si TABLE est spécifiée, n'affiche que les indices correspondant au motif TABLE * **.output FILENAME** : Envoyer la sortie vers FILENAME<cli prompt='> '>sqlite> .output bd.txt
sqlite> select * from bd; sqlite> cat bd.txt sqlite> .quit</cli>
-
.output stdout : Envoyer la sortie vers l'écran
Dumper une table depuis SQLite en format SQL pour sauvegarder la structure et les données sur un disque
-
.dump ?TABLE? … : Dump de la base de données dans un format texte SQL. Si TABLE est spécifié, ne dumpe que les tables correspondant au motif TABLE
sqlite> .dump bd
-
Rediriger la sortie vers un fichier puis dumper la table depuis SQLite
sqlite> .output bd.sql sqlite> .dump bd
Le résultat n'est plus affiché dans le terminal, mais redirigé vers le fichier bd.sql. Pour le vérifier il suffit d'afficher le contenu du fichier:
sqlite> .quit
...@...:~ $ cat bd.sql -
Lire directement un fichier dumpé depuis sqlite :
-
Effacez la table de la base:
sqlite> drop table bd;
Dumper une base en format SQL pour sauvegarder sa structure, ses tables et ses données :...:...$ sqlite3 livres.db .dump > livres.sql
Récupérer un fichier dumpé pour recréer la base :-
Effacez la base originale :
...@...:~ $ rm -r livres.db
-
Récupérez la base depuis le fichier de svg :
...@...:~ $ sqlite3 livres.db < livres.sql
-
Connectez-vous à la base< :
...@...:~ $ sqlite3 livres.db
Manipuler une base
-
Créer une base - ouvrir une base : Lancez sqlite3 avec le nom de la base :
...@...:~ $ sqlite3 livres.db
Si la base n'existe pas, elle sera créée. Toutes les commandes qui suivront concerneront cette base.
-
Détruire une base : Il suffit d'effacer son fichier .db :
...@...:~ $ rm livres.db
-
Créer une table : Dans sqlite, dans une base existante, lancer la commande :
sqlite> CREATE TABLE bandedessinée (id integer primary key, titre VARCHAR(30), auteur VARCHAR(30), resume TEXT, num double, date_creation date);
Si le prompt apparaît après avoir tapé la commande, c'est qu'il manque le “;” à la fin de la requête. Ajoutez-le juste après le prompt validez.
Les types de données SQLite3 sont : NULL, INTEGER, REAL, TEXT et BLOB. Ce qui donne par exemple :sqlite> CREATE TABLE bandedessinée (id integer primary key, titre TEXT, auteur TEXT, resume TEXT, num REAL, date_creation INTEGER);
-
Insérer des valeurs dans la table : Un exemple :
sqlite> INSERT INTO "bandedessinée" VALUES(1, 'tintin au congo', 'hergé', 'Tintin est au congo.', 5.0, NULL); sqlite> INSERT INTO "bandedessinée" VALUES(2, 'le nid des marsupilamis', 'franquin', 'Un reportage incroyable', 6.0, date('now')); sqlite> INSERT INTO "bandedessinée" VALUES(3, 'la déesse', 'moebius', 'une aventure géniale', 7.0, strftime("%Y-%m-%d %H:%M:%S",'now','localtime'));
-
Requête de visualisation d'une table formatée en sortie COMME une insertion de valeur :
sqlite> .mode insert bandedessinée sqlite> select * from bandedessinée;
Affichera :Quelques exemples de requêtes :
Effacer une valeur dans la table :sqlite> DELETE FROM "bandedessinée" WHERE id = 3;
Ajouter une colonne à la table :sqlite> ALTER TABLE "bandedessinée" add column "éditeur";
Mettre à jour une valeur de la table :sqlite> UPDATE "bandedessinée" SET éditeur ='casterman' WHERE id = 1;
Modifier le nom d'une table :sqlite> alter table 'bandedessinée' rename to 'bd';
Autres commandes
-
.backup ?DB? FILE : Sauvegarde DB (par défaut “main”) vers FILE
-
.bail ON|[OFF] : Stop après une erreur
-
.echo ON|OFF : Bascule la commande d'écho ON/OFF
-
.explain ?ON|OFF? : Bascule le mode de sortie approprié pour EXPLIQUER on or off
Sans argument, on -
.load FILE ?ENTRY? : Charger une bibliothèque d'extension
-
.log FILE|off : Activer ou désactiver la journalisation. FILE peut être stderr/stdout
-
.nullvalue STRING : Imprime STRING à la place des valeurs NULL
-
.prompt MAIN CONTINUE : Remplace les prompts standards
-
.read FILENAME : Exécuter SQL dans FILENAME
-
.restore ?DB? FILE : Restaurer le contenu de la DB (par défaut “main”) à partir de FILE
-
.schema ?TABLE? : Afficher les déclarations CREATE. Si TABLE est spécifié, ne montrer que les tables correspondant au motif TABLE
-
.stats ON|OFF : Active ou désactive les stats
-
.timeout MS : Essayer d'ouvrir les tables verrouillées durant MS millisecondes
-
.trace FILE|off : afficher chaque instruction SQL au moment de son exécution
-
.vfsname ?AUX? : afficher le nom de la pile VFS
-
.timer ON|OFF : activer ou désactiver la minuterie du CPU
Désinstallation
Voir aussi
-
-
-