データのフィルタリングと対象指定

Pythonで学ぶデータベース入門

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

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
...
Pythonで学ぶデータベース入門

WHERE 句

  • 真偽条件でクエリの返却データを制限
  • 列を値または別の列と比較
  • よく使う比較: ==, <=, >=, !=
Pythonで学ぶデータベース入門

式(Expressions)

  • 単純演算子より複雑な条件を指定
  • 例: in_(), like(), between()
  • そのほかはドキュメント参照
  • Column のメソッドとして利用可能
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
...
Pythonで学ぶデータベース入門

連結(論理演算)

  • WHERE 句に複数条件を指定可能
  • 例: and_(), or_(), not_()
Pythonで学ぶデータベース入門

連結(論理演算)

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
Pythonで学ぶデータベース入門

練習しましょう!

Pythonで学ぶデータベース入門

Preparing Video For Download...