LoslegenKostenlos loslegen

Daten aus einer Tabelle auswählen: Raw SQL

Wie du im Video gesehen hast, müssen wir, um auf die Daten in der Datenbank zuzugreifen und sie zu bearbeiten, zunächst eine Verbindung herstellen, indem wir die Methode .connect() auf dem Engine-Objekt aufrufen. Der Grund: Die zuvor verwendete Funktion create_engine() liefert zwar eine Instanz einer Engine zurück, öffnet aber keine tatsächliche Verbindung, bis eine Aktion ausgeführt wird, die eine Verbindung erfordert, zum Beispiel eine Abfrage.

Mit dem, was wir gerade über SQL gelernt haben, und der Anwendung der Methode .execute() auf unserer Verbindung können wir eine Raw-SQL-Abfrage nutzen, um alle Datensätze in unserer Tabelle census abzufragen. Das von der Methode .execute() zurückgegebene Objekt ist ein ResultProxy. Auf diesem ResultProxy können wir dann die Methode .fetchall() verwenden, um unsere Ergebnisse zu erhalten – das ist das ResultSet.

In dieser Übung verwendest du eine klassische SQL-Abfrage. Beachte, dass du bei der Ausführung einer Abfrage mit Raw SQL die Tabelle direkt in der Datenbank abfragst. Insbesondere ist kein Reflection-Schritt erforderlich.

In der nächsten Übung wechselst du zu SQLAlchemy und lernst seine Vorteile kennen. Leg los!

Diese Übung ist Teil des Kurses

Einführung in Datenbanken mit Python

Kurs anzeigen

Anleitung zur Übung

  • Verwende die Methode .connect() von engine, um eine Verbindung zu erstellen.
  • Erstelle eine SQL-Anweisung, um alle Spalten aus census abzufragen, und speichere sie in stmt. Beachte, dass deine SQL-Anweisung ein String sein muss.
  • Verwende die Methoden .execute() und .fetchall() auf connection und speichere das Ergebnis in results. Denk daran, dass .execute() vor .fetchall() kommt und dass stmt an .execute() übergeben werden muss.
  • Gib results aus.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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 bearbeiten und ausführen