ÎncepețiÎncepe gratuit

Selectarea datelor dintr-un tabel: SQL brut

Așa cum ai văzut în videoclip, pentru a accesa și a manipula datele din baza de date, trebuie mai întâi să stabilești o conexiune la aceasta folosind metoda .connect() pe engine. Funcția create_engine() pe care ai folosit-o anterior returnează o instanță a unui engine, dar nu deschide efectiv o conexiune până când nu este apelată o acțiune care necesită una, cum ar fi o interogare.

Cu cunoștințele dobândite despre SQL și aplicând metoda .execute() pe conexiunea noastră, putem folosi o interogare SQL brută pentru a extrage toate înregistrările din tabelul census. Obiectul returnat de metoda .execute() este un ResultProxy. Pe acest ResultProxy putem apoi aplica metoda .fetchall() pentru a obține rezultatele – adică ResultSet-ul.

În acest exercițiu, vei folosi o interogare SQL tradițională. Reține că atunci când execuți o interogare folosind SQL brut, vei interoga tabelul direct în baza de date. Mai exact, nu este necesar niciun pas de reflecție.

În exercițiul următor, vei trece la SQLAlchemy și vei începe să înțelegi avantajele sale. Succes!

Acest exercițiu face parte din cursul

Introducere în baze de date în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește metoda .connect() a lui engine pentru a crea o conexiune.
  • Construiește o instrucțiune SQL care să interogheze toate coloanele din census și stocheaz-o în stmt. Reține că instrucțiunea SQL trebuie să fie un șir de caractere.
  • Aplică metodele .execute() și .fetchall() pe connection și stochează rezultatul în results. Amintește-ți că .execute() vine înaintea .fetchall() și că stmt trebuie transmis la .execute().
  • Afișează results.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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(____)
Editează și rulează codul