Création de bases de données et de tables

Introduction aux bases de données en Python

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

Créer des bases de données

  • Varie selon le type de base de données
  • Des bases comme PostgreSQL et MySQL offrent des outils en ligne de commande pour initialiser la base
  • Avec SQLite, l'instruction create_engine() crée la base et le fichier s'ils n'existent pas déjà
Introduction aux bases de données en Python

Construire une table

from sqlalchemy import (Table, Column, String, 
       Integer, Decimal, Boolean)

employees = Table('employees', metadata, Column('id', Integer()), Column('name', String(255)), Column('salary', Decimal()), Column('active', Boolean()))
metadata.create_all(engine)
engine.table_names()
[u'employees']
Introduction aux bases de données en Python

Créer des tables

  • Utilise toujours l'objet Table comme pour la réflexion
  • Remplace les arguments mots-clés autoload par des objets Column
  • Crée les tables dans la base réelle avec la méthode create_all() de l'instance MetaData
  • Pour modifier des tables, utilisez d'autres outils comme Alembic ou du SQL brut
Introduction aux bases de données en Python

Créer des tables – options supplémentaires pour les colonnes

  • unique exige des valeurs distinctes pour toutes les lignes d'une colonne
  • nullable précise si une colonne peut être vide dans une ligne
  • default fixe une valeur par défaut si aucune n'est fournie
Introduction aux bases de données en Python

Construire une table avec des options supplémentaires

employees = Table('employees', metadata,
       Column('id', Integer()), 
       Column('name', String(255), unique=True, nullable=False), 
       Column('salary', Float(), default=100.00),          
       Column('active', Boolean(), default=True))

employees.constraints
{CheckConstraint(... 
Column('name', String(length=255), table=<employees>, nullable=False), 
Column('salary', Float(), table=<employees>, 
       default=ColumnDefault(100.0)), 
Column('active', Boolean(), table=<employees>, 
       default=ColumnDefault(True)), ...
UniqueConstraint(Column('name', String(length=255), 
                 table=<employees>, nullable=False))}
Introduction aux bases de données en Python

Passons à la pratique !

Introduction aux bases de données en Python

Preparing Video For Download...