Python+SQLAlchemy+MySQLでORマッピング 〜 select
「Python+SQLAlchemy+MySQLでORマッピング」の続き。
次のようにして、条件検索が出来る。
テーブル指定は、select()の引数に[Tableオブジェクト]を指定する。
列にアクセスするには、「Tableオブジェクト.c.列名」とする。
import sqlalchemy as dbMapper ・・・・・・・ url = 'mysql://ユーザ名:パスワード@IPアドレス/DB名?charset=utf8' # Engineおよびconnectionの取得 engine = dbMapper.create_engine(url, echo=True) conn = engine.connect() # MetaData の生成 meta = MetaData() # Engineに結びつける meta.bind = engine # SQLAlchemyのTableを使用して、データベースのテーブル定義からテーブルオブジェクトを作成する sample_table = Table('テーブル名', meta, autoload=True) #### SQLによるselectサンプル #### # 必要モジュールのインポート from sqlalchemy.sql import select # 全検索の定義および実行 selectQuery = select([sample_table]) executeResult = conn.execute(selectQuery).fetchall() for row in executeResult: print(row) # whereを使用した条件検索の定義および実行 selectWhereQuery = select([sample_table.c.name]).where(sample_table.c.code == 1001) executeResult = conn.execute(selectWhereQuery).fetchall() for row in executeResult: print(row) # Like検索の定義および実行 selectWhereLikeQuery = select([sample_table.c.name]).where(sample_table.c.code.like('%10')) executeResult = conn.execute(selectWhereLikeQuery).fetchall() for row in executeResult: print(row)
詳細は本家のマニュアル「SQL Expression Language Tutoria」を参照。