Začněte nyníZačněte zdarma

Vložení jednoho záznamu

V SQLAlchemy existuje několik způsobů, jak vložit data – my se zaměříme na ten, který sleduje stejný vzor jako příkaz select.

Použijeme příkaz insert, kde jako argument zadáš tabulku a data k vložení předáš metodou .values() jako pojmenované argumenty. Například pokud tabulka my_table obsahuje sloupce my_col_1 a my_col_2, pak insert(my_table).values(my_col_1=5, my_col_2="Example") vytvoří v my_table nový řádek s hodnotou 5 ve sloupci my_col_1 a hodnotou "Example" ve sloupci my_col_2.

Všimni si rozdílu v syntaxi: když připojuješ podmínku where k existujícímu příkazu, uvádíš název tabulky i název sloupce, například new_stmt = old_stmt.where(my_tbl.columns.my_col == 15). Je to nutné proto, že existující příkaz může pracovat s více tabulkami.

Naopak, záznamy lze vkládat vždy jen do jedné tabulky, takže při použití values() název tabulky uvádět nemusíš, např. stmt = insert(my_table).values(my_col = 10).

V tomto cvičení se tabulka jmenuje data. Její strukturu si můžeš prohlédnout spuštěním repr(data) v konzoli.

Toto cvičení je součástí kurzu

Introduction to Databases in Python

Zobrazit kurz

Pokyny k cvičení

  • Importuj insert a select z modulu sqlalchemy.
  • Sestav příkaz insert_stmt pro tabulku data tak, aby nastavil name na 'Anna', count na 1, amount na 1000.00 a valid na True.
  • Spusť insert_stmt pomocí connection a ulož výsledek do proměnné results.
  • Vypiš atribut .rowcount proměnné results, abys zjistil/a, kolik záznamů bylo vloženo.
  • Sestav příkaz SELECT, který v tabulce data vyhledá záznam s hodnotou name rovnou 'Anna'.
  • Spusť řešení, aby se zobrazily výsledky příkazu SELECT.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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())
Upravit a spustit kód