Lycée Gustave Eiffel TNSI interagir avec une base de données depuis Python Page

Lycée Gustave Eiffel TNSI interagir avec une base de données depuis Python Page n°1/5 TERMINALE GENERALE NUMERIQUE ET SCIENCES DU NUMERIQUE INTERAGIR AVEC UNE BASE DE DONNEES DEPUIS PYTHON 1 – PRESENTATION GENERALE Pour interagir avec une base de données au format SQLite3 depuis Python, il est nécessaire d’utiliser le module « sqlite3 » ( https://docs.python.org/3/library/sqlite3.html). Pour importer le module sqlite3, il faut utiliser l’instruction : import sqlite3 Il faut effectuer un certain nombre d’étapes :  Se connecter à la base de données.  Créer un curseur  Exécuter la requête.  Éventuellement, exploiter le résultat de la requête.  Si la base a été modifiée, valider les changements.  Se déconnecter de la base de données. Lycée Gustave Eiffel TNSI interagir avec une base de données depuis Python Page n°2/5 Le module étant importé, nous devons réaliser deux actions avant commencer à utiliser la base de données : connexion à la base de données et création de d’un objet « cursor ». Pour se connecter à une base de données SQLite3, il faut utiliser l’instruction suivante : bdd = sqlite3.connect('NomFichier.db') L’objet « cursor » est un objet qui propose les méthodes permettant d’exécuter des requêtes et récupérer le ou les résultats de ces requêtes. Pour créer cet objet il faut utiliser l’instruction suivante : resulats = bdd.cursor() Pour se déconnecter d’une base de données, il faut utiliser l’instruction suivante : bdd.close() Pour exécuter une requête, il faut la passer en paramètre de la méthode execute() de l’objet bdd. bdd.execute(ma_requete) 2 – INTERROGATION DE LA BASE DE DONNEES Soit la base de données « Livres » : Auteurs IdAuteur NomAuteur PrenomAuteur IdLangue AnneeNaissance 0 Lecluse Olivier 2 1870 1 Orwell George 1 1903 2 Herbert Frank 1 1920 3 Asimov Isaac 1 1920 4 Huxley Aldous 1 1894 5 Bradbury Ray 1 1920 6 K. Dick Philip 1 1928 7 Barjavel René 2 1911 8 Boulle Pierre 2 1912 9 Van Vogt Alfred Elton 1 1912 10 Verne Jules 2 1828 Langues IdLangue Langue 1 Anglais 2 Français Lycée Gustave Eiffel TNSI interagir avec une base de données depuis Python Page n°3/5 Livres IdLivre Titre IdAuteur AnneePubli 1 1984 1 1949 2 Dune 2 1965 3 Fondation 3 1951 4 Le meilleur des mondes 4 1931 5 Fahrenheit 451 5 1953 6 Ubik 6 1969 7 Chroniques martiennes 5 1950 8 La nuit des temps 7 1968 9 Blade Runner 6 1968 10 Les Robots 3 1950 11 La Planète des singes 8 1963 12 Ravage 7 1943 13 Le Maître du Haut Château 6 1962 14 Le monde des A 9 1945 15 La Fin de l’éternité 3 1955 16 De la Terre à la Lune 10 1865 L’exemple ci-dessous permet d’afficher l’ensemble des enregistrements de la table « Auteurs ». import sqlite3 # Connexion à la base de données Livres bdd = sqlite3.connect('Livres.db') curseur = bdd.cursor() #Affichage de la table "Auteurs" resultats = curseur.execute('SELECT * FROM Livres') for enregistrements in resultats: print(enregistrements) # Deconnexion de la base de données Livres bdd.close() (1, '1984', 1, 1949) (2, 'Dune', 2, 1965) (3, 'Fondation', 3, 1951) (4, 'Le meilleur des mondes', 4, 1931) (5, 'Fahrenheit 451', 5, 1953) (6, 'Ubik', 6, 1969) (7, 'Chroniques martiennes', 5, 1950) (8, 'La nuit des temps', 7, 1968) (9, 'Blade Runner', 6, 1968) (10, 'Les Robots', 3, 1950) (11, 'La Planète des singes', 8, 1963) (12, 'Ravage', 7, 1943) (13, 'Le Maître du Haut Château', 6, 1962) (14, 'Le monde des A', 9, 1945) (15, 'La Fin de l’éternité', 3, 1955) (16, 'De la Terre à la Lune', 10, 1865) La méthode execute() retourne les tuples résultats de la requête. Pour parcourir les résutats de la requête, il faut utiliser une boucle for, qui permet d’itérer l’objet « résultats ». Lycée Gustave Eiffel TNSI interagir avec une base de données depuis Python Page n°4/5 Exercice 1 Editer le programme python permettant d’afficher :  l’auteur du livre dont le titre est « 1984 » ;  tous les auteurs qui ont publié un livre avant 1960 ;  tous les titres des livres publiés par Pierre Boulle. 3 – MODIFICATIONS DE LA BASE DE DONNEES Les bases de données sont des systèmes transactionnels. Cela signifie qu’un programme qui interagit avec une base de données fait ses modifications en mémoire, jusqu’à ce que celles-ci soient validées. Les modifications sont validées en appelant la méthode commit() sur l’objet bdd. Si aucune modification n’a été apportée à la base, la phase de validation n’est pas nécessaire. bdd.commit() L’exemple ci-dessous permet d’insérer l’auteur français Alain Damasio qui est né en 1969. import sqlite3 # Connexion à la base de données Livres bdd = sqlite3.connect('Livres.db') curseur = bdd.cursor() # Insertion de l'auteur Alain Damasio curseur.execute("INSERT INTO Auteurs\ (IdAuteur, NomAuteur, PrenomAuteur, IdLangue, AnneeNaissance)\ VALUES (11, 'Damasio', 'Alain', 2, 1969);") bdd.commit() # Validation de la modification # Verification de l'enregistrement resultats = curseur.execute("SELECT * FROM Auteurs;") for enregistrements in resultats: print(enregistrements) # Deconnexion de la base de données Livres bdd.close() (0, 'Lecluse', 'Olivier', 2, 1870) (1, 'Orwell', 'George', 1, 1903) (2, 'Herbert', 'Frank', 1, 1920) (3, 'Asimov', 'Isaac', 1, 1920) (4, 'Huxley', 'Aldous', 1, 1894) (5, 'Bradbury', 'Ray', 1, 1920) (6, 'K. Dick', 'Philip', 1, 1928) (7, 'Barjavel', 'René', 2, 1911) (8, 'Boulle', 'Pierre', 2, 1912) (9, 'Van Vogt', 'Alfred Elton', 1, 1912) (10, 'Verne', 'Jules', 2, 1828) (11, 'Damasio', 'Alain', 2, 1969) Lycée Gustave Eiffel TNSI interagir avec une base de données depuis Python Page n°5/5 Exercice 2 Editer le programme python permettant :  d’insérer le roman « La Horde du Contrevent » d’Alain Damasion publié en 2004 ;  de supprimer le roman « Fondation » ;  de renommer le livre « La Planète des singes » en « La Planète des singes – Tome 1 » . uploads/Litterature/bdd-sql-python-eleve.pdf

  • 22
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager