因為後端框架重度使用orm,鑑於sqlalchemy官網沒有中文翻譯,加上經常會被牆,所以搬運些工具到部落格上,以備後用。(**均為示例,不能直接使用)
1、基礎操作
# -*- coding: utf-8 -*-
'''等於(equals)'''
query.filter(user.name == 'ed')
'''不等於(not equals)'''
query.filter(user.name != 'ed')
'''模糊匹配(like)'''
query.filter(user.name.like('%ed%'))
'''大小寫敏感模糊匹配(ilkie)'''
query.filter(user.name.ilike('%ed%'))
'''集合查詢(in)'''
query.filter(user.name.in_(['ed', 'wendy', 'jack']))
'''集合查詢取反(not in)'''
query.filter(~user.name.in_(['ed', 'wendy', 'jack']))
'''等於空(is null)'''
query.filter(user.name == none)
query.filter(user.name.is_(none))
'''非空(is not null)'''
query.filter(user.name != none)
query.filter(user.name.isnot(none))
'''與(and)'''
from sqlalchemy import and_
query.filter(and_(user.name == 'ed', user.fullname == 'ed jones'))
query.filter(user.name == 'ed', user.fullname == 'ed jones')
query.filter(user.name == 'ed').filter(user.fullname == 'ed jones')
'''或(or)'''
from sqlalchemy import or_
query.filter(or_(user.name == 'ed', user.name == 'wendy'))
'''全文匹配(match)'''
query.filter(user.name.match('wendy'))
2、嵌入sql語句
使用字串代替變數名:
from sqlalchemy import text
for user in session.query(user).filter(text("id<224")).order_by(text("id")):
print(user.name)
帶參查詢:
for user in session.query(user).filter(text("id<:value and name=:name")).\
params(value=224, name='fred').\
order_by(user.id):
print(user.name)
將sql執行結果對映到對應orm:
for user in session.query(user).\
from_statement(text("select * from users where name=:name")).\
params(name='ed'):
print(user.name)
將sql查詢多個列對應到orm的對應屬性中:
stmt = text("select name, id, fullname, password from users where name=:name").\
columns(user.name, user.id, user.fullname, user.password)
for user in session.query(user).from_statement(stmt).params(name='ed'):
print(user.name)
僅返回查詢的列(個人覺得有些多餘,不如直接執行sql語句簡單)
stmt = text("select name, id, password from users where name=:name").\
columns(user.name, user.id)
for user_tuple in session.query(user.id, user.name).from_statement(stmt).params(name='ed'):
print(user_tuple)
sqlalchemy學習筆記
第一 安裝 sudo easy install sqlalchemy 第二 基本的使用 1 先寫個指令碼 嘗試連線mysql 建立一張表 coding utf 8 from sqlalchemy import import sqlalchemy.util as util import string,...
python 學習筆記 sqlalchemy
資料庫表是乙個二維表,包含多行多列。把乙個表的內容用python的資料結構表示出來的話,可以用乙個list表示多行,list的每乙個元素是tuple,表示一行記錄,比如,包含id和name的user表 1 michael 2 bob 3 adam python的db api返回的資料結構就是像上面這...
SQLAlchemy實戰詳解
感謝朋友支援本部落格,歡迎共同 交流,由於能力和時間有限,錯誤之處在所難免,歡迎指正!better me的部落格 blog.csdn.net tantexian 簡單查詢 print session.query user all print session.query user.name,user....