SQLAlchemy學習筆記

2021-08-14 08:58:08 字數 2483 閱讀 9710

因為後端框架重度使用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....