SQLite Tutorial

Tips SQLite Tutorial

  •  Thread starter
  •  Admin


  • 🧩 SQLite Tutorial

    sqlite.webp


    SQLite est une bibliothèque logicielle qui implémente un moteur de base de données SQL transactionnel, autonome, sans serveur et sans configuration. C’est la base SQL la plus déployée au monde. Le code source est dans le domaine public.
    Ce tutoriel offre un démarrage rapide avec SQLite pour vous rendre à l’aise avec son utilisation. 🚀

    ℹ️ Ce tutoriel SQLite est basé sur la version 1.51.1.

    👥 Audience

    Ce tutoriel est destiné aux débutants souhaitant comprendre les concepts de base à avancés liés au moteur de base de données SQLite.

    🧠 Prérequis

    Avant de commencer, vous devez connaître les bases des bases de données (notamment les SGBDR) ainsi qu’un langage de programmation.


    ❓ FAQ — Questions fréquentes sur SQLite

    Voici quelques questions courantes à propos de SQLite 👇

    🔸 À quoi sert SQLite ?

    SQLite est un SGBD utilisé pour stocker et gérer des données localement dans un format structuré : apps mobiles, logiciels desktop, systèmes embarqués… Il permet de créer des tables, insérer, modifier et lire des données.

    🔸 Pourquoi utiliser SQLite ?

    Simple, rapide, fiable, ne nécessite aucun serveur. Idéal pour les applications locales. Facile à distribuer avec une application.

    🔸 Quel entretien nécessite SQLite ?

    Très peu de maintenance. Pas de serveur à gérer. Juste prévoir des sauvegardes et parfois optimiser la base si elle devient lourde.

    🔸 Pourquoi une base SQLite peut-elle être verrouillée ?

    Pour éviter que plusieurs processus écrivent en même temps. Le verrou protège l’intégrité des données.

    🔸 Quel type de base est SQLite ?

    Un système de gestion de base relationnelle (RDBMS).

    🔸 Dans quel langage SQLite est-il écrit ?

    En C. Mais on peut l’utiliser depuis Python, Java, C++, etc.

    🔸 SQLite est-il open source ?

    Oui, le code est entièrement libre.

    🔸 SQLite est-il rapide ?

    Oui, très rapide et optimisé. Sans serveur ⇒ moins d’overhead ⇒ réponses plus rapides.

    🔸 Qui a inventé SQLite ?

    D. Richard Hipp.

    🔸 Combien de temps faut-il pour apprendre SQLite ?

    Quelques jours pour les bases, quelques semaines pour être à l’aise.

    🔸 Où pratiquer SQLite ?

    👉 Utiliser la dernière version disponible sur le site officiel.
    👉 Site officiel pour tester, GitHub, environnements en ligne.

    🔸 Peut-on utiliser SQLite dans un navigateur ?

    Oui, via des bibliothèques JavaScript et WebAssembly (ex. sql.js).

    🔸 Pourquoi SQLite est-il si populaire ?[/size]

    ✨ Simplicité
    📦 Portabilité
    🖥️ Pas de serveur requis
    ⚡ Efficacité
    🔧 Flexibilité​

    🔸 Où sont stockées les bases SQLite ?

    Dans un seul fichier .sqlite ou .db que vous pouvez déplacer ou copier.

    🔸 Comment se connecter à SQLite ?

    Installer SQLite
    Choisir un langage (Python, C/C++, Java, etc.)
    Installer la librairie SQLite du langage
    Ouvrir le fichier de base
    Exécuter des requêtes​

    💻 Exemple de code SQLite

    Voici un exemple montrant comment créer une table, insérer des données et les récupérer :

    Code:
    -- Création d'une table "users"CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL,email TEXT UNIQUE NOT NULL);
    
    -- Insertion de données dans la tableINSERT INTO users (name, email) VALUES('Alice', '[email protected]'),('Bob', '[email protected]'),('Charlie', '[email protected]');
    
    -- Sélection et affichage des donnéesSELECT id, name, email FROM users;

    📝 Explication rapide :

    • 🧱 CREATE TABLE → crée une nouvelle table
    • ➕ INSERT INTO → ajoute des lignes
    • 🔍 SELECT → récupère les données stockées

    🔸 Quelles sont les limites de SQLite ?
    Pas adapté aux charges massives, ni à un grand nombre d’utilisateurs simultanés.
     
  •  Thread starter
  •  Admin
  • 🎓 Exemple SQLITE


    💻 Exemple de code SQLite (SQL)


    Code:
    -- Création tableCREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL,email TEXT UNIQUE NOT NULL);
    
    -- InsertionINSERT INTO users (name, email) VALUES('Alice', '[email protected]'),('Bob', '[email protected]');
    
    -- SélectionSELECT * FROM users;



    🐍 Exemple SQLite en Python

    Python:
    #!/usr/bin/env python3
    
    [HEADING=2]-[/HEADING]
    import sqlite3from contextlib import closing
    
    DB_PATH = "demo_python.db"
    
    def init_db(conn):# Activer les clés étrangères (bonne pratique)conn.execute("PRAGMA foreign_keys = ON;")# Créer une table si elle n'existe pas déjàconn.execute("""CREATE TABLE IF NOT EXISTS users (id     INTEGER PRIMARY KEY AUTOINCREMENT,name   TEXT NOT NULL,email  TEXT UNIQUE NOT NULL);""")conn.commit()
    
    def seed_data(conn):# Insertion paramétrée (évite les injections SQL)users = [("Alice",   "[email protected]"),("Bob",     "[email protected]"),("Charlie", "[email protected]"),]conn.executemany("INSERT OR IGNORE INTO users (name, email) VALUES (?, ?);",users)conn.commit()
    
    def fetch_users(conn):# row_factory: retourner des dict-like pour un affichage lisibleconn.row_factory = sqlite3.Rowcur = conn.execute("SELECT id, name, email FROM users ORDER BY id;")return [dict(row) for row in cur.fetchall()]
    
    def main():try:with closing(sqlite3.connect(DB_PATH)) as conn:init_db(conn)seed_data(conn)users = fetch_users(conn)
    
            print("✅ Utilisateurs :")<br>        for u in users:<br>            print(f"- #{u['id']:&gt;2}  {u['name']:&lt;8}  &lt;{u['email']}&gt;")<br><br>        # Exemple de mise à jour avec paramètres<br>        conn.execute(<br>            "UPDATE users SET email = ? WHERE name = ?;",<br>            ("[email protected]", "Alice")<br>        )<br>        conn.commit()<br><br>        # Requête filtrée<br>        cur = conn.execute(<br>            "SELECT id, name, email FROM users WHERE name LIKE ?;",<br>            ("%a%",)<br>        )<br>        print("\n🔍 Filtre name LIKE '%a%':")<br>        for row in cur.fetchall():<br>            print(row)<br><br>        # Exemple de transaction (BEGIN/COMMIT implicite via autocommit)<br>        # with conn:<br>        #     conn.execute("...")<br><br>except sqlite3.IntegrityError as e:<br>    print(f"⚠️ Contrainte violée (unicité, NOT NULL, etc.) : {e}")<br>except sqlite3.OperationalError as e:<br>    print(f"⚠️ Erreur opérationnelle (syntaxe SQL, table manquante, etc.) : {e}")<br>except Exception as e:<br>    print(f"❌ Erreur inattendue : {e}")<br>
    if [B]name[/B] == "[B]main[/B]":main()

    📝 Explications rapides :



      • sqlite3.connect(DB_PATH) ouvre/crée un fichier de base SQLite local.
      • PRAGMA foreign_keys = ON active l’intégrité référentielle.
      • executemany insère plusieurs lignes avec paramètres ?.
      • row_factory = sqlite3.Row permet un accès par nom de colonne.
      • with closing(...) garantit la fermeture de la connexion.
      • Exceptions utiles pour UNIQUE, NOT NULL, et erreurs SQL.

    🎛️ Installation de SQLite

    🪟 Windows

    • Télécharger sqlite-tools-win-x64-3510100.zip + sqlite-dll-win-x64-3510100.zip
    • Créer C:\sqlite et y extraire les fichiers
    • Ajouter C:\sqlite dans le PATH
    • Lancer sqlite3
    Code:
    C:\sqlite>sqlite3SQLite version 3.51.1sqlite>



    🐧 Linux

    Tester si SQLite est installé :
    Code:
    $ sqlite3

    Installer manuellement :



      • Télécharger sqlite-autoconf-*.tar.gz
      • Exécuter :
        Code:
        $ tar xvfz sqlite-tools-linux-x64-3510100.zip$ cd sqlite-tools-linux-x64-3510100$ ./configure --prefix=/usr/local$ make$ make install

    🍎 macOS

    • Télécharger sqlite-autoconf-*.tar.gz
    • Lancer :
      Code:
      $ tar xvfz sqlite-tools-osx-x64-3510100.zip$ cd sqlite-tools-osx-x64-3510100$ ./configure --prefix=/usr/local$ make$ make install
    Vérification :
    Code:
    $ sqlite3



    🐚 Exemple Bash complet

    Code:
    #!/usr/bin/env bashset -euo pipefail
    
    echo "ℹ️ Test SQLite"
    
    if ! command -v sqlite3 >/dev/null; thensudo apt update && sudo apt install -y sqlite3fi
    
    sqlite3 --version
    
    DB="demo.db"
    
    sqlite3 "$DB" <<'SQL'CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL,email TEXT UNIQUE NOT NULL);INSERT INTO users (name, email) VALUES('Alice', '[email protected]'),('Bob',     '[email protected]');.headers on.mode columnSELECT * FROM users;SQL
    
    echo "✔️ Base créée : $DB"



    🎉 Fin du tutoriel

     
    Back
    Top