Filtrer et cibler des données

Introduction aux bases de données en Python

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

Clauses WHERE

stmt = select([census])

stmt = stmt.where(census.columns.state == 'California')
results = connection.execute(stmt).fetchall()
for result in results: print(result.state, result.age)
California 0
California 1
California 2
California 3
California 4
California 5
...
Introduction aux bases de données en Python

Clauses WHERE

  • Restreindre les données retournées selon des conditions booléennes
  • Comparer une colonne à une valeur ou à une autre colonne
  • Utiliser souvent ==, <=, >= ou !=
Introduction aux bases de données en Python

Expressions

  • Offrent des conditions plus riches que de simples opérateurs
  • P. ex. in_(), like(), between()
  • Plusieurs autres dans la documentation
  • Offertes comme méthode sur une Column
Introduction aux bases de données en Python

Expressions

stmt = select([census])

stmt = stmt.where(census.columns.state.startswith('New'))
for result in connection.execute(stmt): print(result.state, result.pop2000)
New Jersey 56983
New Jersey 56686
New Jersey 57011
...
Introduction aux bases de données en Python

Conjonctions

  • Permettent d'avoir plusieurs critères dans une clause WHERE
  • P. ex. and_(), or_(), not_()
Introduction aux bases de données en Python

Conjonctions

from sqlalchemy import or_

stmt = select([census])
stmt = stmt.where( or_(census.columns.state == 'California', census.columns.state == 'New York' ) )
for result in connection.execute(stmt): print(result.state, result.sex)
New York M
...
California F
Introduction aux bases de données en Python

Passons à la pratique !

Introduction aux bases de données en Python

Preparing Video For Download...