[[info:bdd:accueilbdd|{{ :iconemaison.jpg?nolink&25|Sommaire Bdd}}]] ===== BDDR - SQLite - Requêtes dans la console ===== [Mise à jour le 2/3/2025] {{ :info:bdd:sqlite.jpg?nolink&250|}} * **Ressources** * Le langage SQL * How To Download & Install SQLite Tools * Command Line Shell For SQLite * **Lectures connexes** * [[info:bdd:basesgene|Wiki - BDDR : généralités]] * [[:info:bdd:basesql|Wiki - BDDR - MySQL - Requêtes dans la console]] * [[:info:bdd:SqliteVSCode|Wiki - BDDR - SQLite dans VSCode]] * **Mots-clés** : SGBDR, base, table, enregistrement, champ, requêtes, SQL. ---- ==== 1. Présentation ==== SQLite est une bibliothèque en **langage C** qui implémente un petit moteur de base de données **SQL** complet, rapide, autonome et très fiable. C'est le moteur de base de données le plus utilisé au monde. Il est intégré à tous les téléphones mobiles et à la plupart des ordinateurs ainsi que dans d'innombrables applications que nous utilisons tous les jours. Le code source de SQLite est dans le domaine public. Voir le lien suivant pour **installer SQLite3**. \\ ==== 2. Prise en main rapide ==== Sur un PC sous **Windows**, l'utilisation de la ligne de commande peut se faire dans **n'importe quel répertoire** du moment que le chemin vers le fichier **sqlite3.exe** est dans les **variables d'environnement**. Sous **Linux** ce réglage est fait par défaut. === 2.1 Connexion à une base ou création === * **Ressource** : SQLITE tutorial - Commandes Le projet SQLite fournit un **programme de ligne de commande simple nommé sqlite3** (ou sqlite3.exe sous Windows) qui permet à l'utilisateur de saisir et d'exécuter manuellement des instructions SQL sur une base de données SQLite ou sur une archive ZIP . * **Cas 1** : la console SQLite **n'est pas activée** \\ Démarer la console sqlite en entrant : **sqlite3** //chemin_absolu/nom_base//.**db** pour ouvrir la console et ouvrir ou créer une base. \\ **ATTENTION** : si aucun fichier de base de données n'est spécifié sur la ligne de commande, une **base de données temporaire** est créée et **automatiquement supprimée** lorsque le programme « sqlite3 » se ferme. \\ \\ * **Cas 2** : la console SQLite **est activée**. \\ Entrer **.open** //chemin_absolu/nom_base.db// (si la base n'existe pas elle sera créée). \\ __Remarque__ : entrer **.database** pour afficher toutes les bases de données dans la connexion actuelle. {{ :informatique:bdd:sqlitecons1.png?nolink |}} // Exemple // : création de la base //cine// sur un Raspberry pi et connexion login@machine:~/tpbdd $ sqlite3 cine.db sqlite>.open cine.db sqlite> .databases -- Résultat sur un Raspberry Pi -> main: /home/login/tpbdd/cine.db r/w \\ {{ :web:createtable.png?nolink|}} === 2.2 Création et suppression d'une table === * **Ressource** : SQLITE tutorial - CREATE TABLE * **Création d'une table** Il est nécessaire de définir pour chaque champ,son **nom** et son **type** lors de la création d’une table, . // Exemple // : création de la table //acteurs//. {{ :web:infosql.png?nolink|}} CREATE table acteurs( id INTEGER PRIMARY KEY AUTOINCREMENT, prenom varchar(30), nom varchar(30), nationalite varchar(6), naissance date ); {{ :informatique:bdd:sqlitecons2.png?nolink |}} La commande **.schema** renvoie le schéma de la table. La commande **.tables** renvoie la liste de toutes les tables présentes dans la base. * **Suppression d'une table** -- Exemple : suppression de la table //acteurs//. DROP TABLE acteurs; \\ {{ :web:insertinto.png?nolink|}} === 2.3 Insertion d'enregistrements avec INSERT INTO === * **Ressource** : SQLITE tutorial - INSERT INTO On peut enregistrer une valeur à la fois ou plusieurs séparées par des virgules. // Exemple // : ajout d'un acteur dans la table. INSERT INTO acteurs (prenom, nom, nationalite, naissance) VALUES ('Keanu', 'Reeves', 'ca', '1964-07-02'); {{ :informatique:bdd:sqlitecons3.png?nolink |}} {{ :web:selectfrom.png?nolink|}} === 2.4 Extraction de données avec SELECT === * **Ressource** : SQLITE tutorial - SELECT On peut sélectionner une ou plusieurs colonnes, données en paramètre. L'étoile indique que l'on sélectionne toutes les colonnes de la table. {{ :informatique:bdd:sqlitecons4.png?nolink|}} // Exemple // : consultation de la table //acteur//. SELECT * FROM acteurs; -- Résultat 1|Keanu|Reeves|ca|1964-07-02 Pour améliorer la présentation, on utilise les commandes: \\ **.headers ON** et \\ **.mode column** // Exemple // SELECT * FROM acteurs; -- Résultat -- id prenom nom nationalite naissance -- -- ------ ------ ----------- ---------- -- 1 Keanu Reeves ca 1964-07-02 {{ :informatique:bdd:sqlitecmd.png?nolink |}} === 2.5 Sortir de la console SQLite3 === * **Ressource** : SQLITE tutorial - Commandes On termine le programme sqlite3 en saisissant** Ctrl-D**. \\ ==== 3. Utiliser un fichier d'extension .sql ==== * **Ressource** : SQLite Transaction On peut créer un fichier d'extension sql pour "plus de confort". Les requêtes sont placées entre \\ **BEGIN TRANSACTION;** \\ et \\ **COMMIT;** // Exemple // : création du fichier //requetes.sql// dans le même répertoire que //cine.db// pour ajouter un acteur à la table. BEGIN TRANSACTION; INSERT INTO acteurs (prenom, nom, nationalite, naissance) VALUES('Christopher','Walken','us','1943-03-31'); COMMIT; Ce fichier est "appliqué" à la base avec la commande : **sqlite3 cine.db < requetes.sql**. {{ :informatique:bdd:sqlitefichcmd.png?nolink |}} On se connecte ensuite à //cine.db// pour consulter la table //acteurs//. {{ :informatique:bdd:sqlitefichcmd2.png?nolink |}} \\ ==== Pour aller plus loin ...==== Voir [[info:bdd:sqlitevscode|SQL et SQLite dans VSCode]] et SQLite Tutorial