Výběr dat z tabulky: čisté SQL
Jak jsi viděl/a ve videu, pro přístup k datům v databázi a jejich zpracování je nejprve potřeba navázat připojení pomocí metody .connect() zavolané na enginu. Funkce create_engine(), kterou jsi používal/a dříve, totiž vrací instanci enginu, ale samotné připojení neotevře, dokud není zavolána akce, která ho vyžaduje – například dotaz.
S využitím toho, co jsme se právě naučili o SQL, a metodou .execute() zavolané na našem připojení můžeme sestavit čistý SQL dotaz, který vrátí všechny záznamy z tabulky census. Objekt vrácený metodou .execute() je ResultProxy. Na něm pak zavoláme metodu .fetchall(), která nám vrátí výsledky – tedy ResultSet.
V tomto cvičení použiješ tradiční SQL dotaz. Všimni si, že při spuštění dotazu v čistém SQL se tabulka dotazuje přímo v databázi – reflection krok není potřeba.
V dalším cvičení přejdeme na SQLAlchemy a začneme objevovat jeho výhody. Jdeme na to!
Toto cvičení je součástí kurzu
Introduction to Databases in Python
Pokyny k cvičení
- Pomocí metody
.connect()objektuenginevytvoř připojení. - Sestav SQL příkaz, který vybere všechny sloupce z tabulky
census, a ulož ho do proměnnéstmt. Nezapomeň, že SQL příkaz musí být řetězec. - Zavolej metody
.execute()a.fetchall()na objektuconnectiona výsledek ulož do proměnnéresults. Pamatuj, že.execute()se volá před.fetchall()a žestmtje potřeba předat do.execute(). - Vypiš
results.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
from sqlalchemy import create_engine
engine = create_engine('sqlite:///census.sqlite')
# Create a connection on engine
connection = ___
# Build select statement for census table: stmt
stmt = ____
# Execute the statement and fetch the results: results
results = ____
# Print results
print(____)