1. Apprendre
  2. /
  3. Cours
  4. /
  5. Introduction aux bases de données en Python

Connected

Exercice

Insérer une seule ligne

Il existe plusieurs façons d'effectuer une insertion avec SQLAlchemy; toutefois, nous allons nous concentrer sur celle qui suit le même modèle que l'instruction select.

Elle utilise une instruction insert où vous précisez la table en argument, puis vous fournissez les données à insérer dans la valeur au moyen de la méthode .values() sous forme d'arguments nommés. Par exemple, si my_table contient les colonnes my_col_1 et my_col_2, alors insert(my_table).values(my_col_1=5, my_col_2="Example") créera une ligne dans my_table avec la valeur de my_col_1 égale à 5 et la valeur de my_col_2 égale à "Example".

Remarquez la différence de syntaxe : lorsqu'on ajoute une clause where à une instruction existante, on inclut le nom de la table ainsi que le nom de la colonne, par exemple new_stmt = old_stmt.where(my_tbl.columns.my_col == 15). C'est nécessaire parce que l'instruction existante peut impliquer plusieurs tables.

À l'inverse, on ne peut insert un enregistrement que dans une seule table, donc vous n'avez pas à inclure le nom de la table lorsque vous utilisez values() pour insérer, p. ex. stmt = insert(my_table).values(my_col = 10).

Ici, le nom de la table est data. Vous pouvez exécuter repr(data) dans la console pour examiner la structure de la table.

Instructions

100 XP
  • Importez insert et select du module sqlalchemy.
  • Construisez une instruction d'insertion insert_stmt pour la table data afin d'attribuer name à 'Anna', count à 1, amount à 1000.00 et valid à True.
  • Exécutez insert_stmt avec connection et stockez les results.
  • Affichez l'attribut .rowcount de results pour voir combien d'enregistrements ont été insérés.
  • Construisez une instruction select pour interroger data afin d'obtenir l'enregistrement dont le name est 'Anna'.
  • Exécutez la solution pour afficher les résultats de l'exécution de l'instruction select.