CPGE Oujda                                                           SQLite, SQLet Python                                                                                        Spé

 

SQLite

*SQLite créée par D. Richard Hipp.

*SQLite est la seule base de données relationnelle qui est installée avec Python.

*SQLite utilise le langage SQL

*Le module à utiliser avec Phyton est sqlite3.

*Une base de données SQLite est représentée à l'aide d'unfichier. Dans ce fichier il y aura plusieurs tables avec unegestion proche de celle des fichiers. Une écriture dans une destables verrouillera le fichier. Par contre la lecture par plusieursutilisateurs est permise sur une base de données SQLite

*C'est une base de données embarquée, doncpas besoin de serveur pour héberger le SGBD

Une base de données SQLite peut gérer des tables de plusieurscentaines de milliers de lignes sans problème.

*La taille d'une base de données SQLite ne peut excéder 2To

*Elle est incluse dans toutes les distributions de Python depuis la version 2.5.

*Utlisateurs majeurs

  Adobe : Photoshop, Acrobat

  Apple : différentes fonctions de Mac Os utilisent SQLite, le Mail

  Safari Web Browser, Mozila, Google

  Skype

  Airbus (A350 XWB)

  Dropbox

SQLite : les opérations

·        connect() : Pour se connecter à une base de données

·        cursor() :Des curseurs sont utilisés pour les interactions avec la base:

émission de requêtes SQL

·        la méthode execute() qui permet l’évaluation d’une requête SQL

·        La méthode executemany() permet l'exécution de valeursretardées

·        fetchone() et fetchall() permettent de récupérer respectivementune valeur ou toutes les valeurs.

·        close() :ferme une connexion.

·        commit() :valide une transaction avec la base.

·        rollback() :annule une transaction avec la base.

  Cette méthode annule toutes les modifications apportées à la base dedonnées depuis le dernier appel à commit ().

 

Caractéristiques :

·         Garantit l'intégrité des données,

·        Supporte les transactions.

·        Supporte la quasi-totalité du SQL-92

·        Les bases SQLite sont portables (Windows, Linux, Mac, PDA, ...)

·        Des wrappers pour presque tous les langages.

·        Pas de serveur à installer

 

 

 

# connection

import sqlite3

def creation():

    conn= sqlite3.connect('peintreSQLite')

    curseur=conn.cursor()

    #creation de la table

    requete='CREATE TABLE IF NOT EXISTS patronyme (nom char(20), prenom char(30),naissance int(4))'

    curseur.execute(requete)

  

  

    #ajout d'elements

    curseur.execute('INSERT INTO patronyme VALUES (?,?,?)', ('Magritte','Rene',1819))

    curseur.execute("INSERT INTO patronyme VALUES ('Courbet','Gustave',1819)")

    requete='INSERT INTO patronyme VALUES (?,?,?)'

    curseur.execute(requete, ['De Vinci','Leonard',1452])

    

    curseur.executemany('INSERT INTO patronyme VALUES (?,?,?)',\

    [ ('Danckerts','Hendrick ',1625), ('Brioullov','Karl',1799), ('Delacroix','Gustave ',1798) ])

   

    peintres=[['Turner','Joseph Mallord William',1775],['Vinci','Leonard',1452],['Bermejo','Barolome',1440],['van Rijn','Rembrandt',1606]]

    for peintre in peintres:

        curseur.execute('INSERT INTO patronyme VALUES (?,?,?)', peintre)

  

    conn.commit() # pour ecrire non pas en memoire mais sur disque

 

# Affichage du contenu de la table

def liste():

    conn= sqlite3.connect('peintreSQLite')

    curseur=conn.cursor()

   

    #afficher le contenu de la table

    print("Le contenu de toute la table")

    requete="SELECT * FROM patronyme"

    curseur.execute(requete)

    for ligne in curseur.fetchall():

        print(ligne)

 

#recherche

def liste1(x):

    conn= sqlite3.connect('peintreSQLite1')

    curseur=conn.cursor()

  

    #afficher naissance

    req="select * from patronyme where naissance>%i"%x

    curseur.execute(req)

    for ligne in curseur.fetchall():

        print(ligne)

           

#pp

choix=1

while choix!=0:

    choix=int(input("1:creation/     2:liste totale/     3;recherche/     0:quitter     "))

    if choix==1:

        creation()

    elif choix==2:

        liste()

    elif choix==3:

        print("donner la da te de naissance a chercher")

        x=int(input())

        liste1(x)

    else:

        print("au revoir