Ceci est une ancienne révision du document !
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 :
Commandes SQLite
- .help : Lister les commandes :
sqlite> .help .archive ... Manage SQL archives
- .exit / .quit : Quitter le programme sqlite
- .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 TABLEline : Une valeur par ligne[list] : Valeurs délimitées par la chaîne de séparation .separatortabs : valeurs séparées par des tabulationstcl : Liste TCL des éléments.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:
.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 FILENAMEsqlite> .output bd.txt sqlite> select * from bd; sqlite> cat bd.txt sqlite> .quit
.output stdout : Envoyer la sortie vers l'écran.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 TABLEsqlite> .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
Lancer 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 :
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 :
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 :
INSERT INTO "bandedessinée" VALUES(1, 'tintin au congo', 'hergé', 'Tintin est au congo.', 5.0, NULL); INSERT INTO "bandedessinée" VALUES(2, 'le nid des marsupilamis', 'franquin', 'Un reportage incroyable', 6.0, date('now')); 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'));
Simple requête pour visualiser le contenu de la table
Requête de visualisation d'une table formatée en sortie COMME une insertion de valeur
Effacer une valeur dans la table
DELETE FROM "bandedessinée" WHERE id = 3;
Ajouter une colonne à la table
ALTER TABLE "bandedessinée" add column "éditeur";
Mettre à jour une valeur de la table
UPDATE "bandedessinée" SET éditeur ='casterman' WHERE id = 1;
Modifier le nom d'une table
alter table 'bandedessinée' rename to 'bd';
Désinstallation
Voir aussi