Filtrowanie i targetowanie danych

Wprowadzenie do baz danych w Pythonie

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

Klauzule 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
...
Wprowadzenie do baz danych w Pythonie

Klauzule WHERE

  • Ograniczają dane zwracane przez zapytanie na podstawie warunków logicznych
  • Porównują kolumnę z wartością lub inną kolumną
  • Często używają operatorów ==, <=, >= lub !=
Wprowadzenie do baz danych w Pythonie

Wyrażenia

  • Umożliwiają bardziej złożone warunki niż proste operatory
  • Np. in_(), like(), between()
  • Więcej w dokumentacji
  • Dostępne jako metody na obiekcie Column
Wprowadzenie do baz danych w Pythonie

Wyrażenia

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
...
Wprowadzenie do baz danych w Pythonie

Koniunkcje

  • Pozwalają stosować wiele kryteriów w klauzuli WHERE
  • Np. and_(), or_(), not_()
Wprowadzenie do baz danych w Pythonie

Koniunkcje

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
Wprowadzenie do baz danych w Pythonie

Czas na ćwiczenia!

Wprowadzenie do baz danych w Pythonie

Preparing Video For Download...