...@...:~$ sudo apt install sqlite3
...@...:~ $ 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 :
sqlite> .help .archive ... Manage SQL archives
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 FILENAME<cli prompt='> '>sqlite> .output bd.txt
sqlite> select * from bd; sqlite> cat bd.txt sqlite> .quit</cli>
sqlite> .dump bd
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
sqlite> drop table bd;
...:...$ sqlite3 livres.db .dump > livres.sql
...@...:~ $ rm -r livres.db
...@...:~ $ sqlite3 livres.db < livres.sql
...@...:~ $ sqlite3 livres.db
...@...:~ $ sqlite3 livres.db
Si la base n'existe pas, elle sera créée. Toutes les commandes qui suivront concerneront cette base.
...@...:~ $ rm livres.db
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);
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'));
sqlite> .mode insert bandedessinée sqlite> select * from bandedessinée;
Affichera :Quelques exemples de requêtes :
sqlite> DELETE FROM "bandedessinée" WHERE id = 3;
sqlite> ALTER TABLE "bandedessinée" add column "éditeur";
sqlite> UPDATE "bandedessinée" SET éditeur ='casterman' WHERE id = 1;
sqlite> alter table 'bandedessinée' rename to 'bd';