Aan de slagGa gratis aan de slag

Eén rij invoegen

Er zijn verschillende manieren om een insert uit te voeren met SQLAlchemy; wij focussen hier op de manier die hetzelfde patroon volgt als het select-statement.

Deze gebruikt een insert-statement waarbij je de tabel als argument opgeeft en de gegevens die je wilt invoegen meegeeft via de methode .values() als keyword-argumenten. Bijvoorbeeld, als my_table de kolommen my_col_1 en my_col_2 bevat, dan maakt insert(my_table).values(my_col_1=5, my_col_2="Example") een rij in my_table met de waarde in my_col_1 gelijk aan 5 en de waarde in my_col_2 gelijk aan "Example".

Let op het verschil in syntaxis: wanneer je een where-statement aan een bestaand statement toevoegt, neem je zowel de naam van de tabel als de naam van de kolom op, bijvoorbeeld new_stmt = old_stmt.where(my_tbl.columns.my_col == 15). Dit is nodig omdat het bestaande statement meerdere tabellen kan omvatten.

Aan de andere kant kun je slechts in één tabel een record inserten, dus hoef je de naam van de tabel niet op te nemen wanneer je values() gebruikt om in te voegen, bijvoorbeeld stmt = insert(my_table).values(my_col = 10).

Hier is de naam van de tabel data. Je kunt repr(data) in de console uitvoeren om de structuur van de tabel te bekijken.

Deze oefening maakt deel uit van de cursus

Introductie tot databases in Python

Cursus bekijken

Oefeninstructies

  • Importeer insert en select uit de module sqlalchemy.
  • Bouw een insert-statement insert_stmt voor de tabel data om name op 'Anna', count op 1, amount op 1000.00 en valid op True te zetten.
  • Voer insert_stmt uit met de connection en sla de results op.
  • Print het attribuut .rowcount van results om te zien hoeveel records zijn ingevoegd.
  • Bouw een select-statement om in data te zoeken naar het record met de name 'Anna'.
  • Voer de oplossing uit om de resultaten van het uitvoeren van het select-statement te printen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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())
Code bewerken en uitvoeren