Filtrando e selecionando dados

Introdução a Bancos de Dados em Python

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

Cláusulas 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
...
Introdução a Bancos de Dados em Python

Cláusulas WHERE

  • Restringem os dados retornados por uma consulta com condições booleanas
  • Comparam uma coluna com um valor ou outra coluna
  • Usam com frequência ==, <=, >= ou !=
Introdução a Bancos de Dados em Python

Expressões

  • Permitem condições mais complexas que operadores simples
  • Ex.: in(), like(), between()
  • Há muitas outras na documentação
  • Disponíveis como método de Column
Introdução a Bancos de Dados em Python

Expressões

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
...
Introdução a Bancos de Dados em Python

Conjunções

  • Permitem múltiplos critérios em uma cláusula WHERE
  • Ex.: and_(), or_(), not_()
Introdução a Bancos de Dados em Python

Conjunções

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
Introdução a Bancos de Dados em Python

Vamos praticar!

Introdução a Bancos de Dados em Python

Preparing Video For Download...