生のクエリ
このガイドでは、アプリケーションで生の SQL クエリを実行する方法について説明します。
生のSQLでデータを操作する
client.execute()メソッドを使用して、 INSERT 、 UPDATE 、 DELETE 、およびその他のデータ操作ステートメントを実行します。
client.execute("INSERT INTO chunks(text, user_id) VALUES ('sample text', 5)")
SQLインジェクション防止
execute()とquery()両方の方法は、パラメータ化された SQL機能をサポートしており、動的 SQL ステートメントの構築時にSQLインジェクション回避するのに役立ちます。
client.execute(
"INSERT INTO chunks(text, user_id) VALUES (:text, :user_id)",
{
"text": "sample text",
"user_id": 6,
},
)
生のSQLでデータをクエリする
client.query()メソッドを使用して、 SELECT 、 SHOW 、およびその他のクエリ ステートメントを実行します。
クエリ結果を出力する
client.query()メソッドは、いくつかのヘルパー メソッドを含むSQLQueryResultインスタンスを返します。
to_pydantic()to_list()to_pandas()to_rows()scalar()
ピダンティックモデルとして
to_pydantic()メソッドは、Pydantic モデルのリストを返します。
client.query("SELECT id, text, user_id FROM chunks").to_pydantic()
SQLAlchemyの結果行として
to_rows()メソッドはタプルのリストを返します。各タプルは 1 行を表します。
client.query("SHOW TABLES;").to_rows()
辞書のリストとして
to_list()メソッドは、クエリ結果を辞書のリストに変換します。
client.query(
"SELECT id, text, user_id FROM chunks WHERE user_id = :user_id",
{
"user_id": 3
}
).to_list()
pandasデータフレームとして
to_pandas()メソッドはクエリ結果をpandas.DataFrameに変換し、ノートブック内で人間にわかりやすい形式で表示します。
client.query("SELECT id, text, user_id FROM chunks").to_pandas()
スカラー値として
scalar()メソッドは、結果セットの最初の行の最初の列を返します。
client.query("SELECT COUNT(*) FROM chunks;").scalar()