第10章. データレイヤー
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
私の記憶に間違いがなければ、データは番組でコミックリリーフだったと思う。
ブレント・スパイナー(スタートレック:ネクスト・ジェネレーション
プレビュー
この章ではリレーショナルデータベースSQLiteを使い、PythonのデータベースAPI(DB-API)を紹介する。14章ではSQLAlchemyパッケージや非リレーショナルデータベースを含め、データベースについてもっと詳しく説明する。
DB-API
20年以上前から、PythonにはDB-APIと呼ばれるリレーショナルデータベースインタフェースの基本定義が含まれている:PEP 249. リレーショナルデータベース用のPythonドライバを書く人は、他の機能が含まれるかもしれないが、少なくともDB-APIのサポートを含むことが期待されている。
これらはDB-APIのメイン関数である:
-
connect()でデータベースへの接続connを作成する。 -
conn.cursor()でカーソルcursを作成する。 -
SQL 文字列
stmtをcurs.execute(stmt)で実行する。
execute...() 関数はSQL文を実行する。 stmt文字列を実行する。オプション・パラメータはここにリストされている:
-
execute(stmt)パラメータがない場合 -
execute(stmt, params)パラメータを持つparamsを1つのシーケンス(リストまたはタプル)またはdictで指定する。 -
executemany(stmt, params_seq)シーケンス の複数のパラメータグループを持つ。params_seq
、パラメータを指定する5つの方法があり、すべてのデータベースドライバでサポートされているわけではない。 stmt"select * from creature where"で始まるステートメントがあり、name または country に文字列パラメータを指定したい場合、残りの文字列とパラメータは表10-1のようになる。 stmt文字列とそのパラメータは表10-1のようになる。
| タイプ | ステートメント部分 | パラメータ |
|---|---|---|
Qマーク |
|
|
数値 |
|
|
形式 |
|
|
名前付け |
|
|
パイフォーマット |
|
|
最初の3つは引数としてタプルを取り、パラメータの順番は文中の? 、:N 、%s と一致する。 最後の2つは辞書を取り、キーは文中の名前と一致する。
したがって、名前付けされたスタイルの完全な呼び出しは例10-1のようになる。
例10-1. 名前付けパラメータを使う。
stmt="""select * from creature where ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access