Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SQLAlchemy の select(User).where(User.id =="123...
Search
Ryusei Ohkura
October 21, 2025
Technology
0
30
SQLAlchemy の select(User).where(User.id =="123") を理解してみる/sqlalchemy deep dive
『Pythonの多様性 深掘りLT Night 』〜バックエンドから機械学習まで〜
で発表させていただいたものです!
https://findy.connpass.com/event/371749/
Ryusei Ohkura
October 21, 2025
Tweet
Share
More Decks by Ryusei Ohkura
See All by Ryusei Ohkura
NEW GAMEが良いということを伝えたいLT / New Game is iizo.
3l4l5
0
54
「アニメから学ぶ」から学ぶ具体と抽象/ I wanna learn abstraction from "learning from anime"
3l4l5
3
810
アニメからリーダーシップを学びたい / i wanna learn leader ship from animation
3l4l5
1
41
ドミネーターの実装で学ぶSOLID原則/learn solid law with dominator
3l4l5
1
130
学園アイドルマスターでコミュニケーションを学ぼう!/learn communication with gakuen idol master
3l4l5
1
210
プラクティスの名前は言わない方がいい / Not to mention the name of the practice
3l4l5
8
4.3k
目標を立て、 宇宙よりも遠い場所へ!/a place further than the universe with the goal
3l4l5
4
570
個人開発のおいしさと続け方
3l4l5
2
840
IDOLM@STERとSCRUM MASTER / IDOLM@STER and SCRUMMASTER
3l4l5
1
750
Other Decks in Technology
See All in Technology
OAuthからOIDCへ ― 認可の仕組みが認証に拡張されるまで
yamatai1212
0
140
[VPoE Global Summit] サービスレベル目標による信頼性への投資最適化
satos
0
130
Introduction to Bill One Development Engineer
sansan33
PRO
0
300
『バイトル』CTOが語る! AIネイティブ世代と切り拓くモノづくり組織
dip_tech
PRO
1
130
サイバーエージェント流クラウドコスト削減施策「みんなで金塊堀太郎」
kurochan
4
2.1k
ニッポンの人に知ってもらいたいGISスポット
sakaik
0
170
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
940
LLMアプリの地上戦開発計画と運用実践 / 2025.10.15 GPU UNITE 2025
smiyawaki0820
1
670
Geospatialの世界最前線を探る [2025年版]
dayjournal
1
260
ソースを読むプロセスの例
sat
PRO
15
9.4k
CoRL 2025 Survey
harukiabe
1
220
AI時代こそ求められる設計力- AWSクラウドデザインパターン3選で信頼性と拡張性を高める-
kenichirokimura
3
350
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
23k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Into the Great Unknown - MozCon
thekraken
40
2.1k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Optimizing for Happiness
mojombo
379
70k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
The World Runs on Bad Software
bkeepers
PRO
72
11k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
190
55k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
880
Transcript
SQLAlchemy の select(User).where(User.id =="123") を理解してみる👀 ヲクラ
select(User).where(User.id =="123")
select(User).where(User.id =="123") SELECT * FROM `User` WHERE id = '123'
SELECT * FROM `User` WHERE id = '123' select(User).where( User.id
=="123" )
select(User).where( User.id =="123" ) True/False 🤔 ⚠これは誤った解釈です
select(User).where( True) User.idの情報が 消えてない?? ⚠これは誤った解釈です
自己紹介 3l4i5 3l4l5 - クロスマート株式会社 - 請求書チーム - テックリード -
バックエンドエンジニア - 趣味 - ⛰登山 - 📚マンガ 往蔵隆成(ヲクラ)
None
バックエンド フロントエンド その他 CI/CD データベース 使用技術(抜粋)
本題
今日の目標 select(User).where(User.id =="123") SELECT * FROM `User` WHERE id =
'123' の変換で何が起きてるのか知ろう
• Python製のORM • SQLの全機能をPythonを用いて 表現することができる SQLAlchemyとは?
Pythonの演算子オーバーロード
• +, /, - などの基本的な演算子を 自分で定義した処理で上書きするこ とができる機能 • 右の例では、valueというフィールド を持つSampleクラス同士の足し算を
上書きしている Pythonの演算子オーバーロード
Pythonの演算子オーバーロード • タネは、__add__ メソッドに処理を 書くことで、"+"の振る舞いを独自に 定義することができる • __sub__ なら "-"
• __eq__ なら "=="
Pythonの演算子オーバーロード • タネは、__add__ メソッドに処理を 書くことで、"+"の振る舞いを独自に 定義することができる • __sub__ なら "-"
• __eq__ なら "=="
User.id =="123" User.idのclassの__eq__を上書きして "id = 123"に変換する処理をかけばいい! 😮
None
__eq__メソッドによって "=="の処理を上書き
__eq__メソッドによって "=="の処理を上書き "==" の演算からWHERE句の 構成部分を返却
結論!
select(User).where( User.id =="123" ) True/False 🤔 ⚠これは誤った解釈です
select(User).where( User.id =="123" ) True/False 🤔
"id = '123'" を意味するものに変換される select(User).where( User.id =="123" )
「あ、これもか」シリーズ
None
「いつ使うの?」シリーズ
None
None
None
ありがとうございました!