SQLAlchemy Core - Création d'une table

Voyons maintenant comment utiliser la fonction de création de table.

Le langage d'expression SQL construit ses expressions sur des colonnes de table. L'objet SQLAlchemy Column représente uncolumn dans une table de base de données qui est à son tour représentée par un Tableobject. Les métadonnées contiennent des définitions de tables et d'objets associés tels que l'index, la vue, les déclencheurs, etc.

Par conséquent, un objet de la classe MetaData de SQLAlchemy Metadata est une collection d'objets Table et de leurs constructions de schéma associées. Il contient une collection d'objets Table ainsi qu'une liaison facultative à un moteur ou une connexion.

from sqlalchemy import MetaData
meta = MetaData()

Le constructeur de la classe MetaData peut avoir des paramètres de liaison et de schéma qui sont par défaut None.

Ensuite, nous définissons nos tables dans le catalogue de métadonnées ci-dessus, en utilisant the Table construct, qui ressemble à l'instruction SQL CREATE TABLE standard.

Un objet de la classe Table représente la table correspondante dans une base de données. Le constructeur prend les paramètres suivants -

Nom Nom de la table
Métadonnées Objet MetaData qui contiendra cette table
Colonnes) Un ou plusieurs objets de la classe de colonne

L'objet Column représente un column dans un database table. Le constructeur prend le nom, le type et d'autres paramètres tels que primary_key, auto-incrémentation et d'autres contraintes.

SQLAlchemy fait correspondre les données Python aux meilleurs types de données de colonne génériques possibles qui y sont définis. Certains des types de données génériques sont -

  • BigInteger
  • Boolean
  • Date
  • DateTime
  • Float
  • Integer
  • Numeric
  • SmallInteger
  • String
  • Text
  • Time

Créer un students table dans la base de données du collège, utilisez l'extrait suivant -

from sqlalchemy import Table, Column, Integer, String, MetaData
meta = MetaData()

students = Table(
   'students', meta, 
   Column('id', Integer, primary_key = True), 
   Column('name', String), 
   Column('lastname', String), 
)

La fonction create_all () utilise l'objet moteur pour créer tous les objets de table définis et stocke les informations dans des métadonnées.

meta.create_all(engine)

Le code complet est donné ci-dessous qui créera une base de données SQLite college.db avec une table des étudiants en elle.

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
engine = create_engine('sqlite:///college.db', echo = True)
meta = MetaData()

students = Table(
   'students', meta, 
   Column('id', Integer, primary_key = True), 
   Column('name', String), 
   Column('lastname', String),
)
meta.create_all(engine)

Parce que l'attribut echo de la fonction create_engine () est défini sur True, la console affichera la requête SQL réelle pour la création de table comme suit -

CREATE TABLE students (
   id INTEGER NOT NULL,
   name VARCHAR,
   lastname VARCHAR,
   PRIMARY KEY (id)
)

Le college.db sera créé dans le répertoire de travail actuel. Pour vérifier si la table des étudiants est créée, vous pouvez ouvrir la base de données à l'aide de n'importe quel outil d'interface graphique SQLite tel queSQLiteStudio.

L'image ci-dessous montre la table des étudiants créée dans la base de données -