Créer des tables avec SQLAlchemy
Précédemment, vous avez utilisé l’objet Table pour refléter une table depuis une base de données existante. Mais si vous souhaitez créer une table nouvelle ? Vous utiliseriez toujours l’objet Table, mais vous devez remplacer les paramètres autoload et autoload_with par des objets Column.
L’objet Column prend un nom, un type SQLAlchemy avec un format optionnel, ainsi que des arguments nommés facultatifs pour différentes contraintes.
Lors de la définition de la table, rappelez-vous que, dans la vidéo, Jason a passé 255 comme longueur maximale d’une chaîne en utilisant Column('name', String(255)). Jeter un œil aux diapositives de la vidéo peut vous aider.
Après avoir défini la table, vous pouvez la créer dans la base de données en utilisant la méthode .create_all() sur les métadonnées et en fournissant le moteur comme unique paramètre. À vous de jouer !
Cet exercice fait partie du cours
Introduction aux bases de données en Python
Instructions
- Importez
Table,Column,String,Integer,Float,Booleandepuissqlalchemy. - Créez une nouvelle table appelée
dataavec les colonnes'name'(String(255)),'count'(Integer()),'amount'(Float()), et'valid'(Boolean()). Le deuxième argument deTable()doit êtremetadata, qui a déjà été initialisé. - Créez la table dans la base de données en passant
engineàmetadata.create_all().
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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))