LoslegenKostenlos loslegen

Tabellen mit SQLAlchemy erstellen

Bisher hast du das Table-Objekt genutzt, um eine Tabelle aus einer bestehenden Datenbank zu reflektieren. Aber was, wenn du eine neue Tabelle anlegen willst? Du würdest weiterhin das Table-Objekt verwenden; allerdings ersetzt du die Parameter autoload und autoload_with durch Column-Objekte.

Das Column-Objekt erhält einen Namen, einen SQLAlchemy-Typ mit optionalem Format sowie optionale Schlüsselwortargumente für verschiedene Constraints.

Erinnere dich: Im Video hat Jason 255 als maximale Länge für einen String übergeben, indem er Column('name', String(255)) genutzt hat. Ein Blick in die Folien aus dem Video kann helfen.

Nachdem die Tabelle definiert ist, kannst du sie mithilfe der Methode .create_all() auf den Metadaten und mit dem Engine-Objekt als einzigem Parameter in der Datenbank erstellen. Los geht’s!

Diese Übung ist Teil des Kurses

Einführung in Datenbanken mit Python

Kurs anzeigen

Anleitung zur Übung

  • Importiere Table, Column, String, Integer, Float, Boolean aus sqlalchemy.
  • Erstelle eine neue Tabelle namens data mit den Spalten 'name' (String(255)), 'count' (Integer()), 'amount' (Float()), und 'valid' (Boolean()). Das zweite Argument von Table() muss metadata sein; es wurde bereits initialisiert.
  • Erstelle die Tabelle in der Datenbank, indem du engine an metadata.create_all() übergibst.

Interaktive Übung

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

# Import Table, Column, String, Integer, Float, Boolean from sqlalchemy
from sqlalchemy import ____, ____, ____, ____, ____, ____

# Define a new table with a name, count, amount, and valid column: data
data = Table('data', ____,
             Column(____, ____),
             Column('count', Integer()),
             Column(____, ____),
             Column(____, ____)
)

# Use the metadata to create the table
metadata.create_all(____)

# Print table details
print(repr(data))
Code bearbeiten und ausführen