LoslegenKostenlos loslegen

Eine einzelne Zeile einfügen

Es gibt mehrere Möglichkeiten, mit SQLAlchemy ein Insert auszuführen; wir konzentrieren uns hier jedoch auf die Variante, die dem Muster von select folgt.

Dabei wird eine insert-Anweisung verwendet, bei der du die Tabelle als Argument angibst und die einzufügenden Daten über die Methode .values() als Schlüsselwortargumente übergibst. Wenn my_table beispielsweise die Spalten my_col_1 und my_col_2 enthält, erstellt insert(my_table).values(my_col_1=5, my_col_2="Example") eine Zeile in my_table mit dem Wert in my_col_1 gleich 5 und dem Wert in my_col_2 gleich "Example".

Beachte den Unterschied in der Syntax: Wenn du eine where-Klausel an eine bestehende Anweisung anhängst, gibst du den Tabellennamen sowie den Spaltennamen an, zum Beispiel new_stmt = old_stmt.where(my_tbl.columns.my_col == 15). Das ist notwendig, weil die bestehende Anweisung mehrere Tabellen umfassen kann.

Im Gegensatz dazu kannst du mit insert nur in eine einzelne Tabelle schreiben, daher musst du beim Verwenden von values() den Tabellennamen nicht angeben, z. B. stmt = insert(my_table).values(my_col = 10).

Hier lautet der Tabellenname data. Du kannst repr(data) in der Konsole ausführen, um die Struktur der Tabelle zu untersuchen.

Diese Übung ist Teil des Kurses

Einführung in Datenbanken mit Python

Kurs anzeigen

Anleitung zur Übung

  • Importiere insert und select aus dem Modul sqlalchemy.
  • Erstelle eine Insert-Anweisung insert_stmt für die Tabelle data, um name auf 'Anna', count auf 1, amount auf 1000.00 und valid auf True zu setzen.
  • Führe insert_stmt mit der connection aus und speichere die results.
  • Gib das Attribut .rowcount von results aus, um zu sehen, wie viele Datensätze eingefügt wurden.
  • Erstelle eine Select-Anweisung, um in data nach dem Datensatz mit dem name 'Anna' zu suchen.
  • Führe die Lösung aus, um die Ergebnisse der Select-Anweisung auszugeben.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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 bearbeiten und ausführen