Kom igångKom igång gratis

Hämta data från en tabell: raw SQL

Som du såg i videon behöver vi först upprätta en anslutning till databasen med hjälp av metoden .connect() på motorn. Det beror på att funktionen create_engine() som du använt tidigare returnerar en instans av en motor, men öppnar ingen anslutning förrän en åtgärd som kräver det utförs – till exempel en fråga.

Med hjälp av det vi nyss lärt oss om SQL och metoden .execute() på vår anslutning kan vi använda en raw SQL-fråga för att hämta alla poster i tabellen census. Objektet som returneras av .execute() är en ResultProxy. På den kan vi sedan använda metoden .fetchall() för att hämta våra resultat – det vill säga ResultSet.

I den här övningen använder du en traditionell SQL-fråga. Observera att när du kör en fråga med raw SQL ställs den direkt mot tabellen i databasen. Inget reflektionssteg behövs alltså.

I nästa övning går vi över till SQLAlchemy och börjar utforska dess fördelar. Kör på!

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

Introduktion till databaser i Python

Visa kurs

Övningsinstruktioner

  • Använd metoden .connect()engine för att skapa en anslutning.
  • Bygg en SQL-sats som hämtar alla kolumner från census och lagra den i stmt. Observera att SQL-satsen måste vara en sträng.
  • Använd metoderna .execute() och .fetchall()connection och lagra resultatet i results. Kom ihåg att .execute() anropas före .fetchall() och att stmt ska skickas in till .execute().
  • Skriv ut results.

Interaktiv övning med praktiskt arbete

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

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