Aan de slagGa gratis aan de slag

Gegevens selecteren uit een tabel: ruwe SQL

Zoals je in de video hebt gezien, moeten we eerst een verbinding maken met de database via de methode .connect() op de engine om toegang te krijgen tot en te werken met de gegevens. Dat komt omdat de functie create_engine() die je eerder gebruikte wel een engine-instantie teruggeeft, maar pas echt een verbinding opent zodra er een actie wordt aangeroepen die een verbinding vereist, zoals een query.

Met wat we net over SQL hebben geleerd en door de methode .execute() op onze verbinding toe te passen, kunnen we een ruwe SQL-query gebruiken om alle records in onze census-tabel op te vragen. Het object dat door de methode .execute() wordt teruggegeven, is een ResultProxy. Op deze ResultProxy kunnen we vervolgens de methode .fetchall() gebruiken om onze resultaten op te halen — dat wil zeggen de ResultSet.

In deze oefening gebruik je een traditionele SQL-query. Merk op dat wanneer je een query uitvoert met ruwe SQL, je de tabel rechtstreeks in de database bevragt. Er is dus geen reflectiestap nodig.

In de volgende oefening stap je over naar SQLAlchemy en ga je de voordelen ervan ontdekken. Succes!

Deze oefening maakt deel uit van de cursus

Introductie tot databases in Python

Cursus bekijken

Oefeninstructies

  • Gebruik de methode .connect() van engine om een verbinding te maken.
  • Bouw een SQL-statement om alle kolommen uit census op te vragen en sla dit op in stmt. Let op: je SQL-statement moet een string zijn.
  • Gebruik de methoden .execute() en .fetchall() op connection en sla het resultaat op in results. Denk eraan dat .execute() vóór .fetchall() komt en dat stmt moet worden meegegeven aan .execute().
  • Print results.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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(____)
Code bewerken en uitvoeren