ÎncepețiÎncepe gratuit

Selectarea datelor dintr-un tabel cu SQLAlchemy

Excelent până acum! A venit momentul să construiești prima ta instrucțiune de selectare folosind SQLAlchemy. SQLAlchemy oferă o modalitate „Pythonicã" de a interacționa cu bazele de date. Când ai folosit SQL brut în exercițiul anterior, ai interogat direct baza de date. Când folosești SQLAlchemy, vei lucra printr-un obiect Table, iar SQLAlchemy se va ocupa de traducerea interogării tale într-o instrucțiune SQL potrivită. Astfel, în loc să te confrunți cu diferențele dintre dialectele specifice ale SQL tradițional, precum MySQL sau PostgreSQL, poți folosi cadrul Pythonic al SQLAlchemy pentru a-ți eficientiza fluxul de lucru și a interoga datele mai rapid. Din acest motiv, merită să îl înveți chiar dacă ești deja familiarizat cu SQL tradițional.

În acest exercițiu, vei construi din nou o instrucțiune pentru a prelua toate înregistrările din tabelul census. De data aceasta, vei folosi funcția select() din modulul sqlalchemy. Această funcție necesită o listă de tabele sau coloane ca singurul argument obligatoriu: de exemplu, select([my_table]).

Vei prelua doar câteva înregistrări din ResultProxy folosind .fetchmany() cu un argument size care specifică numărul de înregistrări de preluat.

Table și MetaData au fost deja importate. Metadatele sunt disponibile ca metadata, iar conexiunea la baza de date ca connection.

Acest exercițiu face parte din cursul

Introducere în baze de date în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Importă select din modulul sqlalchemy.
  • Reflectă tabelul census. Acest cod este deja scris pentru tine.
  • Creează o interogare folosind funcția select() pentru a prelua toate înregistrările din tabelul census. Pentru aceasta, transmite o listă către select() care conține un singur element: census.
  • Afișează stmt pentru a vedea interogarea SQL efectivă generată. Acest cod a fost deja scris pentru tine.
  • Preia 10 înregistrări din tabelul census și stochează-le în results. Pentru aceasta:
    • Folosește metoda .execute() pe connection cu stmt ca argument pentru a obține ResultProxy.
    • Folosește .fetchmany() cu argumentul size corespunzător pe connection.execute(stmt) pentru a obține ResultSet-ul.

Exercițiu interactiv practic

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

# Import select
from ____ import ____

# Reflect census table via engine: census
census = Table('census', metadata, autoload=True, autoload_with=engine)

# Build select statement for census table: stmt
stmt = ____

# Print the emitted statement to see the SQL string
print(stmt)

# Execute the statement on connection and fetch 10 records: result
results = ____.____(____).____(size=___)

# Execute the statement and print the results
print(results)
Editează și rulează codul