import sqlite3

if __name__ == "__main__":
    # Il existe dans Python une API unifiée, où les mêmes opérations
    # s'effectuent avec les mêmes fonctions et méthodes, quelle que
    # soit la base de données relationnelle SQL à laquelle on accède.
    # Pour SQLite en l'occurrence, la méthode `.connect` ne prend qu'un seul
    # paramètre, le nom de fichier, car SQLite est une base de données
    # embarquée sans sécurité et n'a donc pas besoin de mot de passe ou de nom
    # d'utilisateur.
    connection = sqlite3.connect("database.sqlite3", isolation_level=None)
    # Ici on crée une nouvelle table dans notre base de données si elle n'existe pas déjà.
    # Cette fonction de la base de données renvoie un seul résultat pour dire que tout
    # est OK.
    connection.execute("CREATE TABLE IF NOT EXISTS person (nom varchar(30), prenom varchar(20), age int)")
    # Insérer quelques nouvelles lignes de données dans notre nouvelle table.
    connection.execute("INSERT INTO person VALUES ('Bouquet','Carole',62)")
    connection.execute("INSERT INTO person VALUES ('Connery','Sean',85)")
    connection.execute("INSERT INTO person VALUES ('Kotto','Yaphet',76)")
    connection.execute("INSERT INTO person VALUES ('Zhang','Zhang',39)")
    # Valider l'ajout et les nouvelles modifications en bloc (lorsque la base de données le permet)
    connection.commit()

    values = connection.execute("SELECT * FROM person WHERE age > 50")
    print(values.fetchall())
    # Ne pas oublier à la fin, lorsqu'on en a plus besoin, de fermer la connexion à la base (ou au fichier
    # pour le cas de SQLite).
    connection.close()
