[[info:bdd:accueilbdd|{{ :iconemaison.jpg?nolink&25|Sommaire Bdd}}]]
===== BDDR - SQLite - Requêtes dans la console =====
[Mise à jour le 9/7/2024]
{{ :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 ===
* **Ressource** : SQLITE tutorial - Commandes
* La console SQLite n'est pas activée \\ Démarer sqlite3 en entrant : **sqlite3** ou \\ **sqlite3** //nom_base//.**db** pour ouvrir la console et créer une base. \\ \\
* La console SQLite est activée \\ Entrer **.open** //nom_base// (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 //cinema//
sqlite>.open cinema
sqlite> .databases -- Résultat : main: C:\Users\phili\OneDrive\Bureau\agd\cinema r/w
{{ :web:createtable.png?nolink|}}
=== 2.2 Création d'une table ===
* **Ressource** : SQLITE tutorial - CREATE TABLE
Lors de la création d’une table, il est nécessaire de définir pour chaque champ : son nom et son **type**.
// Exemple // : création de la table //acteur//.
{{ :web:infosql.png?nolink|}}
CREATE table Acteur(
id INTEGER PRIMARY KEY,
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.
{{ :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 Acteur
VALUES(1,'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 acteur;
-- 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 acteur;
-- Résultat
-- id prenom nom nationalite naissance
-- -- ------ ------ ----------- ----------
-- 1 Keanu Reeves ca 1964-07-02
{{ :informatique:bdd:sqlitecmd.png?nolink |}}
=== 2.5 Sortir de SQLite ===
* **Ressource** : SQLITE tutorial - Commandes
Entrer la combinaison de touches **Ctrl-C** sous Windows ou **.quit** sous Linux
\\
==== 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 //cinema.db// pour ajouter un acteur à la table.
BEGIN TRANSACTION;
INSERT INTO acteur VALUES('Christopher','Walken','us','1943-03-31');
COMMIT;
Ce fichier est "appliqué" à la base avec la commande : **sqlite3 cinema.db < requetes.sql**.
{{ :informatique:bdd:sqlitefichcmd.png?nolink |}}
On se connecte ensuite à //cinema.db// pour consulter la table //acteur//.
{{ :informatique:bdd:sqlitefichcmd2.png?nolink |}}
\\
==== Pour aller plus loin ...====
Voir [[info:bdd:sqlitevscode|SQL et SQLite dans VSCode]] et SQLite Tutorial