CommencerCommencer gratuitement

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 schéma que l’instruction select.

Elle utilise une instruction insert où vous indiquez la table en argument, puis vous fournissez les données à insérer via 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 celle de my_col_2 égale à "Example".

Remarquez la différence de syntaxe : lorsque vous ajoutez un where à une instruction existante, vous incluez le nom de la table ainsi que celui de la colonne, par exemple new_stmt = old_stmt.where(my_tbl.columns.my_col == 15). C’est nécessaire car l’instruction existante peut impliquer plusieurs tables.

À l’inverse, on ne peut insert un enregistrement que dans une seule table ; il n’est donc pas nécessaire d’inclure le nom de la table lorsque vous utilisez values() pour insérer, par exemple 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.

Cet exercice fait partie du cours

Introduction aux bases de données en Python

Afficher le cours

Instructions

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

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Import insert and select from sqlalchemy
from sqlalchemy import ____, ____

# Build an insert statement to insert a record into the data table: insert_stmt
insert_stmt = insert(____).values(name=____, ____, ____, ____)

# Execute the insert statement via the connection: results
results = connection.execute(____)

# Print result rowcount
print(____)

# Build a select statement to validate the insert: select_stmt
select_stmt = select([data]).where(____ == ____)

# Print the result of executing the query.
print(connection.execute(select_stmt).first())
Modifier et exécuter le code