国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python-SQLAlchemy:第2節(jié):查詢條件設(shè)置

selfimpr / 1365人閱讀

摘要:上一篇文章第節(jié)入門下一篇文章第節(jié)關(guān)系操作在實際編程中需要根據(jù)各種不同的條件查詢數(shù)據(jù)庫記錄,查詢條件被稱為過濾器。通配符用百分號表示。以下條語句查詢結(jié)果相同,都是為的記錄。引入或邏輯關(guān)鍵字查詢是或者為的記錄,返回結(jié)果為為的記錄

上一篇文章:Python-SQLAlchemy:第1節(jié):SQLAlchemy入門
下一篇文章:Python-SQLAlchemy:第3節(jié):關(guān)系操作

在實際編程中需要根據(jù)各種不同的條件查詢數(shù)據(jù)庫記錄,SQLAlchemy查詢條件被稱為過濾器。這里列出了最常用的過濾器的使用方法。

1、等值過濾器(==)

等值過濾器用于判斷某列是否等于某值,是最常用的過濾器。

session.query(Account).filter(Account.user_name=="Mark") #判斷字符串類型
session.query(Account).filter(Account.salary==2000) #判斷數(shù)值類型
2、不等過濾器(!=、<、>、<=、>=)

與等值過濾器相對的是不等于過濾器,不等于過濾器可以延伸為幾種形式:不等于、小于、大于、小于等于、大于等于。

session.query(Account).filter(Account.user_name !="mark" ) #不等于字符串類型
session.query(Account).filter(Account.salary !=2000) #不等于數(shù)值類型
session.query(Account).filter(Account.salary >2000) #大于過濾器
session.query(Account).filter(Account.salary <2000) #小于過濾器
session.query(Account).filter(Account.salary <=2000) #小于等于過濾器
session.query(Account).filter(Account.salary >=2000) #大于等于過濾器
3、模糊查詢(like)

模糊查詢適用于只知道被查詢字符串的一部分內(nèi)容時,通過設(shè)置通配符的位置,可以查詢出不同的結(jié)果。通配符用百分號%表示。

假設(shè)表中的數(shù)據(jù)為:

id user_name title salary
1 David Li System Manager 3000
2 Debeca Li Accountant 3000
3 David Backer Engineer 3000
4 Siemon Bond Enfineer 4000
5 Van Berg General Manager NULL
#查詢所有名字包含字母i的用戶,結(jié)果包括id為1、2、3、4的4條記錄
session.query(Account).filter(Account.user_name.like("%i%"))

#查詢所有title中以Manager結(jié)尾的用戶,結(jié)果包括id為1、5的兩條記錄
session.query(Account).filter(Account.title.like("%Manager"))

#查詢所有名字中以Da開頭的用戶,結(jié)果包括id為1、3的兩條記錄
session.query(Account).filter(Account.user_name.like("Da%"))
注意:模糊查詢只適用于查詢字符串類型,不適用于數(shù)值類型。
4、包括過濾器(in_)

當確切的知道要查詢記錄的字段內(nèi)容,但是一個字段有多個內(nèi)容要查詢時,可以用包含過濾器。

#查詢id不為1,3,5的記錄,結(jié)果包含id為2,4的兩條記錄
session.query(Account).filter(~Account.id.in_([1,3,5]))
#查詢工資不為2000、3000、4000的記錄,結(jié)果包含id為5的1條記錄
session.query(Account).filter(~Account.id.in_([2000,3000,4000]))
#查詢所有title不為Engineer和Accountant記錄,結(jié)果包括id為1、5的兩條記錄
session.query(Account).filter(~Account.title.in_(["Accountant","Engineer"]))
5、判斷是否為空(is NULL、is not NULL)

空值NULL是數(shù)據(jù)庫字段中比較特殊的值。在SQLAlchemy中支持對字段是否為空進行判斷。判斷時可以用等值、不等值過濾器篩選,也可以用is、isnot進行篩選。

#查詢salary為空值的記錄,結(jié)果包含id為5的記錄
#下面兩方式效果相同
session.query(Account).filter(Account.salary==None)
session.query(Account).filter(Account,salary.is_(None))

#查詢salary不為空值的記錄,結(jié)果包含id為1、2、3、4的記錄
#下面兩方式效果相同
session.query(Account).filter(Account.salary!=None)
session.query(Account).filter(Account.salary.isnot(None))
6、非邏輯(~)

當需要查詢不滿足某條件的記錄時可以使用非邏輯。

#查詢id不為1、3、5的記錄,結(jié)果包含id為2、4的兩條記錄
session.query(Account).filter(~Account.id.in_([1,3,5]))

#查詢工資不為2000、3000、4000的記錄,結(jié)果包含id為5的1條記錄
session.query(Account).filter(~Account.id.in_([2000,3000,4000]))

#查詢所有title不為Engineer和Accountant的記錄,結(jié)果包括id為1、5的2條記錄。
session.query(Account).filter(~Account.title.in(["Accountant","Engineer"]))
7、與邏輯(and_)

當需要查詢同時滿足多個條件的記錄時,需要用到與邏輯。在SQLAlchemy中與邏輯可以有3種表達方式。

以下3條語句查詢結(jié)果相同,都是id為3的記錄。

#直接在filter中添加多個條件即表示與邏輯
session.query(Account).filter(Account.title=="Engineer",Account.salary=3000)

#用關(guān)機子and_進行邏輯查詢
from sqlalchemy import and_
session.query(Account).filter(and_(Account.title=="Engineer",Account.salary=3000))

#通過多個filter的鏈接表示與邏輯
session.query(Account).filter(Account.title=="Engineer").filter(Account.salary=3000)
8、或邏輯(or_)

當需要查詢多個條件但只需其中一個條件滿足時,需要用到或邏輯。

#引入或邏輯關(guān)鍵字or_
from sqlalchemy import or_

#查詢title是Engineer或者salary為3000的記錄,返回結(jié)果為id為1、2、3、4的記錄
session.query(Account).filter(or_(Account.title=="Engineer",Account.salary=3000))

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/44829.html

相關(guān)文章

  • Python-SQLAlchemy3節(jié):關(guān)系操作

    摘要:本節(jié)圍繞在中如何定義關(guān)系及如何使用關(guān)系進行查詢進行講解,使讀者能夠快速掌握的關(guān)系操作。班級與學生為一對多關(guān)系,班級與老師之間為多對多關(guān)系。三年二班多對多關(guān)系的使用通過關(guān)聯(lián)模型實現(xiàn),在其中分別設(shè)置模型和的外鍵,并且在父模型中設(shè)置相應的實現(xiàn)。 上一篇文章:Python-SQLAlchemy:第2節(jié):查詢條件設(shè)置下一篇文章:Python-SQLAlchemy:第4節(jié):級聯(lián) 關(guān)系數(shù)據(jù)庫是建立...

    William_Sang 評論0 收藏0
  • Python-SQLAlchemy1節(jié):SQLAlchemy入門

    摘要:下一篇文章第節(jié)查詢條件設(shè)置是編程語言下的一款開源軟件。提供了工具包及對象關(guān)系映射工具,使用許可證發(fā)行。在關(guān)閉連接時會自動進行事務提交操作。引入多條件查詢時使用。由于上下文函數(shù)退出時會自動提交事務,所以無需顯示的調(diào)用使新增生效。 下一篇文章:Python-SQLAlchemy:第2節(jié):查詢條件設(shè)置 SQLAlchemy是Python編程語言下的一款開源軟件。提供了SQL工具包及對象關(guān)系...

    noONE 評論0 收藏0
  • Python-SQLAlchemy4節(jié):級聯(lián)

    摘要:上一篇文章第節(jié)關(guān)系操作級聯(lián)是在一對多關(guān)系中父表與子表進行聯(lián)動操作的數(shù)據(jù)庫術(shù)語。注意級聯(lián)獨立于本身針對外鍵的級聯(lián)定義。代碼執(zhí)行后數(shù)據(jù)庫表中的內(nèi)容的變化表五年二班理想路號樓表理想男靜安區(qū)女靜安區(qū)小馬哥女閘口區(qū)張三韓永躍男靜安區(qū) 上一篇文章:Python-SQLAlchemy:第3節(jié):關(guān)系操作 級聯(lián)是在一對多關(guān)系中父表與子表進行聯(lián)動操作的數(shù)據(jù)庫術(shù)語。因為父表與子表通過外鍵關(guān)聯(lián),所以對父表或...

    henry14 評論0 收藏0
  • Python-SQLALchemy

    摘要:因為是工作在一個內(nèi)部,有時候我們可能不小心做了一些誤刪除的操作,可以回滾。我們先修改的用戶名為,然后重新添加一個新,但是記住這個時候我們還沒有。集合類型可以是各種合法類型,比如,但是默認集合是一個。 官方文檔 Initialization # 檢查是否已經(jīng)安裝以及版本號 >>> import sqlalchemy >>> sqlalchemy.__version__ ’1.1.4‘ ...

    kumfo 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<