Kom igångKom igång gratis

Hämta data från en tabell med SQLAlchemy

Bra jobbat hittills! Nu är det dags att skapa din första SELECT-sats med SQLAlchemy. SQLAlchemy erbjuder ett smidigt och pythonvänligt sätt att arbeta med databaser. I den förra övningen använde du råa SQL-frågor direkt mot databasen. Med SQLAlchemy arbetar du i stället via ett Table-objekt, och SQLAlchemy översätter din fråga till en lämplig SQL-sats åt dig. I stället för att hantera skillnaderna mellan olika SQL-dialekter som MySQL eller PostgreSQL kan du alltså utnyttja SQLAlchemys pythonbaserade ramverk för att effektivisera ditt arbetsflöde. Det är värt att lära sig även om du redan är bekant med traditionell SQL.

I den här övningen bygger du återigen en fråga som hämtar alla poster från tabellen census. Den här gången använder du select()-funktionen från modulen sqlalchemy. Funktionen kräver en lista med tabeller eller kolumner som enda obligatoriskt argument – till exempel select([my_table]).

Du kommer också att hämta bara ett fåtal poster från ResultProxy med hjälp av .fetchmany() och ett size-argument som anger hur många poster som ska hämtas.

Table och MetaData har redan importerats. Metadata är tillgänglig som metadata och anslutningen till databasen som connection.

Den här övningen är en del av kursen

Introduktion till databaser i Python

Visa kurs

Övningsinstruktioner

  • Importera select från modulen sqlalchemy.
  • Reflektera tabellen census. Den här koden är redan skriven åt dig.
  • Skapa en fråga med select()-funktionen för att hämta alla poster i tabellen census. Skicka en lista till select() med ett enda element: census.
  • Skriv ut stmt för att se den faktiska SQL-fråga som skapas. Den här koden är redan skriven åt dig.
  • Hämta 10 poster från tabellen census och lagra dem i results. Gör så här:
    • Använd metoden .execute()connection med stmt som argument för att hämta ResultProxy.
    • Använd .fetchmany() med rätt size-argument på connection.execute(stmt) för att hämta ResultSet.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod